From 3f5e39a16858520ee8ae8b8b40854dcfc97feebb Mon Sep 17 00:00:00 2001 From: Nikola Hristov Date: Sat, 23 Nov 2024 22:32:03 +0200 Subject: [PATCH] --- .astro/content.d.ts | 44 +++++-------------- Target/404.html | 2 +- Target/GDPR/index.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- Target/PRIVACY POLICY/index.html | 2 +- Target/PRIVACY-POLICY/index.html | 2 +- Target/TERMS OF SERVICE/index.html | 2 +- Target/TERMS-OF-SERVICE/index.html | 2 +- ...stro_type_script_index_0_lang.CEjSBjq3.js} | 2 +- ..._type_script_index_0_lang.CEjSBjq3.js.map} | 2 +- Target/chunks/Base_C6QPIOhz.mjs.map | 1 + Target/chunks/Base_DV7gkH_j.mjs.map | 1 - Target/chunks/astro/server_B1aewJ70.mjs.map | 1 - Target/chunks/astro/server_Da53ieLQ.mjs.map | 1 + Target/chunks/astro_BYXcfF7P.mjs.map | 1 + Target/chunks/astro_DE5DHthN.mjs.map | 1 - ...l-data-protection-policy_Cm83fkZQ.mjs.map} | 2 +- ...js.map => privacy-policy_Byej-8FT.mjs.map} | 2 +- ....map => terms-of-service_tGGEQQqk.mjs.map} | 2 +- Target/index.html | 2 +- ...x7Ru.mjs.map => manifest_WX__GKuA.mjs.map} | 2 +- 22 files changed, 29 insertions(+), 51 deletions(-) rename Target/_astro/{ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js => ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js} (86%) rename Target/_astro/{ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js.map => ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js.map} (60%) create mode 100644 Target/chunks/Base_C6QPIOhz.mjs.map delete mode 100644 Target/chunks/Base_DV7gkH_j.mjs.map delete mode 100644 Target/chunks/astro/server_B1aewJ70.mjs.map create mode 100644 Target/chunks/astro/server_Da53ieLQ.mjs.map create mode 100644 Target/chunks/astro_BYXcfF7P.mjs.map delete mode 100644 Target/chunks/astro_DE5DHthN.mjs.map rename Target/chunks/{personal-data-protection-policy_CJy20CLV.mjs.map => personal-data-protection-policy_Cm83fkZQ.mjs.map} (99%) rename Target/chunks/{privacy-policy_C4XnloF9.mjs.map => privacy-policy_Byej-8FT.mjs.map} (99%) rename Target/chunks/{terms-of-service_DT2W3qow.mjs.map => terms-of-service_tGGEQQqk.mjs.map} (99%) rename Target/{manifest_BKclx7Ru.mjs.map => manifest_WX__GKuA.mjs.map} (63%) diff --git a/.astro/content.d.ts b/.astro/content.d.ts index 29bb5304..9851826f 100644 --- a/.astro/content.d.ts +++ b/.astro/content.d.ts @@ -21,11 +21,9 @@ declare module 'astro:content' { type Flatten = T extends { [K: string]: infer U } ? U : never; export type CollectionKey = keyof AnyEntryMap; - export type CollectionEntry = Flatten; export type ContentCollectionKey = keyof ContentEntryMap; - export type DataCollectionKey = keyof DataEntryMap; type AllValuesOf = T extends any ? T[keyof T] : never; @@ -55,7 +53,6 @@ declare module 'astro:content' { collection: C, filter?: (entry: CollectionEntry) => entry is E, ): Promise; - export function getCollection( collection: C, filter?: (entry: CollectionEntry) => unknown, @@ -70,7 +67,6 @@ declare module 'astro:content' { }): E extends ValidContentEntrySlug ? Promise> : Promise | undefined>; - export function getEntry< C extends keyof DataEntryMap, E extends keyof DataEntryMap[C] | (string & {}), @@ -80,7 +76,6 @@ declare module 'astro:content' { }): E extends keyof DataEntryMap[C] ? Promise : Promise | undefined>; - export function getEntry< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}), @@ -90,7 +85,6 @@ declare module 'astro:content' { ): E extends ValidContentEntrySlug ? Promise> : Promise | undefined>; - export function getEntry< C extends keyof DataEntryMap, E extends keyof DataEntryMap[C] | (string & {}), @@ -108,7 +102,6 @@ declare module 'astro:content' { slug: ValidContentEntrySlug; }[], ): Promise[]>; - export function getEntries( entries: { collection: C; @@ -147,37 +140,22 @@ declare module 'astro:content' { >; type ContentEntryMap = { - "en": { -"personal-data-protection-policy.md": { - id: "personal-data-protection-policy.md"; - slug: "personal-data-protection-policy"; - body: string; - collection: "en"; - data: any -} & { render(): Render[".md"] }; -"privacy-policy.md": { - id: "privacy-policy.md"; - slug: "privacy-policy"; - body: string; - collection: "en"; - data: any -} & { render(): Render[".md"] }; -"terms-of-service.md": { - id: "terms-of-service.md"; - slug: "terms-of-service"; - body: string; - collection: "en"; - data: any -} & { render(): Render[".md"] }; -}; - + }; type DataEntryMap = { - + "en": Record; + }; type AnyEntryMap = ContentEntryMap & DataEntryMap; - export type ContentConfig = typeof import("./../Source/content/config.mjs"); + export type ContentConfig = typeof import("./../Source/content.config.mjs"); } diff --git a/Target/404.html b/Target/404.html index db209441..04da6bb2 100644 --- a/Target/404.html +++ b/Target/404.html @@ -1 +1 @@ -☁️ PlayForm —

404 | Not Found.

\ No newline at end of file +☁️ PlayForm —

404 | Not Found.

\ No newline at end of file diff --git a/Target/GDPR/index.html b/Target/GDPR/index.html index 9853f747..c29e555a 100644 --- a/Target/GDPR/index.html +++ b/Target/GDPR/index.html @@ -1 +1 @@ -Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file +Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file diff --git a/Target/PERSONAL DATA PROTECTION POLICY/index.html b/Target/PERSONAL DATA PROTECTION POLICY/index.html index 9853f747..c29e555a 100644 --- a/Target/PERSONAL DATA PROTECTION POLICY/index.html +++ b/Target/PERSONAL DATA PROTECTION POLICY/index.html @@ -1 +1 @@ -Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file +Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file diff --git a/Target/PERSONAL-DATA-PROTECTION-POLICY/index.html b/Target/PERSONAL-DATA-PROTECTION-POLICY/index.html index 9853f747..c29e555a 100644 --- a/Target/PERSONAL-DATA-PROTECTION-POLICY/index.html +++ b/Target/PERSONAL-DATA-PROTECTION-POLICY/index.html @@ -1 +1 @@ -Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file +Personal Data Protection Policy

PERSONAL DATA PROTECTION POLICY

Effective date: 05.25.2018 / May 25th 2018
Last updated: 02.11.2022 / February 11th 2022

We at PlayForm ltd. are committed to processing personal data securely and respecting privacy of the concerned individuals.

Version No. and date of the last update:

v. 1.0.

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.

Scope and Definitions

  1. Scope. This Personal Data Protection Policy (the “Policy”) describes PlayForm ltd. internal rules for personal data processing and protection. The Policy applies to PlayForm ltd., including PlayForm ltd. employees and contractors (“we”, “us”, “our”, “PlayForm”). The management of each entity is ultimately responsible for the implementation of this policy, as well as to ensure, at entity level, there are adequate and effective procedures in place for its implementation and ongoing monitoring of its adherence. For the purposes of this Policy, employees and contractors are jointly referred to as the “employees”.

  2. Privacy Manager. Privacy Manager is an employee of PlayForm responsible for personal data protection compliance within PlayForm (the “Privacy Manager”). The Privacy Manager is in charge of performing the obligations imposed by this Policy and supervising other employees, who subject to this Policy, regarding their adherence to this Policy. The Privacy Manager must be involved in all projects at an early stage in order to take personal data protection aspects into account as early as the planning phase.
    The designated Privacy Manager at PlayForm ltd. is Nikola Hristov Nikola@PlayForm.LTD.

  3. Definitions.

Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.

Data Processing Principles

  1. PlayForm’s processing activities must be in line with the principles specified in this Section. The Privacy Manager must make sure that PlayForm’s compliance documentation, as well as data processing activities, are compliant with the data protection principles.

  2. We must process the Personal Data in accordance with the following principles:

    1. Lawfully, fairly and in a transparent manner (lawfulness, fairness and transparency). We shall always have a legal ground for the processing (described in Section 3 of this Policy), collect the amount of data adequate to the purpose and legal grounds, and we make sure the Data Subjects are aware of the processing;

    2. Collected for specified, explicit and legitimate purposes and not further processed in a manner that is incompatible with those purposes (purpose limitation). We must not process the Personal Data for the purposes not specified in our compliance documentation without obtaining specific approval of the Privacy Manager;

    3. Adequate, relevant and limited to what is necessary for the purposes for which they are processed (data minimization). We always make sure the data we collect is not excessive and limited by the strict necessity;

    4. Accurate and, where necessary, kept up to date (accuracy). We endeavor to delete inaccurate or false data about Data Subjects and make sure we update the data. Data Subjects can ask us for a correction of the Personal Data;

    5. Kept in a form which permits identification of Data Subjects for no longer than is necessary for the purposes for which the Personal Data are processed (storage period limitation). The storage periods must be limited as prescribed by Data Protection Laws and this Policy; and

    6. Process in a manner that ensures appropriate security of the Personal Data, including protection against unauthorized or unlawful processing and accidental loss, destruction or damage, using appropriate technical or organizational measures (confidentiality, integrity, and availability).

  3. Accountability.

    1. We shall be able to demonstrate our compliance with Data Protection Laws (accountability principle). In particular, we must ensure and document all relevant procedures, efforts, internal and external consultations on personal data protection including:

      • the fact of appointing a person responsible for PlayForm’s data protection compliance;

      • where necessary, a record of a Data Processing Impact Assessment;

      • developed and implemented notices, policies, and procedures, such as Privacy Notice, this policy or Data Breach response procedure;

      • the fact of staff training on compliance with Data Protection laws; and

      • assessment, implementation, and testing organizational and technical data protection measures.

    2. The Privacy Manager must maintain PlayForm’s Records of processing activities, which is an accountability document that describes personal data processing activities of PlayForm, prepared in accordance with Art. 30 of the GDPR (the “Records of processing activities”). The Records of processing activities must maintain, at least, the following information about each processing activity:

      • contact details of PlayForm, the EU Representative, and, where applicable, of the Data Protection Officer;

      • name of the activity, its purposes and legal basis along with, where applicable, the legitimate interests of PlayForm;

      • data subjects and personal data categories concerned;

      • data retention periods;

      • general description of applicable security measures;

      • recipients, including joint controllers, processors, and contractors involved, as well as the fact of the international data transfer with the safeguards applied to the transfer;

      • where applicable, a reference to the Data Processing Impact Assessment;

      • where applicable, a reference to the record of the data breach occurred involving the personal data;

      • if PlayForm acts as a data processor, the information to be provided includes the names and contact details of controllers, name and contact details of controller’s representative (if applicable), categories of processing (activities), names of third countries or international organizations that personal data are transferred to (if applicable), safeguards for exceptional transfers of personal data to third countries or international organizations (if applicable), and general description of technical and organizational security measures.

  1. Legal grounds.

    1. Each processing activity must have one of the lawful grounds specified in this Section to process the Personal Data. If we do not have any of the described, we cannot collect or further process the Personal Data.

    2. If PlayForm is intended to use personal data for other purposes than those specified in the Records of processing activities, the Privacy Manager must evaluate, determine, and, if necessary, collect/record the appropriate legal basis for it.

    3. Performance of the contract. Where PlayForm has a contract with the Data Subject, e.g., website’s Terms of Use or the employment contract, and the contract requires the provision of personal data from the Data Subject, the applicable legal ground will be the performance of the contract.

    4. Consent. To process the personal data based on the consent, we must obtain the consent before the Processing and keep the evidence of the consent with the records of Data Subject’s Personal Data. The Privacy Manager must make sure that the consent collected from Data Subjects meet the requirements of Data Protection Laws and this Policy. In particular, the Privacy Manager must make sure that:

      • the Data Subject must be free to give or refuse to give consent.

      • the consent is in the form of an active indication from the Data Subject, i.e., the consent checkbox must not be pre-ticked for the user.

      • the request for the consent clearly articulates the purposes of the processing, and other information specified in Subsection 6.2 is available to the Data Subject.

      • the Data Subject must be free to give one’s consent or to revoke it.

    5. Legitimate interests. We have the right to use personal data in our ‘legitimate interests’. The interests can include the purposes that are justified by the nature of our business activities, such as the marketing analysis of personal data. For PlayForm to use legitimate interests as a legal ground for the processing, the Privacy Manager must make sure that:

      • the legitimate interest in the processing is clearly defined and recorded in the Records of processing activities;

      • any envisaged risks to Data Subject rights and interests are spotted. The examples of the risks can be found in Subsection 7.2.;

      • the Data Subjects have reasonable expectations about the processing, and additional protective measures to address the risks are taken;

      • subject to the conditions of Subsection 6.7 (Right to object against the processing), the Data Subject is provided with the opportunity to opt-out from the processing for the described legitimate interests.
        If at least one of the above conditions is not met by PlayForm, the Privacy Manager must choose and propose a different legal ground for the processing, such as consent.

    6. Legal Compliance and Public Interest. Besides the grounds specified afore, we might be requested by the laws of the European Union or laws of the EU Member State to process Personal Data of our Users. For example, we can be required to collect, analyze, and monitor the information of Users to comply with financial or labor laws.
      Whenever we have such an obligation, we must make sure that:

      • we process personal data strictly in accordance with relevant legal requirements;

      • we do not use or store the collected Personal Data for other purposes than legal compliance; and

      • the Data Subjects are properly and timely informed about our obligations, scope, and conditions of personal data processing.

Important: Where PlayForm has the law requirements of another country to process personal data, the Privacy Manager must propose using another legal ground for the processing under Data Protection Laws, such as legitimate interests or consent.

Access to Personal Data

  1. Access to Personal Data.

    1. The employees must have access to the personal data on a “need-to-know” basis. The data can be accessed only if it is strictly necessary to perform one of the activities specified in the Records of processing activities. The employees and contractors shall have access to the Personal Data only if they have the necessary credentials for it.

    2. Heads of the departments within PlayForm are responsible for their employees’ access and processing of personal data. The heads must maintain the list of employees that are entitled to access and process personal data. The Privacy Manager shall have the right to review the list and, where necessary, request the amendments to meet the requirements of this Policy.

    3. Heads of the departments within PlayForm must ensure that the employees under their supervision are aware of the Data Protection Laws and comply with the rules set in this Policy. To make sure our employees are able to comply with the data protection requirements, we must provide them with adequate data protection training.

    4. All employees accessing personal data shall keep strict confidentiality regarding the data they access. The employees that access personal data must use only those means (software, premises, etc.) for the processing that were prescribed by PlayForm. The data must not be disclosed or otherwise made available out of the management instructions.

    5. The employees within their competence must assist PlayForm’s representatives, including the Privacy Manager, in any efforts regarding compliance with Data Protection Laws and/or this Policy.

    6. When an employee detects or believes there is suspicious activity, data breach, non-compliance with Data Protection Laws and/or this Policy, or a DSR was not routed to the competent department within PlayForm, the employee must report such activity to the Privacy Manager.

    7. Employees that are unsure about whether they can legitimately process or disclose Personal Data must seek advice from the Privacy Manager before taking any action.

    8. Any occasional access to personal data for activities not specified in the Records of processing activities is prohibited. If there is a strict necessity for immediate access, the Privacy Manager must approve the access first.

Third Parties

  1. Before sharing personal data with any person outside of PlayForm, the Privacy Manager must ensure that this Third Party has an adequate data protection level and provide sufficient data protection guarantees in accordance with Data Protection Laws, including, but not limited to the processorship requirements (Art. 28 of the GDPR) and international transfers compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager must make sure that PlayForm enters into the appropriate data protection contract with the third party.

  2. An employee can share personal data with third parties only if and to the extent that was directly prescribed by the manager and specified in the Records of processing activities.

  3. If we are required to delete, change, or stop the processing of the Personal Data, we must ensure that the Third Parties, with whom we shared the Personal Data, will fulfill these obligations accordingly.

  4. Whenever PlayForm is engaged as a data processor on behalf of another entity, the Privacy Manager must make sure PlayForm complies with the processorship obligation. In particular, the appropriate data processing agreement in accordance with the Data Protection Laws must be in place. The Privacy Manager must supervise the compliance with data processing instructions from the controller, including regarding the scope of processing activities, involvement of sub-processors, international transfers, storage, and further disposal of processed personal data. The personal data processed under the processor role must not be processed for any other purposes than specified in the relevant instructions, agreement or other legal act regulating the relationships with the controller.

International Transfers

  1. If we have the employees, contractors, corporate affiliates, or Data Processors outside of the EEA, and we transfer Personal Data to them for the processing, the Privacy Manager must make sure PlayForm takes all necessary and appropriate safeguards in accordance with Data Protection Laws.

  2. The Privacy Manager must assess the safeguards available and propose to the PlayForm’s management the appropriate safeguard for each international transfer. The following regimes apply to the transfers of Personal Data outside of the EU:

    • where the European Commission decides that the country has an adequate level of personal data protection, the transfer does not require taking additional safeguards. The full list of adequate jurisdictions can be found on the relevant page of the European Commission’s website1.

    • to transfer Personal Data to our contractors or partners (Data Processors or Controllers) in other third countries, we must conclude Standard Contractual Clauses with that party. The draft version along with the guidance can be found on the relevant page of the European Commission’s website2;

    • if we have a corporate affiliate or an entity in other countries, we may choose to adopt Binding Corporate Rules in accordance with Article 47 of the GDPR or an approved code of conduct pursuant to Article 40 of the GDPR;

    • we also can transfer Personal Data to entities that have an approved certification in accordance with Article 42 of the GDPR, which certifies an appropriate level of company’s data protection.

  1. As a part of the information obligations, PlayForm must inform the Data Subjects that their Personal Data is being transferred to other countries, as well as provide them with the information about the safeguards used for the transfer. The information obligation is to be performed in accordance with Subsection 6.2.

  2. In the exceptional cases (the “Derogation”), where we cannot apply the safeguards mentioned afore and we need to transfer Personal Data, we must take an explicit consent (active statement) from the Data Subject or it must be strictly necessary for the performance of the contract between us and the Data Subject, or other derogation conditions apply in accordance with the Data Protection Laws. The Privacy Manager must pre-approve any Derogation transfers and document the approved Derogations, as well as the rationale for them.

Rights of Data Subjects

  1. Our Responsibilities.

    1. Privacy Manager is ultimately responsible for handing all DSR received by PlayForm. In the case of receiving any outstanding or unusual DSR, the employee must seek advice from the Privacy Manager before taking any action.

    2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm Users on a daily basis. The Human Resources department is responsible for handling the DSR from PlayForm employees.

    3. All DSRs from the Users must be addressed at and answered from the following e-mail address: DSR@PlayForm.LTD. DSR from the employees can be addressed directly to the HR manager or at DSR@PlayForm.LTD.

    4. The responsible employee must answer to the DSR within one (1) month from receiving the request. If complying with the DSR takes more than one month in time, the responsible employee must seek advice from the Privacy Manager and, where necessary, inform the Data Subject about the prolongation of the response term for up to two (2) additional months.

    5. The responsible employee must analyze the received DSR for the following criteria:

      • Data Subject identification. Before considering the DSR content, the responsible employee must make sure the Data Subject is the same person he/she claims to be. For this purpose, the connection between the personal data records and the data subject must be established.

      • Personal data. The responsible employee must check whether PlayForm has access to the personal data requested. If PlayForm does not have the personal data under the control, the responsible employee must inform the Data Subject, and, if possible, instruct on the further steps on how to access the data in question;

      • Content of the request. Depending on the content of the DSR, the responsible employee must define the type of the request and check whether it meets the conditions prescribed by this Policy and Data Protection Laws. The types of requests and the respective conditions for each of them can be consulted in Subsections 6.3-6.9. If the request does not meet the described criteria, the responsible employee must refuse to comply with the DSR and inform the Data Subject about the reasons for refusing;

      • Free of charge. Generally, all requests of Data Subjects and exercises of their rights are free of charge. If the responsible employee finds that the Data Subject exercises the rights in an excessive or unfound way (e.g., intended to harm or interrupt PlayForm’s business activities), the employee must seek the advice from the Privacy Manager, and, upon receiving of the latter, may either charge the Data Subject a reasonable fee or refuse to comply with the request;

      • Documenting. Whenever PlayForm receives the DSR, the Privacy Manager must make sure that the data and time, Data Subject, type of the request and the decision made regarding it are well documented. In the case of refusing to comply with the request, the reasons for refusing must be documented as well;

      • Recipients. When addressing the DSR, the Privacy Manager must make sure that all concerned recipients were informed the necessary actions were taken.

  2. The right to be informed.

    1. PlayForm must notify each Data Subject about the collection and further processing of the Personal Data.

    2. The information to be provided includes: the name and contact details of PlayForm; generic purposes of and the lawful basis for the data collection and further processing; categories of Personal Data collected; recipients/categories of recipients; retention periods; information about data subject rights, including the right to complain to the competent Supervisory Authority; the consequences of the cases where the data is necessary for the contract performance and the Data Subject does not provide the required data; details of the safeguards where personal data is transferred outside the EEA; and any third-party source of the personal data, without specification for the particular case (except if we receive the direct request from the Data Subject).

    3. The Users must be informed by the Privacy Policy accessible at PlayForm’s website and provided during the user registration. The employees and contractors must be informed by a standalone employee privacy statement, which explains the details described in p. 6.2.2 in a case-based manner, describing the particular purposes and activities.

    4. PlayForm must inform Data Subjects about data processing, including any new processing activity introduced at PlayForm within the following term:

      • if personal data is collected from the data subject directly, the data subject must be informed at the time we collect Personal Data from the Data Subjects by showing the Data Subject our privacy statement;

      • if the personal data is collected from other sources: (a) within one month from collecting it; (b) if the personal data are to be used for communication with the data subject, at the latest at the time of the first communication to that data subject; or (c) if a disclosure to another recipient is envisaged, at the latest when the personal data are first disclosed.

      • upon the request of the Data Subject; and

      • within one (1) month after any change of our personal data practices, change of the controller of Personal Data or after significant changes in our privacy statements.

  3. The right to access the information.

    1. The Data Subject must be provided only with those personal data records specified in the request. If the Data Subject requests access to all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all personal data of the Data Subject is mapped and provided.

    2. A Data Subject has the right to:

      • learn if we process the Data Subject’s Personal Data;

      • obtain disclosure regarding aspects of the processing, including detailed and case-specific information on purposes, categories of Personal Data, recipients/categories of recipients, retention periods, information about one’s rights, details of the relevant safeguards where personal data is transferred outside the EEA, and any third-party source of the personal data; and

      • obtain a copy of the Personal Data undergoing processing upon the request.

  4. The right to verify the Data Subject’s information and seek its rectification. The information we collect can be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of birth, info on debts, economic activities). If we reveal that the Personal Data is inaccurate or the Data Subject requests us to do so, we must ensure that we correct all mistakes and update the relevant information.

  5. The right to restrict processing.

    1. The restriction of processing allows Data Subjects to temporarily stop the use of their information to prevent the possible harm caused by such use.

    2. This right applies when the Data Subject:

      • contests the accuracy of the Personal Data;

      • believes that we process the Personal Data unlawfully; and

      • objects against the processing and wants us not to process Personal Data while we are considering the request.

    3. In the case of receiving the restriction request, we must not process Personal Data in question for any other purpose than storing it or for legal compliance purposes until the circumstances of restriction cease to exist.

  6. The right to withdraw the consent. For the activities that require consent, the Data Subject can revoke their consent at any time. If the Data Subject revokes the consent, we must record the changes and must not process the Personal Data for consent-based purposes. The withdrawal of consent does not affect the lawfulness of the processing done before the withdrawal.

  7. The right to object against the processing.

    1. If we process the information in our legitimate interests, e.g., for direct marketing emails or for our marketing research purposes, the Data Subject can object against the processing.

    2. In the case of receiving the objection request case, we must consider Data Subject’s request and, where we do not have compelling interests, stop the processing for the specified purposes. If the personal data is still to be processed for other purposes, the Privacy Manager must make sure that the database has a record that the data cannot be further processed for the objected activities.

    3. The objection request can be refused only if the personal data in question is used for scientific/historical research or statistical purposes and was appropriately protected, i.e., by anonymization or pseudonymization techniques.

  8. Right to erasure/to be forgotten.

    1. The Data Subjects have the right to request us to erase their Personal Data if one of the following conditions are met:

      • Personal Data is no longer necessary for the purposes of collection. For example, a user has provided personal data for a one-time activity, such as data validation or participation in a contest, and the purpose is already fulfilled;

      • the Data Subject revokes one’s consent or objects to the processing (where applicable) and there is no other legal ground for the processing; or

      • we process the Personal Data unlawfully or its erasure is required by the applicable legislation of the European Union or one of the Member countries of the European Union.

    2. Conditions, under which we have the right to refuse the erasure:

      • Personal Data is processed for scientific/historical research or statistical purposes and is appropriately protected, i.e., pseudonymized or anonymized;

      • Personal Data is still necessary for legal compliance (e.g., financial or labor laws compliance).

    3. Only those personal data records must be deleted that were specified in the request. If the Data Subject requests the deletion of all personal data concerning her or him, the employee must seek advice from the Privacy Manager first, to make sure all the data about the Data Subject is mapped and can be deleted.

    4. If the User still has an account with us and requests the erasure of information necessary for maintaining the account, we must inform the User that the erasure will affect user experience or can lead to the closure of the account.

  9. Data portability.

    1. Data Subjects can ask us to transfer all the Personal Data and/or its part in a machine-readable format to a third party. This right applies in two cases:

      • personal data was collected for the purpose of provision of our services (performance of the contract); or

      • collected based on consent.

    2. To determine whether one of the p.6.9.1 conditions are met, the employee must seek advice from the Privacy Manager and check the applicable legal basis in the Records of processing activities. If the answer is negative, the request can be refused by PlayForm, and the Privacy Manager must decide whether to comply with the request on a voluntary basis.

    3. To comply with the request, the responsible employee must consolidate requested Personal Data and send the data in the format we are usually working with to the requested organization. The Data Subject must provide the necessary contact details of the organization.

New Data Processing Activities

  1. Notification to Privacy Manager.

    1. Before introducing any new activity that involves the processing of personal data, an employee responsible for its implementation must inform the Privacy Manager.

    2. Upon receiving information about a new activity, Privacy Manager must:

      • determine whether the data processing impact assessment (DPIA) and/or the consultation with the Supervisory Authority is necessary. If the answer is positive, the Privacy Manager must make sure the DPIA is conducted and/or the Supervisory Authority is consulted in accordance with the requirements of this Section and Data Protection Laws;

      • determine the legal basis for the processing and, where necessary, take further action for its fixation;

      • make sure the processing activity is done in accordance with this Policy, other PlayForm’s policies, as well as the Data Protection Laws;

      • add the processing activity to the Records of processing activities;

      • amend the privacy information statements and, where necessary, inform the concerned Data Subject accordingly.

  2. Data Processing Impact Assessment.

    1. To make sure that our current or prospective processing activities do not/will not violate the Data Subjects’ rights, PlayForm must, where required by Data Protection Laws, conduct the Data Processing Impact Assessment (DPIA), a risk-based assessment of the processing and search for the measures to mitigate the risks. The Privacy Manager must make sure the DPIA is conducted in accordance with this Section.

    2. The Privacy Manager, where necessary, involving the competent employees and/or external advisors, must conduct a DPIA if at least one of the following conditions are met:

      • the processing involves the use of new technologies, such as the Artificial Intelligence, use of connected and autonomous devices, etc. that creates certain legal, economic or similar effects to the Data Subject;

      • we systematically assess and evaluate personal aspects of the Data Subjects based on automated profiling, assigning the personal score/rate, and create legal or similar effects for the Data Subject by this activity;

      • we process on a large-scale sensitive data, which includes Personal Data relating to criminal convictions and offences, the data about vulnerable data subjects, the personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation;

      • we collect or process Personal Data from a publicly accessible area or public sources on a large scale, or combine or match two different data sets; and

      • the Supervisory Authority in its public list requires conducting a DPIA for a certain type of activity we are involved in. The list of processing activities requiring conducting DPIA can be found on the website of each Supervisory Authority.

    3. The assessment shall contain at least the following details:

      • a systematic description of the processing operations and the purposes of the processing, including, where applicable, the legitimate interest pursued by us. The description must include the envisaged data categories and data subjects concerned, the scale of processing activities, such as its frequency, volume, envisaged number of records, etc.; recipients of the data, retention periods and, where applicable, international transfers;

      • an assessment of the necessity and proportionality of the processing operations in relation to the purposes. The DPIA must explain whether the activity is necessary for the purpose and whether the purpose can be achieved by less intrusive methods;

      • an assessment of the risks to the rights and freedoms of data subjects, including the rights of Data Subjects regarding their Personal Data.

      • The examples of risks are the processing which could lead to physical, material or non-material damage, in particular: where the processing may give rise to discrimination, identity theft or fraud, financial loss, damage to the reputation, loss of confidentiality of personal data protected by professional secrecy, unauthorized reversal of pseudonymization, or any other significant economic or social disadvantage; where data subjects might be deprived of their rights and freedoms or prevented from exercising control over their personal data; where personal data are processed which reveal racial or ethnic origin, political opinions, religion or philosophical beliefs, trade union membership, and the processing of genetic data, data concerning health or data concerning sex life or criminal convictions and offences or related security measures; where personal aspects are evaluated, in particular analyzing or predicting aspects concerning performance at work, economic situation, health, personal preferences or interests, reliability or behavior, location or movements, in order to create or use personal profiles; where personal data of vulnerable natural persons, in particular of children, are processed; or where processing involves a large amount of personal data and affects a large number of data subjects; and

      • the measures to address the risks, including safeguards, security measures, and mechanisms to ensure the protection of personal data and to demonstrate compliance with this Regulation.

    4. Where the DPIA did not provide how to effectively address the risks, the Privacy Manager must initiate the consultation with the competent Supervisory Authority to receive help with searching for the solution. In this case, PlayForm must not conduct the activity before the Supervisory Authority approves the processing activity in question.

Data Retention

  1. General Rule.

    1. The Privacy Manager must make sure that PlayForm clearly defined the data storage periods and/or criteria for determining the storage periods for each processing activity it has. The periods for each processing activity must be specified in the Records of processing activities.

    2. Each department within PlayForm must comply with the data storage periods in accordance with the retention schedule provided in Records of processing activities. The Privacy Manager must supervise each department and make sure they comply with this requirement.

    3. After the storage period ends, the personal data must be removed from the disposal of the department responsible for the processing or, in cases where the data is not needed for any other purposes, destroyed completely, including from back-up copies and other media.

    4. Whenever the storage period for a processing activity has ended, but the personal data processed is necessary for other processing purposes, the department manager must make sure that the personal data is not used for the ceased processing activity, and the responsible employees do not have the access to it unless required for any other activity.

  2. Exemptions. The rules specified in Subsection 8.1 have the following exceptions:

    1. Business needs. Data retention periods can be prolonged, but no longer than 60 days, in the case that the data deletion will interrupt or harm our ongoing business. The Privacy Manager must approve any unforeseen prolongation;

    2. Technical impossibility. Some information is technically impossible or disproportionally difficult to delete. For example, deletion of the information may lead to breach of system integrity, or it is impossible to delete the information from the backup copies. In such a case, the information can be further stored, subject to the approval by the Privacy Manager and making respective amendments to the Records of processing activities; and

    3. Anonymization. The Personal Data can be further processed for any purposes (e.g., marketing) if we fully anonymize these data after the retention period is expired. This means that all personal identifiers and connections to them will be deleted from the data. To consider Personal Data anonymous, it must be impossible to reidentify the Data Subject from the data set.

Security

  1. Each department within PlayForm shall take all appropriate technical and organizational measures that protect against unauthorized, unlawful, and/or accidental access, destruction, modification, blocking, copying, distribution, as well as from other illegal actions of unauthorized persons regarding the personal data under their responsibility.

  2. The employee responsible for the supervision after the security of personal data within PlayForm shall be DSR Officer. This person implements the guidelines and other specifications on data protection and information security in his area of responsibility. He/she advises PlayForm management on the planning and implementation of information security in PlayForm, and must be involved in all projects at an early stage in order to take security-related aspects into account as early as the planning phase.

Data Breach Response Procedure

  1. Response Team.

    1. In case of revealing the Data Breach, CEO of PlayForm shall urgently form the Data Breach Response Team (the “Response Team”), which will handle the Data Breach, notify the appropriate persons, and mitigate its risks.

    2. The Response Team must be а multi-disciplinary group headed by CEO of PlayForm and comprised of the Privacy Manager, privacy laws specialist (whether internal or external), and knowledgeable and skilled information security specialists within PlayForm or outsourcing professionals, if necessary. The team must ensure that all employees and engaged contractors/processors adhere to this Policy and provide an immediate, effective, and skillful response to any suspected/alleged or actual Data Breach affecting PlayForm.

    3. The potential members of the Response Team must be prepared to respond to а Data Breach. The Response Team shall perform all the responsibilities of PlayForm mentioned in this Policy. The duties of the Response Team are:

      • to communicate the Data Breach to the competent Supervisory Authority(-ies);

      • in case of high risk to the rights and freedoms of Data Subjects, to communicate the Data Breach to the Data Subject;

      • if PlayForm obtain data from any third party as a processor, and a Data Breach involves obtained data, to inform the third parties about the Data Breach;

      • to communicate PlayForm’s contractors or any other third parties that process the Personal Data involved in the Data Breach; and

      • to take all appropriate technical and organizational measures to cease the Data Breach and mitigate its consequences;

      • to record the fact of the Data Breach in the Records of processing activities and file an internal data breach report that describes the event.

    4. The Response Team shall perform its duties until all the necessary measures required by this Policy are taken.

  2. Notification to Supervisory Authority.

    1. PlayForm shall inform the Competent Supervisory Authority about the Data Breach without undue delay and, where it is possible, not later than 72 hours after having become aware of the Data Breach.

    2. The Competent Supervisory Authority shall be determined by the residence of the Data Subjects, whose information was involved in the Data Breach. If the Data Breach concerns the Personal Data of Data Subjects from more than one country, PlayForm shall inform all Competent Supervisory Authorities.

    3. To address the notification to the authority, the Response Team should use Annex 1 to this Policy. Annex 1 contains all the necessary contact information of the EU supervisory authorities. If the Data Breach concerns Data Subjects from other than the EU countries, the Response Team shall ask a competent privacy specialist for advice.

    4. The notification to the Competent Supervisory Authority shall contain, at least, following information:

      • the nature of the Data Breach including where possible, the categories and an approximate number of Data Subjects and Personal Data records concerned;

      • the name and contact details of the Response Team, Privacy Manager or, if not applicable, of the CEO;

      • the likely consequences of the Data Breach. Explain PlayForm’s point of view on the purposes and possible further risks of the Data Breach. E.g., the Personal Data may be stolen for the further sale, fraud activities or blackmailing the concerned Data Subjects; and

      • the measures taken or proposed to be taken by PlayForm to address the Data Breach, including, where appropriate, measures to mitigate its possible adverse effects.

    5. To file a notification, the Response Team should use PlayForm’s Data Breach Notification Form to the Supervisory Authority.

  3. Notifications to Data Subjects.

    1. When the Data Breach is likely to result in a high risk to the rights and freedoms of Data Subjects (e.g., stealing of funds, assets, proprietary information), we must also communicate the Data Breach to the concerned Data Subjects without undue delay. The Privacy Manager must determine if there is a high risk based on the risk factors specified in Subsection 7.2.3 of this Policy.

    2. The notification shall contain the following information:

      • description of the Data Breach - what happened and what led to the Data Breach, such as a security breach, employee’s negligence, error in the system work. If the Response Team decided not to disclose the causes of the Data Breach, then this clause must not be mentioned;

      • the measures taken by PlayForm regarding the Data Breach, including security measures, internal investigations, and supervisory authority notice;

      • recommendations for the concerned Data Subjects how to mitigate risks and possible consequences, such as guidelines on how to restore access to an account, preventing measures (change of a password); and

      • the contact information of the Response Team or one of its members.

    3. The notification to the Data Subjects should be carried out by the email letter or, where it is impossible to use the email, by other available means of communication.

    4. Exemptions. We do not have to send the notification to the Data Subjects if any of the following conditions are met:

      • PlayForm has implemented appropriate technical and organizational protection measures, and those measures were applied to the Personal Data affected by the Data Breach, in particular, those that leave the Personal Data inaccessible to any person who is not authorized to access it, such as encryption;

      • PlayForm has taken subsequent measures which ensure that the high risk to the rights and freedoms of Data Subjects referred to in this section is no longer likely to materialize; or

      • it would involve a disproportionate effort to communicate with every concerned Data Subject. In such a case, there shall instead be a public communication or similar measure whereby the Data Subjects are informed in an equally effective manner.

In the case we apply one of the exemptions, we must document the circumstances, reason for not informing, and actions taken to meet one of the exemptions.

  1. Communication with Third Parties.

    1. In the case a Data Breach concerns the Personal Data shared with us or processed by us on behalf of a Third Party, we must also notify the Third Party about it within 24 hours. If we process the Personal Data as a Data Processor, the notification of the Third Party does not exempt us from the duty to mitigate the Data Breach consequences, but we must not inform the Competent Supervisory Authority and Data Subjects.

    2. In case of receiving the notification about the Data Breach from the Data Processor or other Third Parties that have access to the Personal Data, CEO of PlayForm shall, in accordance with this Section:

      • form the Response Team;

      • request the Third Party to send the information mentioned in Subsections 10.2-3 of this Policy;

      • where necessary, inform the Competent Supervisory Authority(-ies) and Data Subjects; and

      • perform other steps of the Data Breach response procedure.

List of Persons Briefed on Personal Data Protection Policy

Full Name

Status

Date

Nikola HristovBriefed05.25.2018

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

European National Data Protection Authorities

Austria

Österreichische Datenschutzbehörde
Hohenstaufengasse 3
1010 Wien
Tel. +43 1 531 15 202525
Fax +43 1 531 15 202690
E-mail: dsb@dsb.gv.at
WebSite: https://www.dsb.gv.at

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische Datenschutzbehörde

Belgium

Commission de la protection de la vie privée
Commissie voor de bescherming van de persoonlijke levenssfeer
Rue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
Tel. +32 2 274 48 00
Fax +32 2 274 48 35
E-mail: commission@privacycommission.be
WebSite: https://www.privacycommission.be

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy commission

Bulgaria

Commission for Personal Data Protection
2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
Tel. +359 2 915 3580
Fax +359 2 915 3525
E-mail: kzld@cpdp.bg
WebSite: https://www.cpdp.bg

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for Personal Data Protection
Art 29 WP Alternate Member: Ms. Mariya MATEVA

Croatia

Croatian Personal Data Protection Agency
Martićeva 14
10000 Zagreb
Tel. +385 1 4609 000
Fax +385 1 4609 099
E-mail: azop@azop.hr or info@azop.hr
WebSite: https://www.azop.hr

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection Agency

Cyprus

Commissioner for Personal Data Protection
1 Iasonos Street,
1082 Nicosia
P.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
Fax +357 22 304 565
E-mail: commissioner@dataprotection.gov.cy
WebSite: https://www.dataprotection.gov.cy

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
Art 29 WP Alternate Member: Mr. Constantinos GEORGIADES

Czech Republic

The Office for Personal Data Protection
Urad pro ochranu osobnich udaju Pplk. Sochora 27
170 00 Prague 7
Tel. +420 234 665 111
Fax +420 234 665 444
E-mail: posta@uoou.cz
WebSite: https://www.uoou.cz

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data Protection
Art 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the Office

Denmark

Datatilsynet
Borgergade 28, 5
1300 Copenhagen K
Tel. +45 33 1932 00
Fax +45 33 19 32 18
E-mail: dt@datatilsynet.dk
WebSite: https://www.datatilsynet.dk

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection Agency (Datatilsynet)
Art 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International Division at the Danish Data Protection Agency (Datatilsynet)

Estonia

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
Väike-Ameerika 19
10129 Tallinn
Tel. +372 6274 135
Fax +372 6274 137
E-mail: info@aki.ee
WebSite: https://www.aki.ee/en

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Maarja Kirss

Finland

Office of the Data Protection Ombudsman
P.O. Box 315
FIN-00181 Helsinki Tel. +358 10 3666 700
Fax +358 10 3666 735
E-mail: tietosuoja@om.fi
WebSite: https://www.tietosuoja.fi/en

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection Authority
Art 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

France

Commission Nationale de l’Informatique et des Libertés - CNIL
8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
Tel. +33 1 53 73 22 22
Fax +33 1 53 73 22 00
WebSite: https://www.cnil.fr

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
Art 29 WP Alternate Member: Ms. Florence RAYNAL

Germany

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
Husarenstraße 30
53117 Bonn
Tel. +49 228 997799 0; +49 228 81995 0
Fax +49 228 997799 550; +49 228 81995 550
E-mail: poststelle@bfdi.bund.de
WebSite: https://www.bfdi.bund.de

The competence for complaints is split among different data protection supervisory authorities in Germany.

Competent authorities can be identified according to the list provided under

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of Information
Art 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the federal states

Greece

Hellenic Data Protection Authority
Kifisias Av. 1-3, PC 11523 Ampelokipi Athens
Tel. +30 210 6475 600
Fax +30 210 6475 628
E-mail: contact@dpa.gr
WebSite: https://www.dpa.gr

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
Art 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

Hungary

National Authority for Data Protection and Freedom of Information
Szilágyi Erzsébet fasor 22/C H-1125 Budapest
Tel. +36 1 3911 400
E-mail: peterfalvi.attila@naih.hu
WebSite: https://www.naih.hu

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for Data Protection and Freedom of Information
Art 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National Authority for Data Protection and Freedom of Information

Ireland

Data Protection Commissioner
Canal House Station Road Portarlington Co. Laois
Lo-Call: 1890 25 22 31
Tel. +353 57 868 4800
Fax +353 57 868 4757
E-mail: info@dataprotection.ie
WebSite: https://www.dataprotection.ie

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
Art 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale SUNDERLAND, Deputy Commissioner

Italy

Garante per la protezione dei dati personali
Piazza di Monte Citorio, 121 00186 Roma
Tel. +39 06 69677 1
Fax +39 06 69677 785
E-mail: garante@garanteprivacy.it
WebSite: https://www.garanteprivacy.it

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei dati personali
Art 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per la protezione dei dati personali

Latvia

Data State Inspectorate Director: Ms. Daiga Avdejanova
Blaumana str. 11/13-15
1011 Riga
Tel. +371 6722 3131
Fax +371 6722 3556
E-mail: info@dvi.gov.lv
WebSite: https://www.dvi.gov.lv

Art 29 WP Alternate Member: Ms. Aiga BALODE

Lithuania

State Data Protection
Žygimantų str. 11-6a 011042 Vilnius
Tel. + 370 5 279 14 45
Fax +370 5 261 94 94
E-mail: ada@ada.lt
WebSite: https://www.ada.lt

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data Protection Inspectorate
Art 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of Complaints Investigation and International Cooperation Division

Luxembourg

Commission Nationale pour la Protection des Données
1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
Fax +352 2610 60 29
E-mail: info@cnpd.lu
WebSite: https://www.cnpd.lu

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour la Protection des Données
Art 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

Malta

Office of the Data Protection Commissioner
Data Protection Commissioner: Mr. Joseph Ebejer
2, Airways House
High Street, Sliema SLM 1549 Tel. +356 2328 7100
Fax +356 2328 7198
E-mail: commissioner.dataprotection@gov.mt
WebSite: https://idpc.org.mt

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection Commissioner
Art 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme Implementation

Netherlands

Autoriteit Persoonsgegevens
Prins Clauslaan 60
P.O. Box 93374
2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
Fax +31 70 888 8501
E-mail: info@autoriteitpersoonsgegevens.nl
WebSite: https://autoriteitpersoonsgegevens.nl/nl

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

Poland

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
ul. Stawki 2
00-193 Warsaw
Tel. +48 22 53 10 440
Fax +48 22 53 10 441
E-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
WebSite: https://www.giodo.gov.pl

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection of Personal Data

Portugal

Comissão Nacional de Protecção de Dados - CNPD
R. de São. Bento, 148-3° 1200-821 Lisboa
Tel. +351 21 392 84 00
Fax +351 21 397 68 32
E-mail: geral@cnpd.pt
WebSite: https://www.cnpd.pt

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção de Dados
Art 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

Romania

The National Supervisory Authority for Personal Data Processing President: Mrs. Ancuţa Gianina Opre
B-dul Magheru 28-30
Sector 1, BUCUREŞTI
Tel. +40 21 252 5599
Fax +40 21 252 5757
E-mail: anspdcp@dataprotection.ro
WebSite: https://www.dataprotection.ro

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory Authority for Personal Data Processing
Art 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and Communication Department

Slovakia

Office for Personal Data Protection of the Slovak Republic
Hraničná 12
820 07 Bratislava 27
Tel.: + 421 2 32 31 32 14
Fax: + 421 2 32 31 32 34
E-mail: statny.dozor@pdp.gov.sk
WebSite: https://dataprotection.gov.sk

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data Protection of the Slovak Republic
Art 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

Slovenia

Information Commissioner
Ms. Mojca Prelesnik Zaloška 59
1000 Ljubljana
Tel. +386 1 230 9730
Fax +386 1 230 9778
E-mail: gp.ip@ip-rs.si
WebSite: https://www.ip-rs.si

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic of Slovenia

Spain

Agencia de Protección de Datos
C/Jorge Juan, 6
28001 Madrid
Tel. +34 91399 6200
Fax +34 91455 5699
E-mail: internacional@agpd.es
WebSite: https://www.agpd.es

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data Protection Agency
Art 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

Sweden

Datainspektionen
Drottninggatan 29 5th Floor
Box 8114
20 Stockholm
Tel. +46 8 657 6100
Fax +46 8 652 8652
E-mail: datainspektionen@datainspektionen.se
WebSite: https://www.datainspektionen.se

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data Inspection Board
Art 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

United Kingdom

The Information Commissioner’s Office
Water Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
E-mail: international.team@ico.org.uk
WebSite: https://ico.org.uk

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
Art 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

EUROPEAN FREE TRADE AREA (EFTA)

Iceland

Icelandic Data Protection Agency
Rauðarárstíg 10
Reykjavík
Tel. +354 510 9600; Fax +354 510 9606
E-mail: postur@personuvernd.is
WebSite: https://www.personuvernd.is

Liechtenstein

Data Protection Office
Kirchstrasse 8, P.O. Box 684
9490 Vaduz
Principality of Liechtenstein Tel. +423 236 6090
E-mail: info.dss@llv.li
WebSite: https://www.datenschutzstelle.li

Norway

Datatilsynet
Data Protection Authority: Mr. Bjørn Erik THORN
The Data Inspectorate
P.O. Box 8177 Dep 0034 Oslo
Tel. +47 22 39 69 00; Fax +47 22 42 23 50
E-mail: postkasse@datatilsynet.no
WebSite: https://www.datatilsynet.no

Switzerland

Data Protection and Information Commissioner of Switzerland
Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian Lobsiger
Feldeggweg 1
3003 Bern
Tel. +41 58 462 43 95; Fax +41 58 462 99 96
E-mail: contact20@edoeb.admin.ch
WebSite: https://www.edoeb.admin.ch

Footnotes

  1. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

  2. https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

\ No newline at end of file diff --git a/Target/PRIVACY POLICY/index.html b/Target/PRIVACY POLICY/index.html index d260030f..d23e3791 100644 --- a/Target/PRIVACY POLICY/index.html +++ b/Target/PRIVACY POLICY/index.html @@ -1 +1 @@ -Privacy Policy

PRIVACY POLICY

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd..

PlayForm ltd. (“us”, “we”, or “our”) operates https://PlayForm.LTD and PlayForm mobile application (hereinafter referred to as “Service”).

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm mobile application, and explains how we collect, safeguard and disclose information that results from your use of our Service.

We use your data to provide and improve Service. By using Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.

Our Terms and Conditions (“Terms”) govern all use of our Service and together with the Privacy Policy constitutes your agreement with us (“agreement”).

Definitions

SERVICE means the https://PlayForm.LTD website and PlayForm mobile application operated by PlayForm ltd.

PERSONAL DATA means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).

USAGE DATA is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).

DATA CONTROLLER means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.

DATA SUBJECT is any living individual who is the subject of Personal Data.

THE USER is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.

Information Collection and Use

We collect several different types of information for various purposes to provide and improve our Service to you.

Types of Data Collected

Personal Data

While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you (“Personal Data”). Personally identifiable information may include, but is not limited to:

a. Email address

b. First name and last name

c. Phone number

d. Address, State, Province, ZIP/Postal code, City

e. Usage Data

We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at Support@PlayForm.LTD.

Usage Data

We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device (“Usage Data”).

This Usage Data may include information such as your computer’s Internet Protocol address (e.g., IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.

Tracking Data

We use tracking technologies to track the activity on our Service and we hold certain information.

Tracking technologies are used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.

PlayForm’s websites and online services may use “cookies.” Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.

Use of Data

PlayForm ltd. Uses the collected data for various purposes:

a. to provide and maintain our Service;

b. to notify you about changes to our Service;

c. to allow you to participate in interactive features of our Service when you choose to do so;

d. to provide customer support;

e. to gather analysis or valuable information so that we can improve our Service;

f. to monitor the usage of our Service;

g. to detect, prevent and address technical issues;

h. to fulfill any other purpose for which you provide it;

i. to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;

j. to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;

k. to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;

l. in any other way we may describe when you provide the information;

m. for any other purpose with your consent.

Retention of Data

We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.

Transfer of Data

Your information, including Personal Data, may be transferred to – and maintained on – computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those of your jurisdiction.

If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.

Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.

PlayForm ltd. Will take all the steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.

Disclosure of Data

We may disclose personal information that we collect, or you provide:

a. Disclosure for Law Enforcement.

Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities.

b. Business Transaction.

If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.

c. Other cases. We may disclose your information also:

i. to our subsidiaries and affiliates;

ii. to fulfill the purpose for which you provide it;

iii. for the purpose of including your company’s logo on our website;

iv. for any other purpose disclosed by us when you provide the information;

v. with your consent in any other cases;

vi. if we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.

Security of Data

The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR. – See more at https://eur-lex.europa.eu/eli/reg/2016/679/oj

We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.

If you wish to be informed what Personal Data, we hold about you and if you want it to be removed from our systems, please email us at Support@PlayForm.LTD.

In certain circumstances, you have the following data protection rights:

a. the right to access, update or to delete the information we have on you;

b. the right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete;

c. the right to object. You have the right to object to our processing of your Personal Data;

d. the right of restriction. You have the right to request that we restrict the processing of your personal information;

e. the right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;

f. the right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;

Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.

You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law’s reach stretches well beyond California to require a person or company in the United States (and conceivable the world) that operates websites collecting personally identifiable information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals with whom it is being shared, and to comply with this policy. – See more at: https://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

According to CalOPPA we agree to the following:

a. users can visit our site anonymously;

b. our Privacy Policy link includes the word “Privacy”, and can easily be found on the page specified above on the home page of our website;

c. users will be notified of any privacy policy changes on our Privacy Policy Page;

d. users are able to change their personal information by emailing us at Support@PlayForm.LTD.

Our Policy on “Do Not Track” Signals:

We honor Do Not Track signals and do not track, or use advertising when a Do Not Track browser mechanism is in place. Do Not Track is a preference you can set in your web browser to inform websites that you do not want to be tracked.

You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

If you are a California resident, you are entitled to learn what data we collect about you, ask to delete your data and not to sell (share) it. To exercise your data protection rights, you can make certain requests and ask us:

a. What personal information we have about you. If you make this request, we will return to you:

i. The categories of personal information we have collected about you.

ii. The categories of sources from which we collect your personal information.

iii. The business or commercial purpose for collecting or selling your personal information.

iv. The categories of third parties with whom we share personal information.

v. The specific pieces of personal information we have collected about you.

vi. A list of categories of personal information that we have sold, along with the category of any other company we sold it to. If we have not sold your personal information, we will inform you of that fact.

vii. A list of categories of personal information that we have disclosed for a business purpose, along with the category of any other company we shared it with.

Please note, you are entitled to ask us to provide you with this information up to two times in a rolling twelve-month period. When you make this request, the information provided may be limited to the personal information we collected about you in the previous 12 months.

b. To delete your personal information. If you make this request, we will delete the personal information we hold about you as of the date of your request from our records and direct any service providers to do the same. In some cases, deletion may be accomplished through de-identification of the information. If you choose to delete your personal information, you may not be able to use certain functions that require your personal information to operate.

c. To stop selling your personal information. If you submit a request to stop selling your personal information, we will stop selling it. If you are a California resident, to opt-out of the sale of your personal information, click “Do Not Sell My Personal Information” at the bottom of our home page to submit your request.

Please note, if you ask us to delete or stop selling your data, it may impact your experience with us, and you may not be able to participate in certain programs or membership services which require the usage of your personal information to function. But in no circumstances, we will discriminate against you for exercising your rights.

To exercise your California data protection rights described above, please send your request(s) by one of the following means:

By email: Support@PlayForm.LTD

By phone number: +359876668093

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

Your data protection rights, described above, are covered by the CCPA, short for the California Consumer Privacy Act. To find out more, visit the official California Legislative Information website. The CCPA took effect on 01/01/2020.

Service Providers

We may employ third party companies and individuals to facilitate our Service (“Service Providers”), provide Service on our behalf, perform Service-related services or assist us in analyzing how our Service is used.

These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

Payments

We may provide paid products and/or services within Service. In that case, we use third-party services for payment processing (e.g., payment processors).

We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.

The payment processors we work with are:

PayPal or Braintree:

Their Privacy Policy can be viewed at https://www.paypal.com/webapps/mpp/ua/privacy-full

Apple Store In-App Payments:

Their Privacy Policy can be viewed at: https://www.apple.com/legal/privacy/en-ww/ / https://support.apple.com/en-us/HT203027

Google Play In-App Payments:

Their Privacy Policy can be viewed at: https://policies.google.com/privacy?hl=en&gl=us / https://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

Stripe:

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

Our Service may contain links to other sites that are not operated by us. If you click a third-party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.

Children’s Privacy

Our Services are not intended for use by children under the age of 18 (“Child” or “Children”).

We do not knowingly collect personally identifiable information from Children under 18. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.

Changes to This Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update “effective date” at the top of this Privacy Policy.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, please contact us:

By email: Support@PlayForm.LTD.

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file +Privacy Policy

PRIVACY POLICY

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd..

PlayForm ltd. (“us”, “we”, or “our”) operates https://PlayForm.LTD and PlayForm mobile application (hereinafter referred to as “Service”).

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm mobile application, and explains how we collect, safeguard and disclose information that results from your use of our Service.

We use your data to provide and improve Service. By using Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.

Our Terms and Conditions (“Terms”) govern all use of our Service and together with the Privacy Policy constitutes your agreement with us (“agreement”).

Definitions

SERVICE means the https://PlayForm.LTD website and PlayForm mobile application operated by PlayForm ltd.

PERSONAL DATA means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).

USAGE DATA is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).

DATA CONTROLLER means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.

DATA SUBJECT is any living individual who is the subject of Personal Data.

THE USER is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.

Information Collection and Use

We collect several different types of information for various purposes to provide and improve our Service to you.

Types of Data Collected

Personal Data

While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you (“Personal Data”). Personally identifiable information may include, but is not limited to:

a. Email address

b. First name and last name

c. Phone number

d. Address, State, Province, ZIP/Postal code, City

e. Usage Data

We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at Support@PlayForm.LTD.

Usage Data

We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device (“Usage Data”).

This Usage Data may include information such as your computer’s Internet Protocol address (e.g., IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.

Tracking Data

We use tracking technologies to track the activity on our Service and we hold certain information.

Tracking technologies are used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.

PlayForm’s websites and online services may use “cookies.” Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.

Use of Data

PlayForm ltd. Uses the collected data for various purposes:

a. to provide and maintain our Service;

b. to notify you about changes to our Service;

c. to allow you to participate in interactive features of our Service when you choose to do so;

d. to provide customer support;

e. to gather analysis or valuable information so that we can improve our Service;

f. to monitor the usage of our Service;

g. to detect, prevent and address technical issues;

h. to fulfill any other purpose for which you provide it;

i. to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;

j. to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;

k. to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;

l. in any other way we may describe when you provide the information;

m. for any other purpose with your consent.

Retention of Data

We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.

Transfer of Data

Your information, including Personal Data, may be transferred to – and maintained on – computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those of your jurisdiction.

If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.

Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.

PlayForm ltd. Will take all the steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.

Disclosure of Data

We may disclose personal information that we collect, or you provide:

a. Disclosure for Law Enforcement.

Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities.

b. Business Transaction.

If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.

c. Other cases. We may disclose your information also:

i. to our subsidiaries and affiliates;

ii. to fulfill the purpose for which you provide it;

iii. for the purpose of including your company’s logo on our website;

iv. for any other purpose disclosed by us when you provide the information;

v. with your consent in any other cases;

vi. if we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.

Security of Data

The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR. – See more at https://eur-lex.europa.eu/eli/reg/2016/679/oj

We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.

If you wish to be informed what Personal Data, we hold about you and if you want it to be removed from our systems, please email us at Support@PlayForm.LTD.

In certain circumstances, you have the following data protection rights:

a. the right to access, update or to delete the information we have on you;

b. the right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete;

c. the right to object. You have the right to object to our processing of your Personal Data;

d. the right of restriction. You have the right to request that we restrict the processing of your personal information;

e. the right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;

f. the right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;

Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.

You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law’s reach stretches well beyond California to require a person or company in the United States (and conceivable the world) that operates websites collecting personally identifiable information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals with whom it is being shared, and to comply with this policy. – See more at: https://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

According to CalOPPA we agree to the following:

a. users can visit our site anonymously;

b. our Privacy Policy link includes the word “Privacy”, and can easily be found on the page specified above on the home page of our website;

c. users will be notified of any privacy policy changes on our Privacy Policy Page;

d. users are able to change their personal information by emailing us at Support@PlayForm.LTD.

Our Policy on “Do Not Track” Signals:

We honor Do Not Track signals and do not track, or use advertising when a Do Not Track browser mechanism is in place. Do Not Track is a preference you can set in your web browser to inform websites that you do not want to be tracked.

You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

If you are a California resident, you are entitled to learn what data we collect about you, ask to delete your data and not to sell (share) it. To exercise your data protection rights, you can make certain requests and ask us:

a. What personal information we have about you. If you make this request, we will return to you:

i. The categories of personal information we have collected about you.

ii. The categories of sources from which we collect your personal information.

iii. The business or commercial purpose for collecting or selling your personal information.

iv. The categories of third parties with whom we share personal information.

v. The specific pieces of personal information we have collected about you.

vi. A list of categories of personal information that we have sold, along with the category of any other company we sold it to. If we have not sold your personal information, we will inform you of that fact.

vii. A list of categories of personal information that we have disclosed for a business purpose, along with the category of any other company we shared it with.

Please note, you are entitled to ask us to provide you with this information up to two times in a rolling twelve-month period. When you make this request, the information provided may be limited to the personal information we collected about you in the previous 12 months.

b. To delete your personal information. If you make this request, we will delete the personal information we hold about you as of the date of your request from our records and direct any service providers to do the same. In some cases, deletion may be accomplished through de-identification of the information. If you choose to delete your personal information, you may not be able to use certain functions that require your personal information to operate.

c. To stop selling your personal information. If you submit a request to stop selling your personal information, we will stop selling it. If you are a California resident, to opt-out of the sale of your personal information, click “Do Not Sell My Personal Information” at the bottom of our home page to submit your request.

Please note, if you ask us to delete or stop selling your data, it may impact your experience with us, and you may not be able to participate in certain programs or membership services which require the usage of your personal information to function. But in no circumstances, we will discriminate against you for exercising your rights.

To exercise your California data protection rights described above, please send your request(s) by one of the following means:

By email: Support@PlayForm.LTD

By phone number: +359876668093

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

Your data protection rights, described above, are covered by the CCPA, short for the California Consumer Privacy Act. To find out more, visit the official California Legislative Information website. The CCPA took effect on 01/01/2020.

Service Providers

We may employ third party companies and individuals to facilitate our Service (“Service Providers”), provide Service on our behalf, perform Service-related services or assist us in analyzing how our Service is used.

These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

Payments

We may provide paid products and/or services within Service. In that case, we use third-party services for payment processing (e.g., payment processors).

We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.

The payment processors we work with are:

PayPal or Braintree:

Their Privacy Policy can be viewed at https://www.paypal.com/webapps/mpp/ua/privacy-full

Apple Store In-App Payments:

Their Privacy Policy can be viewed at: https://www.apple.com/legal/privacy/en-ww/ / https://support.apple.com/en-us/HT203027

Google Play In-App Payments:

Their Privacy Policy can be viewed at: https://policies.google.com/privacy?hl=en&gl=us / https://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

Stripe:

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

Our Service may contain links to other sites that are not operated by us. If you click a third-party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.

Children’s Privacy

Our Services are not intended for use by children under the age of 18 (“Child” or “Children”).

We do not knowingly collect personally identifiable information from Children under 18. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.

Changes to This Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update “effective date” at the top of this Privacy Policy.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, please contact us:

By email: Support@PlayForm.LTD.

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file diff --git a/Target/PRIVACY-POLICY/index.html b/Target/PRIVACY-POLICY/index.html index d260030f..d23e3791 100644 --- a/Target/PRIVACY-POLICY/index.html +++ b/Target/PRIVACY-POLICY/index.html @@ -1 +1 @@ -Privacy Policy

PRIVACY POLICY

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd..

PlayForm ltd. (“us”, “we”, or “our”) operates https://PlayForm.LTD and PlayForm mobile application (hereinafter referred to as “Service”).

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm mobile application, and explains how we collect, safeguard and disclose information that results from your use of our Service.

We use your data to provide and improve Service. By using Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.

Our Terms and Conditions (“Terms”) govern all use of our Service and together with the Privacy Policy constitutes your agreement with us (“agreement”).

Definitions

SERVICE means the https://PlayForm.LTD website and PlayForm mobile application operated by PlayForm ltd.

PERSONAL DATA means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).

USAGE DATA is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).

DATA CONTROLLER means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.

DATA SUBJECT is any living individual who is the subject of Personal Data.

THE USER is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.

Information Collection and Use

We collect several different types of information for various purposes to provide and improve our Service to you.

Types of Data Collected

Personal Data

While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you (“Personal Data”). Personally identifiable information may include, but is not limited to:

a. Email address

b. First name and last name

c. Phone number

d. Address, State, Province, ZIP/Postal code, City

e. Usage Data

We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at Support@PlayForm.LTD.

Usage Data

We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device (“Usage Data”).

This Usage Data may include information such as your computer’s Internet Protocol address (e.g., IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.

Tracking Data

We use tracking technologies to track the activity on our Service and we hold certain information.

Tracking technologies are used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.

PlayForm’s websites and online services may use “cookies.” Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.

Use of Data

PlayForm ltd. Uses the collected data for various purposes:

a. to provide and maintain our Service;

b. to notify you about changes to our Service;

c. to allow you to participate in interactive features of our Service when you choose to do so;

d. to provide customer support;

e. to gather analysis or valuable information so that we can improve our Service;

f. to monitor the usage of our Service;

g. to detect, prevent and address technical issues;

h. to fulfill any other purpose for which you provide it;

i. to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;

j. to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;

k. to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;

l. in any other way we may describe when you provide the information;

m. for any other purpose with your consent.

Retention of Data

We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.

Transfer of Data

Your information, including Personal Data, may be transferred to – and maintained on – computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those of your jurisdiction.

If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.

Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.

PlayForm ltd. Will take all the steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.

Disclosure of Data

We may disclose personal information that we collect, or you provide:

a. Disclosure for Law Enforcement.

Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities.

b. Business Transaction.

If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.

c. Other cases. We may disclose your information also:

i. to our subsidiaries and affiliates;

ii. to fulfill the purpose for which you provide it;

iii. for the purpose of including your company’s logo on our website;

iv. for any other purpose disclosed by us when you provide the information;

v. with your consent in any other cases;

vi. if we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.

Security of Data

The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR. – See more at https://eur-lex.europa.eu/eli/reg/2016/679/oj

We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.

If you wish to be informed what Personal Data, we hold about you and if you want it to be removed from our systems, please email us at Support@PlayForm.LTD.

In certain circumstances, you have the following data protection rights:

a. the right to access, update or to delete the information we have on you;

b. the right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete;

c. the right to object. You have the right to object to our processing of your Personal Data;

d. the right of restriction. You have the right to request that we restrict the processing of your personal information;

e. the right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;

f. the right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;

Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.

You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law’s reach stretches well beyond California to require a person or company in the United States (and conceivable the world) that operates websites collecting personally identifiable information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals with whom it is being shared, and to comply with this policy. – See more at: https://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

According to CalOPPA we agree to the following:

a. users can visit our site anonymously;

b. our Privacy Policy link includes the word “Privacy”, and can easily be found on the page specified above on the home page of our website;

c. users will be notified of any privacy policy changes on our Privacy Policy Page;

d. users are able to change their personal information by emailing us at Support@PlayForm.LTD.

Our Policy on “Do Not Track” Signals:

We honor Do Not Track signals and do not track, or use advertising when a Do Not Track browser mechanism is in place. Do Not Track is a preference you can set in your web browser to inform websites that you do not want to be tracked.

You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

If you are a California resident, you are entitled to learn what data we collect about you, ask to delete your data and not to sell (share) it. To exercise your data protection rights, you can make certain requests and ask us:

a. What personal information we have about you. If you make this request, we will return to you:

i. The categories of personal information we have collected about you.

ii. The categories of sources from which we collect your personal information.

iii. The business or commercial purpose for collecting or selling your personal information.

iv. The categories of third parties with whom we share personal information.

v. The specific pieces of personal information we have collected about you.

vi. A list of categories of personal information that we have sold, along with the category of any other company we sold it to. If we have not sold your personal information, we will inform you of that fact.

vii. A list of categories of personal information that we have disclosed for a business purpose, along with the category of any other company we shared it with.

Please note, you are entitled to ask us to provide you with this information up to two times in a rolling twelve-month period. When you make this request, the information provided may be limited to the personal information we collected about you in the previous 12 months.

b. To delete your personal information. If you make this request, we will delete the personal information we hold about you as of the date of your request from our records and direct any service providers to do the same. In some cases, deletion may be accomplished through de-identification of the information. If you choose to delete your personal information, you may not be able to use certain functions that require your personal information to operate.

c. To stop selling your personal information. If you submit a request to stop selling your personal information, we will stop selling it. If you are a California resident, to opt-out of the sale of your personal information, click “Do Not Sell My Personal Information” at the bottom of our home page to submit your request.

Please note, if you ask us to delete or stop selling your data, it may impact your experience with us, and you may not be able to participate in certain programs or membership services which require the usage of your personal information to function. But in no circumstances, we will discriminate against you for exercising your rights.

To exercise your California data protection rights described above, please send your request(s) by one of the following means:

By email: Support@PlayForm.LTD

By phone number: +359876668093

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

Your data protection rights, described above, are covered by the CCPA, short for the California Consumer Privacy Act. To find out more, visit the official California Legislative Information website. The CCPA took effect on 01/01/2020.

Service Providers

We may employ third party companies and individuals to facilitate our Service (“Service Providers”), provide Service on our behalf, perform Service-related services or assist us in analyzing how our Service is used.

These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

Payments

We may provide paid products and/or services within Service. In that case, we use third-party services for payment processing (e.g., payment processors).

We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.

The payment processors we work with are:

PayPal or Braintree:

Their Privacy Policy can be viewed at https://www.paypal.com/webapps/mpp/ua/privacy-full

Apple Store In-App Payments:

Their Privacy Policy can be viewed at: https://www.apple.com/legal/privacy/en-ww/ / https://support.apple.com/en-us/HT203027

Google Play In-App Payments:

Their Privacy Policy can be viewed at: https://policies.google.com/privacy?hl=en&gl=us / https://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

Stripe:

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

Our Service may contain links to other sites that are not operated by us. If you click a third-party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.

Children’s Privacy

Our Services are not intended for use by children under the age of 18 (“Child” or “Children”).

We do not knowingly collect personally identifiable information from Children under 18. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.

Changes to This Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update “effective date” at the top of this Privacy Policy.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, please contact us:

By email: Support@PlayForm.LTD.

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file +Privacy Policy

PRIVACY POLICY

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd..

PlayForm ltd. (“us”, “we”, or “our”) operates https://PlayForm.LTD and PlayForm mobile application (hereinafter referred to as “Service”).

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm mobile application, and explains how we collect, safeguard and disclose information that results from your use of our Service.

We use your data to provide and improve Service. By using Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.

Our Terms and Conditions (“Terms”) govern all use of our Service and together with the Privacy Policy constitutes your agreement with us (“agreement”).

Definitions

SERVICE means the https://PlayForm.LTD website and PlayForm mobile application operated by PlayForm ltd.

PERSONAL DATA means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).

USAGE DATA is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).

DATA CONTROLLER means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.

DATA SUBJECT is any living individual who is the subject of Personal Data.

THE USER is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.

Information Collection and Use

We collect several different types of information for various purposes to provide and improve our Service to you.

Types of Data Collected

Personal Data

While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you (“Personal Data”). Personally identifiable information may include, but is not limited to:

a. Email address

b. First name and last name

c. Phone number

d. Address, State, Province, ZIP/Postal code, City

e. Usage Data

We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at Support@PlayForm.LTD.

Usage Data

We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device (“Usage Data”).

This Usage Data may include information such as your computer’s Internet Protocol address (e.g., IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.

Tracking Data

We use tracking technologies to track the activity on our Service and we hold certain information.

Tracking technologies are used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.

PlayForm’s websites and online services may use “cookies.” Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.

Use of Data

PlayForm ltd. Uses the collected data for various purposes:

a. to provide and maintain our Service;

b. to notify you about changes to our Service;

c. to allow you to participate in interactive features of our Service when you choose to do so;

d. to provide customer support;

e. to gather analysis or valuable information so that we can improve our Service;

f. to monitor the usage of our Service;

g. to detect, prevent and address technical issues;

h. to fulfill any other purpose for which you provide it;

i. to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;

j. to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;

k. to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;

l. in any other way we may describe when you provide the information;

m. for any other purpose with your consent.

Retention of Data

We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.

Transfer of Data

Your information, including Personal Data, may be transferred to – and maintained on – computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those of your jurisdiction.

If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.

Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.

PlayForm ltd. Will take all the steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.

Disclosure of Data

We may disclose personal information that we collect, or you provide:

a. Disclosure for Law Enforcement.

Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities.

b. Business Transaction.

If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.

c. Other cases. We may disclose your information also:

i. to our subsidiaries and affiliates;

ii. to fulfill the purpose for which you provide it;

iii. for the purpose of including your company’s logo on our website;

iv. for any other purpose disclosed by us when you provide the information;

v. with your consent in any other cases;

vi. if we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.

Security of Data

The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR. – See more at https://eur-lex.europa.eu/eli/reg/2016/679/oj

We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.

If you wish to be informed what Personal Data, we hold about you and if you want it to be removed from our systems, please email us at Support@PlayForm.LTD.

In certain circumstances, you have the following data protection rights:

a. the right to access, update or to delete the information we have on you;

b. the right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete;

c. the right to object. You have the right to object to our processing of your Personal Data;

d. the right of restriction. You have the right to request that we restrict the processing of your personal information;

e. the right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;

f. the right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;

Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.

You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law’s reach stretches well beyond California to require a person or company in the United States (and conceivable the world) that operates websites collecting personally identifiable information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals with whom it is being shared, and to comply with this policy. – See more at: https://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

According to CalOPPA we agree to the following:

a. users can visit our site anonymously;

b. our Privacy Policy link includes the word “Privacy”, and can easily be found on the page specified above on the home page of our website;

c. users will be notified of any privacy policy changes on our Privacy Policy Page;

d. users are able to change their personal information by emailing us at Support@PlayForm.LTD.

Our Policy on “Do Not Track” Signals:

We honor Do Not Track signals and do not track, or use advertising when a Do Not Track browser mechanism is in place. Do Not Track is a preference you can set in your web browser to inform websites that you do not want to be tracked.

You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

If you are a California resident, you are entitled to learn what data we collect about you, ask to delete your data and not to sell (share) it. To exercise your data protection rights, you can make certain requests and ask us:

a. What personal information we have about you. If you make this request, we will return to you:

i. The categories of personal information we have collected about you.

ii. The categories of sources from which we collect your personal information.

iii. The business or commercial purpose for collecting or selling your personal information.

iv. The categories of third parties with whom we share personal information.

v. The specific pieces of personal information we have collected about you.

vi. A list of categories of personal information that we have sold, along with the category of any other company we sold it to. If we have not sold your personal information, we will inform you of that fact.

vii. A list of categories of personal information that we have disclosed for a business purpose, along with the category of any other company we shared it with.

Please note, you are entitled to ask us to provide you with this information up to two times in a rolling twelve-month period. When you make this request, the information provided may be limited to the personal information we collected about you in the previous 12 months.

b. To delete your personal information. If you make this request, we will delete the personal information we hold about you as of the date of your request from our records and direct any service providers to do the same. In some cases, deletion may be accomplished through de-identification of the information. If you choose to delete your personal information, you may not be able to use certain functions that require your personal information to operate.

c. To stop selling your personal information. If you submit a request to stop selling your personal information, we will stop selling it. If you are a California resident, to opt-out of the sale of your personal information, click “Do Not Sell My Personal Information” at the bottom of our home page to submit your request.

Please note, if you ask us to delete or stop selling your data, it may impact your experience with us, and you may not be able to participate in certain programs or membership services which require the usage of your personal information to function. But in no circumstances, we will discriminate against you for exercising your rights.

To exercise your California data protection rights described above, please send your request(s) by one of the following means:

By email: Support@PlayForm.LTD

By phone number: +359876668093

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

Your data protection rights, described above, are covered by the CCPA, short for the California Consumer Privacy Act. To find out more, visit the official California Legislative Information website. The CCPA took effect on 01/01/2020.

Service Providers

We may employ third party companies and individuals to facilitate our Service (“Service Providers”), provide Service on our behalf, perform Service-related services or assist us in analyzing how our Service is used.

These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

Payments

We may provide paid products and/or services within Service. In that case, we use third-party services for payment processing (e.g., payment processors).

We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.

The payment processors we work with are:

PayPal or Braintree:

Their Privacy Policy can be viewed at https://www.paypal.com/webapps/mpp/ua/privacy-full

Apple Store In-App Payments:

Their Privacy Policy can be viewed at: https://www.apple.com/legal/privacy/en-ww/ / https://support.apple.com/en-us/HT203027

Google Play In-App Payments:

Their Privacy Policy can be viewed at: https://policies.google.com/privacy?hl=en&gl=us / https://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

Stripe:

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

Our Service may contain links to other sites that are not operated by us. If you click a third-party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.

Children’s Privacy

Our Services are not intended for use by children under the age of 18 (“Child” or “Children”).

We do not knowingly collect personally identifiable information from Children under 18. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.

Changes to This Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update “effective date” at the top of this Privacy Policy.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, please contact us:

By email: Support@PlayForm.LTD.

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file diff --git a/Target/TERMS OF SERVICE/index.html b/Target/TERMS OF SERVICE/index.html index fb10b799..7962cc81 100644 --- a/Target/TERMS OF SERVICE/index.html +++ b/Target/TERMS OF SERVICE/index.html @@ -1 +1 @@ -Terms of Service

TERMS OF SERVICE

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you have just clicked our Terms of Service, please pause, grab a cup of coffee and carefully read the following pages. It will take you approximately 20 minutes.

These Terms of Service (“Terms”, “Terms of Service”) govern your use of our web pages located at https://PlayForm.LTD and our mobile application PlayForm (together or individually “Service”) operated by PlayForm ltd.

Our Privacy Policy also governs your use of our Service and explains how we collect, safeguard and disclose information that results from your use of our web pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

Your agreement with us includes these Terms and our Privacy Policy (“Agreements”). You acknowledge that you have read and understood Agreements, and agree to be bound of them.

If you do not agree with (or cannot comply with) Agreements, then you may not use the Service, but please let us know by emailing at Support@PlayForm.LTD so we can try to find a solution. These Terms apply to all visitors, users and others who wish to access or use Service.

Thank you for being responsible.

Communications

By creating an Account on our Service, you agree to subscribe to newsletters, marketing or promotional materials and other information we may send. However, you may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at.

Purchases

If you wish to purchase any product or service made available through Service (“Purchase”), you may be asked to supply certain information relevant to your Purchase including, without limitation, your credit card number, the expiration date of your credit card, your billing address, and your shipping information.

You represent and warrant that:

a) you have the legal right to use any credit card(s) or other payment method(s) in connection with any Purchase; and that

b) the information you supply to us is true, correct and complete.

We may employ the use of third-party services for the purpose of facilitating payment and the completion of Purchases. By submitting your information, you grant us the right to provide the information to these third parties subject to our Privacy Policy.

We reserve the right to refuse or cancel your order at any time for reasons including but not limited to: product or service availability, errors in the description or price of the product or service, error in your order or other reasons.

We reserve the right to refuse or cancel your order if fraud or an unauthorized or illegal transaction is suspected.

Contests, Sweepstakes and Promotions

Any contests, sweepstakes or other promotions (collectively, “Promotions”) made available through Service may be governed by rules that are separate from these Terms of Service. If you participate in any Promotions, please review the applicable rules as well as our Privacy Policy. If the rules for a Promotion conflict with these Terms of Service, Promotion rules will apply.

Subscriptions

Some parts of Service are billed on a subscription basis (“Subscription(s)”). You will be billed in advance on a recurring and periodic basis (“Billing Cycle”). Billing cycles are set either on a monthly or annual basis, depending on the type of subscription plan you select when purchasing a Subscription.

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or PlayForm ltd. cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting PlayForm ltd. customer support team.

A valid payment method, including credit card or PayPal, is required to process the payment for your subscription. You shall provide PlayForm ltd. with accurate and complete billing information including full name, address, state, zip code, telephone number, and a valid payment method information. By submitting such payment information, you automatically authorize PlayForm ltd. to charge all Subscription fees incurred through your account to any such payment instruments.

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.

Free Trial

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“Free Trial”).

You may be required to enter your billing information in order to sign up for Free Trial.

If you do enter your billing information when signing up for Free Trial, you will not be charged by PlayForm ltd. until Free Trial has expired. On the last day of Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.

At any time and without notice, PlayForm ltd. reserves the right to

a) modify Terms of Service of Free Trial offer, or

b) cancel such Free Trial offer.

Fee Changes

PlayForm ltd., in its sole discretion and at any time, may modify Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.

PlayForm ltd. will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.

Your continued use of Service after Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.

Refunds

We issue refunds for Contracts within fourteen (14) days of the original purchase of the Contract.

Content

Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“Content”). You are responsible for Content that you post on or through Service, including its legality, reliability, and appropriateness.

By posting Content on or through Service, You represent and warrant that:

a) Content is yours (you own it) and/or you have the right to use it and the right to grant us the rights and license as provided in these Terms, and

b) that the posting of your Content on or through Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person or entity. We reserve the right to terminate the account of anyone found to be infringing on a copyright.

You retain any and all of your rights to any Content you submit, post or display on or through Service and you are responsible for protecting those rights. We take no responsibility and assume no liability for Content you or any third-party posts on or through Service. However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms.

PlayForm ltd. has the right but not the obligation to monitor and edit all Content provided by users.

In addition, Content found on or through this Service are the property of PlayForm ltd. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.

Prohibited Uses

You may use Service only for lawful purposes and in accordance with Terms. You agree not to use Service:

a. In any way that violates any applicable national or international law or regulation.

b. For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content or otherwise.

c. To transmit, or procure the sending of, any advertising or promotional material, including any “junk mail”, “chain letter,” “spam,” or any other similar solicitation.

d. To impersonate or attempt to impersonate Company, a Company employee, another user, or any other person or entity.

e. In any way that infringes upon the rights of others, or in any way is illegal, threatening, fraudulent, or harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.

f. To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of Service, or which, as determined by us, may harm or offend Company or users of Service or expose them to liability.

Additionally, you agree not to:

a. Use Service in any manner that could disable, overburden, damage, or impair Service or interfere with any other party’s use of Service, including their ability to engage in real time activities through Service.

b. Use any robot, spider, or other automatic device, process, or means to access Service for any purpose, including monitoring or copying any of the material on Service.

c. Use any manual process to monitor or copy any of the material on Service or for any other unauthorized purpose without our prior written consent.

d. Use any device, software, or routine that interferes with the proper working of Service.

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material which is malicious or technologically harmful.

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of Service, the server on which Service is stored, or any server, computer, or database connected to Service.

g. Attack Service via a denial-of-service attack or a distributed denial-of-service attack.

h. Take any action that may damage or falsify Company rating.

i. Otherwise attempt to interfere with the proper working of Service.

No Use by Minors

Service is intended only for access and use by individuals at least eighteen (18) years old. By accessing or using any of Company, you warrant and represent that you are at least eighteen (18) years of age and with the full authority, right, and capacity to enter into this agreement and abide by all of the terms and conditions of Terms. If you are not at least eighteen (18) years old, you are prohibited from both the access and usage of Service.

Accounts

When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on Service.

You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.

You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than you, without appropriate authorization. You may not use as a username any name that is offensive, vulgar or obscene.

We reserve the right to refuse service, terminate accounts, remove or edit content, or cancel orders in our sole discretion.

Intellectual Property

Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of PlayForm ltd. and its licensors. Service is protected by copyright, trademark, and other laws of the United States and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of PlayForm ltd.

We respect the intellectual property rights of others. It is our policy to respond to any claim that Content posted on Service infringes on the copyright or other intellectual property rights (“Infringement”) of any person or entity.

If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to dmca@PlayForm.LTD, with the subject line: “Copyright Infringement” and include in your claim a detailed description of the alleged Infringement as detailed below, under “DMCA Notice and Procedure for Copyright Infringement Claims”

You may be held accountable for damages (including costs and attorneys’ fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.

You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):

a. an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright’s interest;

b. a description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work;

c. identification of the URL or other specific location on Service where the material that you claim is infringing is located;

d. your address, telephone number, and email address;

e. a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law;

f. a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner’s behalf.

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

Error Reporting and Feedback

You may provide us either directly at Support@PlayForm.LTD or via third party sites and tools with information and feedback concerning errors, suggestions for improvements, ideas, problems, complaints, and other matters related to our Service (“Feedback”). You acknowledge and agree that:

a) you shall not retain, acquire or assert any intellectual property right or other right, title or interest in or to the Feedback;

b) Company may have development ideas similar to the Feedback;

c) Feedback does not contain confidential information or proprietary information from you or any third party; and

d) Company is not under any obligation of confidentiality with respect to the Feedback. In the event the transfer of the ownership to the Feedback is not possible due to applicable mandatory laws, you grant Company and its affiliates an exclusive, transferable, irrevocable, free-of-charge, sub-licensable, unlimited and perpetual right to use (including copy, modify, create derivative works, publish, distribute and commercialize) Feedback in any manner and for any purpose.

Our Service may contain links to third party web sites or services that are not owned or controlled by PlayForm ltd.

PlayForm ltd. has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third-party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE, DIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY OR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES AVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY THIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

Disclaimer Of Warranty

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS. COMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS INCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR CONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING, NEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT THE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

Limitation Of Liability

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL RELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON APPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM FOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY VIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR REGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE PART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR SERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE, INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

Termination

We may terminate or suspend your account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of Terms.

If you wish to terminate your account, you may simply discontinue using Service.

All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.

Governing Law

These Terms shall be governed and construed in accordance with the laws of Republic of Bulgaria without regard to its conflict of law provisions.

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service and supersede and replace any prior agreements we might have had between us regarding Service.

Changes To Service

We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice. We will not be liable if for any reason all or any part of Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to users, including registered users.

Amendments To Terms

We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.

Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.

Waiver And Severability

No waiver by Company of any term or condition set forth in Terms shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Company to assert a right or provision under Terms shall not constitute a waiver of such right or provision.

If any provision of Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of Terms will continue in full force and effect.

Acknowledgement

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

Contact Us

Please send your feedback, comments, requests for technical support:

By email: Support@PlayForm.LTD

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file +Terms of Service

TERMS OF SERVICE

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you have just clicked our Terms of Service, please pause, grab a cup of coffee and carefully read the following pages. It will take you approximately 20 minutes.

These Terms of Service (“Terms”, “Terms of Service”) govern your use of our web pages located at https://PlayForm.LTD and our mobile application PlayForm (together or individually “Service”) operated by PlayForm ltd.

Our Privacy Policy also governs your use of our Service and explains how we collect, safeguard and disclose information that results from your use of our web pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

Your agreement with us includes these Terms and our Privacy Policy (“Agreements”). You acknowledge that you have read and understood Agreements, and agree to be bound of them.

If you do not agree with (or cannot comply with) Agreements, then you may not use the Service, but please let us know by emailing at Support@PlayForm.LTD so we can try to find a solution. These Terms apply to all visitors, users and others who wish to access or use Service.

Thank you for being responsible.

Communications

By creating an Account on our Service, you agree to subscribe to newsletters, marketing or promotional materials and other information we may send. However, you may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at.

Purchases

If you wish to purchase any product or service made available through Service (“Purchase”), you may be asked to supply certain information relevant to your Purchase including, without limitation, your credit card number, the expiration date of your credit card, your billing address, and your shipping information.

You represent and warrant that:

a) you have the legal right to use any credit card(s) or other payment method(s) in connection with any Purchase; and that

b) the information you supply to us is true, correct and complete.

We may employ the use of third-party services for the purpose of facilitating payment and the completion of Purchases. By submitting your information, you grant us the right to provide the information to these third parties subject to our Privacy Policy.

We reserve the right to refuse or cancel your order at any time for reasons including but not limited to: product or service availability, errors in the description or price of the product or service, error in your order or other reasons.

We reserve the right to refuse or cancel your order if fraud or an unauthorized or illegal transaction is suspected.

Contests, Sweepstakes and Promotions

Any contests, sweepstakes or other promotions (collectively, “Promotions”) made available through Service may be governed by rules that are separate from these Terms of Service. If you participate in any Promotions, please review the applicable rules as well as our Privacy Policy. If the rules for a Promotion conflict with these Terms of Service, Promotion rules will apply.

Subscriptions

Some parts of Service are billed on a subscription basis (“Subscription(s)”). You will be billed in advance on a recurring and periodic basis (“Billing Cycle”). Billing cycles are set either on a monthly or annual basis, depending on the type of subscription plan you select when purchasing a Subscription.

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or PlayForm ltd. cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting PlayForm ltd. customer support team.

A valid payment method, including credit card or PayPal, is required to process the payment for your subscription. You shall provide PlayForm ltd. with accurate and complete billing information including full name, address, state, zip code, telephone number, and a valid payment method information. By submitting such payment information, you automatically authorize PlayForm ltd. to charge all Subscription fees incurred through your account to any such payment instruments.

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.

Free Trial

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“Free Trial”).

You may be required to enter your billing information in order to sign up for Free Trial.

If you do enter your billing information when signing up for Free Trial, you will not be charged by PlayForm ltd. until Free Trial has expired. On the last day of Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.

At any time and without notice, PlayForm ltd. reserves the right to

a) modify Terms of Service of Free Trial offer, or

b) cancel such Free Trial offer.

Fee Changes

PlayForm ltd., in its sole discretion and at any time, may modify Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.

PlayForm ltd. will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.

Your continued use of Service after Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.

Refunds

We issue refunds for Contracts within fourteen (14) days of the original purchase of the Contract.

Content

Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“Content”). You are responsible for Content that you post on or through Service, including its legality, reliability, and appropriateness.

By posting Content on or through Service, You represent and warrant that:

a) Content is yours (you own it) and/or you have the right to use it and the right to grant us the rights and license as provided in these Terms, and

b) that the posting of your Content on or through Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person or entity. We reserve the right to terminate the account of anyone found to be infringing on a copyright.

You retain any and all of your rights to any Content you submit, post or display on or through Service and you are responsible for protecting those rights. We take no responsibility and assume no liability for Content you or any third-party posts on or through Service. However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms.

PlayForm ltd. has the right but not the obligation to monitor and edit all Content provided by users.

In addition, Content found on or through this Service are the property of PlayForm ltd. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.

Prohibited Uses

You may use Service only for lawful purposes and in accordance with Terms. You agree not to use Service:

a. In any way that violates any applicable national or international law or regulation.

b. For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content or otherwise.

c. To transmit, or procure the sending of, any advertising or promotional material, including any “junk mail”, “chain letter,” “spam,” or any other similar solicitation.

d. To impersonate or attempt to impersonate Company, a Company employee, another user, or any other person or entity.

e. In any way that infringes upon the rights of others, or in any way is illegal, threatening, fraudulent, or harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.

f. To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of Service, or which, as determined by us, may harm or offend Company or users of Service or expose them to liability.

Additionally, you agree not to:

a. Use Service in any manner that could disable, overburden, damage, or impair Service or interfere with any other party’s use of Service, including their ability to engage in real time activities through Service.

b. Use any robot, spider, or other automatic device, process, or means to access Service for any purpose, including monitoring or copying any of the material on Service.

c. Use any manual process to monitor or copy any of the material on Service or for any other unauthorized purpose without our prior written consent.

d. Use any device, software, or routine that interferes with the proper working of Service.

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material which is malicious or technologically harmful.

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of Service, the server on which Service is stored, or any server, computer, or database connected to Service.

g. Attack Service via a denial-of-service attack or a distributed denial-of-service attack.

h. Take any action that may damage or falsify Company rating.

i. Otherwise attempt to interfere with the proper working of Service.

No Use by Minors

Service is intended only for access and use by individuals at least eighteen (18) years old. By accessing or using any of Company, you warrant and represent that you are at least eighteen (18) years of age and with the full authority, right, and capacity to enter into this agreement and abide by all of the terms and conditions of Terms. If you are not at least eighteen (18) years old, you are prohibited from both the access and usage of Service.

Accounts

When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on Service.

You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.

You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than you, without appropriate authorization. You may not use as a username any name that is offensive, vulgar or obscene.

We reserve the right to refuse service, terminate accounts, remove or edit content, or cancel orders in our sole discretion.

Intellectual Property

Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of PlayForm ltd. and its licensors. Service is protected by copyright, trademark, and other laws of the United States and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of PlayForm ltd.

We respect the intellectual property rights of others. It is our policy to respond to any claim that Content posted on Service infringes on the copyright or other intellectual property rights (“Infringement”) of any person or entity.

If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to dmca@PlayForm.LTD, with the subject line: “Copyright Infringement” and include in your claim a detailed description of the alleged Infringement as detailed below, under “DMCA Notice and Procedure for Copyright Infringement Claims”

You may be held accountable for damages (including costs and attorneys’ fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.

You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):

a. an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright’s interest;

b. a description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work;

c. identification of the URL or other specific location on Service where the material that you claim is infringing is located;

d. your address, telephone number, and email address;

e. a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law;

f. a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner’s behalf.

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

Error Reporting and Feedback

You may provide us either directly at Support@PlayForm.LTD or via third party sites and tools with information and feedback concerning errors, suggestions for improvements, ideas, problems, complaints, and other matters related to our Service (“Feedback”). You acknowledge and agree that:

a) you shall not retain, acquire or assert any intellectual property right or other right, title or interest in or to the Feedback;

b) Company may have development ideas similar to the Feedback;

c) Feedback does not contain confidential information or proprietary information from you or any third party; and

d) Company is not under any obligation of confidentiality with respect to the Feedback. In the event the transfer of the ownership to the Feedback is not possible due to applicable mandatory laws, you grant Company and its affiliates an exclusive, transferable, irrevocable, free-of-charge, sub-licensable, unlimited and perpetual right to use (including copy, modify, create derivative works, publish, distribute and commercialize) Feedback in any manner and for any purpose.

Our Service may contain links to third party web sites or services that are not owned or controlled by PlayForm ltd.

PlayForm ltd. has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third-party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE, DIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY OR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES AVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY THIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

Disclaimer Of Warranty

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS. COMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS INCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR CONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING, NEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT THE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

Limitation Of Liability

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL RELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON APPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM FOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY VIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR REGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE PART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR SERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE, INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

Termination

We may terminate or suspend your account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of Terms.

If you wish to terminate your account, you may simply discontinue using Service.

All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.

Governing Law

These Terms shall be governed and construed in accordance with the laws of Republic of Bulgaria without regard to its conflict of law provisions.

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service and supersede and replace any prior agreements we might have had between us regarding Service.

Changes To Service

We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice. We will not be liable if for any reason all or any part of Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to users, including registered users.

Amendments To Terms

We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.

Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.

Waiver And Severability

No waiver by Company of any term or condition set forth in Terms shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Company to assert a right or provision under Terms shall not constitute a waiver of such right or provision.

If any provision of Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of Terms will continue in full force and effect.

Acknowledgement

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

Contact Us

Please send your feedback, comments, requests for technical support:

By email: Support@PlayForm.LTD

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file diff --git a/Target/TERMS-OF-SERVICE/index.html b/Target/TERMS-OF-SERVICE/index.html index fb10b799..7962cc81 100644 --- a/Target/TERMS-OF-SERVICE/index.html +++ b/Target/TERMS-OF-SERVICE/index.html @@ -1 +1 @@ -Terms of Service

TERMS OF SERVICE

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you have just clicked our Terms of Service, please pause, grab a cup of coffee and carefully read the following pages. It will take you approximately 20 minutes.

These Terms of Service (“Terms”, “Terms of Service”) govern your use of our web pages located at https://PlayForm.LTD and our mobile application PlayForm (together or individually “Service”) operated by PlayForm ltd.

Our Privacy Policy also governs your use of our Service and explains how we collect, safeguard and disclose information that results from your use of our web pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

Your agreement with us includes these Terms and our Privacy Policy (“Agreements”). You acknowledge that you have read and understood Agreements, and agree to be bound of them.

If you do not agree with (or cannot comply with) Agreements, then you may not use the Service, but please let us know by emailing at Support@PlayForm.LTD so we can try to find a solution. These Terms apply to all visitors, users and others who wish to access or use Service.

Thank you for being responsible.

Communications

By creating an Account on our Service, you agree to subscribe to newsletters, marketing or promotional materials and other information we may send. However, you may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at.

Purchases

If you wish to purchase any product or service made available through Service (“Purchase”), you may be asked to supply certain information relevant to your Purchase including, without limitation, your credit card number, the expiration date of your credit card, your billing address, and your shipping information.

You represent and warrant that:

a) you have the legal right to use any credit card(s) or other payment method(s) in connection with any Purchase; and that

b) the information you supply to us is true, correct and complete.

We may employ the use of third-party services for the purpose of facilitating payment and the completion of Purchases. By submitting your information, you grant us the right to provide the information to these third parties subject to our Privacy Policy.

We reserve the right to refuse or cancel your order at any time for reasons including but not limited to: product or service availability, errors in the description or price of the product or service, error in your order or other reasons.

We reserve the right to refuse or cancel your order if fraud or an unauthorized or illegal transaction is suspected.

Contests, Sweepstakes and Promotions

Any contests, sweepstakes or other promotions (collectively, “Promotions”) made available through Service may be governed by rules that are separate from these Terms of Service. If you participate in any Promotions, please review the applicable rules as well as our Privacy Policy. If the rules for a Promotion conflict with these Terms of Service, Promotion rules will apply.

Subscriptions

Some parts of Service are billed on a subscription basis (“Subscription(s)”). You will be billed in advance on a recurring and periodic basis (“Billing Cycle”). Billing cycles are set either on a monthly or annual basis, depending on the type of subscription plan you select when purchasing a Subscription.

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or PlayForm ltd. cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting PlayForm ltd. customer support team.

A valid payment method, including credit card or PayPal, is required to process the payment for your subscription. You shall provide PlayForm ltd. with accurate and complete billing information including full name, address, state, zip code, telephone number, and a valid payment method information. By submitting such payment information, you automatically authorize PlayForm ltd. to charge all Subscription fees incurred through your account to any such payment instruments.

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.

Free Trial

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“Free Trial”).

You may be required to enter your billing information in order to sign up for Free Trial.

If you do enter your billing information when signing up for Free Trial, you will not be charged by PlayForm ltd. until Free Trial has expired. On the last day of Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.

At any time and without notice, PlayForm ltd. reserves the right to

a) modify Terms of Service of Free Trial offer, or

b) cancel such Free Trial offer.

Fee Changes

PlayForm ltd., in its sole discretion and at any time, may modify Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.

PlayForm ltd. will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.

Your continued use of Service after Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.

Refunds

We issue refunds for Contracts within fourteen (14) days of the original purchase of the Contract.

Content

Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“Content”). You are responsible for Content that you post on or through Service, including its legality, reliability, and appropriateness.

By posting Content on or through Service, You represent and warrant that:

a) Content is yours (you own it) and/or you have the right to use it and the right to grant us the rights and license as provided in these Terms, and

b) that the posting of your Content on or through Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person or entity. We reserve the right to terminate the account of anyone found to be infringing on a copyright.

You retain any and all of your rights to any Content you submit, post or display on or through Service and you are responsible for protecting those rights. We take no responsibility and assume no liability for Content you or any third-party posts on or through Service. However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms.

PlayForm ltd. has the right but not the obligation to monitor and edit all Content provided by users.

In addition, Content found on or through this Service are the property of PlayForm ltd. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.

Prohibited Uses

You may use Service only for lawful purposes and in accordance with Terms. You agree not to use Service:

a. In any way that violates any applicable national or international law or regulation.

b. For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content or otherwise.

c. To transmit, or procure the sending of, any advertising or promotional material, including any “junk mail”, “chain letter,” “spam,” or any other similar solicitation.

d. To impersonate or attempt to impersonate Company, a Company employee, another user, or any other person or entity.

e. In any way that infringes upon the rights of others, or in any way is illegal, threatening, fraudulent, or harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.

f. To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of Service, or which, as determined by us, may harm or offend Company or users of Service or expose them to liability.

Additionally, you agree not to:

a. Use Service in any manner that could disable, overburden, damage, or impair Service or interfere with any other party’s use of Service, including their ability to engage in real time activities through Service.

b. Use any robot, spider, or other automatic device, process, or means to access Service for any purpose, including monitoring or copying any of the material on Service.

c. Use any manual process to monitor or copy any of the material on Service or for any other unauthorized purpose without our prior written consent.

d. Use any device, software, or routine that interferes with the proper working of Service.

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material which is malicious or technologically harmful.

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of Service, the server on which Service is stored, or any server, computer, or database connected to Service.

g. Attack Service via a denial-of-service attack or a distributed denial-of-service attack.

h. Take any action that may damage or falsify Company rating.

i. Otherwise attempt to interfere with the proper working of Service.

No Use by Minors

Service is intended only for access and use by individuals at least eighteen (18) years old. By accessing or using any of Company, you warrant and represent that you are at least eighteen (18) years of age and with the full authority, right, and capacity to enter into this agreement and abide by all of the terms and conditions of Terms. If you are not at least eighteen (18) years old, you are prohibited from both the access and usage of Service.

Accounts

When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on Service.

You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.

You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than you, without appropriate authorization. You may not use as a username any name that is offensive, vulgar or obscene.

We reserve the right to refuse service, terminate accounts, remove or edit content, or cancel orders in our sole discretion.

Intellectual Property

Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of PlayForm ltd. and its licensors. Service is protected by copyright, trademark, and other laws of the United States and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of PlayForm ltd.

We respect the intellectual property rights of others. It is our policy to respond to any claim that Content posted on Service infringes on the copyright or other intellectual property rights (“Infringement”) of any person or entity.

If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to dmca@PlayForm.LTD, with the subject line: “Copyright Infringement” and include in your claim a detailed description of the alleged Infringement as detailed below, under “DMCA Notice and Procedure for Copyright Infringement Claims”

You may be held accountable for damages (including costs and attorneys’ fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.

You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):

a. an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright’s interest;

b. a description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work;

c. identification of the URL or other specific location on Service where the material that you claim is infringing is located;

d. your address, telephone number, and email address;

e. a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law;

f. a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner’s behalf.

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

Error Reporting and Feedback

You may provide us either directly at Support@PlayForm.LTD or via third party sites and tools with information and feedback concerning errors, suggestions for improvements, ideas, problems, complaints, and other matters related to our Service (“Feedback”). You acknowledge and agree that:

a) you shall not retain, acquire or assert any intellectual property right or other right, title or interest in or to the Feedback;

b) Company may have development ideas similar to the Feedback;

c) Feedback does not contain confidential information or proprietary information from you or any third party; and

d) Company is not under any obligation of confidentiality with respect to the Feedback. In the event the transfer of the ownership to the Feedback is not possible due to applicable mandatory laws, you grant Company and its affiliates an exclusive, transferable, irrevocable, free-of-charge, sub-licensable, unlimited and perpetual right to use (including copy, modify, create derivative works, publish, distribute and commercialize) Feedback in any manner and for any purpose.

Our Service may contain links to third party web sites or services that are not owned or controlled by PlayForm ltd.

PlayForm ltd. has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third-party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE, DIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY OR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES AVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY THIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

Disclaimer Of Warranty

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS. COMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS INCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR CONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING, NEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT THE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

Limitation Of Liability

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL RELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON APPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM FOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY VIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR REGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE PART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR SERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE, INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

Termination

We may terminate or suspend your account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of Terms.

If you wish to terminate your account, you may simply discontinue using Service.

All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.

Governing Law

These Terms shall be governed and construed in accordance with the laws of Republic of Bulgaria without regard to its conflict of law provisions.

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service and supersede and replace any prior agreements we might have had between us regarding Service.

Changes To Service

We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice. We will not be liable if for any reason all or any part of Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to users, including registered users.

Amendments To Terms

We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.

Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.

Waiver And Severability

No waiver by Company of any term or condition set forth in Terms shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Company to assert a right or provision under Terms shall not constitute a waiver of such right or provision.

If any provision of Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of Terms will continue in full force and effect.

Acknowledgement

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

Contact Us

Please send your feedback, comments, requests for technical support:

By email: Support@PlayForm.LTD

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file +Terms of Service

TERMS OF SERVICE

Effective date: 01.12.2016 / January 12th 2016
Last updated: 02.11.2022 / February 11th 2022

Introduction

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you have just clicked our Terms of Service, please pause, grab a cup of coffee and carefully read the following pages. It will take you approximately 20 minutes.

These Terms of Service (“Terms”, “Terms of Service”) govern your use of our web pages located at https://PlayForm.LTD and our mobile application PlayForm (together or individually “Service”) operated by PlayForm ltd.

Our Privacy Policy also governs your use of our Service and explains how we collect, safeguard and disclose information that results from your use of our web pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

Your agreement with us includes these Terms and our Privacy Policy (“Agreements”). You acknowledge that you have read and understood Agreements, and agree to be bound of them.

If you do not agree with (or cannot comply with) Agreements, then you may not use the Service, but please let us know by emailing at Support@PlayForm.LTD so we can try to find a solution. These Terms apply to all visitors, users and others who wish to access or use Service.

Thank you for being responsible.

Communications

By creating an Account on our Service, you agree to subscribe to newsletters, marketing or promotional materials and other information we may send. However, you may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing at.

Purchases

If you wish to purchase any product or service made available through Service (“Purchase”), you may be asked to supply certain information relevant to your Purchase including, without limitation, your credit card number, the expiration date of your credit card, your billing address, and your shipping information.

You represent and warrant that:

a) you have the legal right to use any credit card(s) or other payment method(s) in connection with any Purchase; and that

b) the information you supply to us is true, correct and complete.

We may employ the use of third-party services for the purpose of facilitating payment and the completion of Purchases. By submitting your information, you grant us the right to provide the information to these third parties subject to our Privacy Policy.

We reserve the right to refuse or cancel your order at any time for reasons including but not limited to: product or service availability, errors in the description or price of the product or service, error in your order or other reasons.

We reserve the right to refuse or cancel your order if fraud or an unauthorized or illegal transaction is suspected.

Contests, Sweepstakes and Promotions

Any contests, sweepstakes or other promotions (collectively, “Promotions”) made available through Service may be governed by rules that are separate from these Terms of Service. If you participate in any Promotions, please review the applicable rules as well as our Privacy Policy. If the rules for a Promotion conflict with these Terms of Service, Promotion rules will apply.

Subscriptions

Some parts of Service are billed on a subscription basis (“Subscription(s)”). You will be billed in advance on a recurring and periodic basis (“Billing Cycle”). Billing cycles are set either on a monthly or annual basis, depending on the type of subscription plan you select when purchasing a Subscription.

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or PlayForm ltd. cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting PlayForm ltd. customer support team.

A valid payment method, including credit card or PayPal, is required to process the payment for your subscription. You shall provide PlayForm ltd. with accurate and complete billing information including full name, address, state, zip code, telephone number, and a valid payment method information. By submitting such payment information, you automatically authorize PlayForm ltd. to charge all Subscription fees incurred through your account to any such payment instruments.

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.

Free Trial

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“Free Trial”).

You may be required to enter your billing information in order to sign up for Free Trial.

If you do enter your billing information when signing up for Free Trial, you will not be charged by PlayForm ltd. until Free Trial has expired. On the last day of Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.

At any time and without notice, PlayForm ltd. reserves the right to

a) modify Terms of Service of Free Trial offer, or

b) cancel such Free Trial offer.

Fee Changes

PlayForm ltd., in its sole discretion and at any time, may modify Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.

PlayForm ltd. will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.

Your continued use of Service after Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.

Refunds

We issue refunds for Contracts within fourteen (14) days of the original purchase of the Contract.

Content

Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“Content”). You are responsible for Content that you post on or through Service, including its legality, reliability, and appropriateness.

By posting Content on or through Service, You represent and warrant that:

a) Content is yours (you own it) and/or you have the right to use it and the right to grant us the rights and license as provided in these Terms, and

b) that the posting of your Content on or through Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person or entity. We reserve the right to terminate the account of anyone found to be infringing on a copyright.

You retain any and all of your rights to any Content you submit, post or display on or through Service and you are responsible for protecting those rights. We take no responsibility and assume no liability for Content you or any third-party posts on or through Service. However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms.

PlayForm ltd. has the right but not the obligation to monitor and edit all Content provided by users.

In addition, Content found on or through this Service are the property of PlayForm ltd. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.

Prohibited Uses

You may use Service only for lawful purposes and in accordance with Terms. You agree not to use Service:

a. In any way that violates any applicable national or international law or regulation.

b. For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content or otherwise.

c. To transmit, or procure the sending of, any advertising or promotional material, including any “junk mail”, “chain letter,” “spam,” or any other similar solicitation.

d. To impersonate or attempt to impersonate Company, a Company employee, another user, or any other person or entity.

e. In any way that infringes upon the rights of others, or in any way is illegal, threatening, fraudulent, or harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.

f. To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of Service, or which, as determined by us, may harm or offend Company or users of Service or expose them to liability.

Additionally, you agree not to:

a. Use Service in any manner that could disable, overburden, damage, or impair Service or interfere with any other party’s use of Service, including their ability to engage in real time activities through Service.

b. Use any robot, spider, or other automatic device, process, or means to access Service for any purpose, including monitoring or copying any of the material on Service.

c. Use any manual process to monitor or copy any of the material on Service or for any other unauthorized purpose without our prior written consent.

d. Use any device, software, or routine that interferes with the proper working of Service.

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material which is malicious or technologically harmful.

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of Service, the server on which Service is stored, or any server, computer, or database connected to Service.

g. Attack Service via a denial-of-service attack or a distributed denial-of-service attack.

h. Take any action that may damage or falsify Company rating.

i. Otherwise attempt to interfere with the proper working of Service.

No Use by Minors

Service is intended only for access and use by individuals at least eighteen (18) years old. By accessing or using any of Company, you warrant and represent that you are at least eighteen (18) years of age and with the full authority, right, and capacity to enter into this agreement and abide by all of the terms and conditions of Terms. If you are not at least eighteen (18) years old, you are prohibited from both the access and usage of Service.

Accounts

When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on Service.

You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.

You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than you, without appropriate authorization. You may not use as a username any name that is offensive, vulgar or obscene.

We reserve the right to refuse service, terminate accounts, remove or edit content, or cancel orders in our sole discretion.

Intellectual Property

Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of PlayForm ltd. and its licensors. Service is protected by copyright, trademark, and other laws of the United States and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of PlayForm ltd.

We respect the intellectual property rights of others. It is our policy to respond to any claim that Content posted on Service infringes on the copyright or other intellectual property rights (“Infringement”) of any person or entity.

If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to dmca@PlayForm.LTD, with the subject line: “Copyright Infringement” and include in your claim a detailed description of the alleged Infringement as detailed below, under “DMCA Notice and Procedure for Copyright Infringement Claims”

You may be held accountable for damages (including costs and attorneys’ fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.

You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):

a. an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright’s interest;

b. a description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work;

c. identification of the URL or other specific location on Service where the material that you claim is infringing is located;

d. your address, telephone number, and email address;

e. a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law;

f. a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner’s behalf.

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

Error Reporting and Feedback

You may provide us either directly at Support@PlayForm.LTD or via third party sites and tools with information and feedback concerning errors, suggestions for improvements, ideas, problems, complaints, and other matters related to our Service (“Feedback”). You acknowledge and agree that:

a) you shall not retain, acquire or assert any intellectual property right or other right, title or interest in or to the Feedback;

b) Company may have development ideas similar to the Feedback;

c) Feedback does not contain confidential information or proprietary information from you or any third party; and

d) Company is not under any obligation of confidentiality with respect to the Feedback. In the event the transfer of the ownership to the Feedback is not possible due to applicable mandatory laws, you grant Company and its affiliates an exclusive, transferable, irrevocable, free-of-charge, sub-licensable, unlimited and perpetual right to use (including copy, modify, create derivative works, publish, distribute and commercialize) Feedback in any manner and for any purpose.

Our Service may contain links to third party web sites or services that are not owned or controlled by PlayForm ltd.

PlayForm ltd. has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third-party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE, DIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY OR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES AVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY THIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

Disclaimer Of Warranty

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS. COMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS INCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR CONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING, NEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT THE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

Limitation Of Liability

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL RELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON APPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM FOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY VIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR REGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE PART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR SERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE, INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

Termination

We may terminate or suspend your account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of Terms.

If you wish to terminate your account, you may simply discontinue using Service.

All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.

Governing Law

These Terms shall be governed and construed in accordance with the laws of Republic of Bulgaria without regard to its conflict of law provisions.

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service and supersede and replace any prior agreements we might have had between us regarding Service.

Changes To Service

We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice. We will not be liable if for any reason all or any part of Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to users, including registered users.

Amendments To Terms

We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.

Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.

Waiver And Severability

No waiver by Company of any term or condition set forth in Terms shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Company to assert a right or provision under Terms shall not constitute a waiver of such right or provision.

If any provision of Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of Terms will continue in full force and effect.

Acknowledgement

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

Contact Us

Please send your feedback, comments, requests for technical support:

By email: Support@PlayForm.LTD

By phone number: +359876668093.

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\ No newline at end of file diff --git a/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js b/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js similarity index 86% rename from Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js rename to Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js index 4cd0f39f..8bac169c 100644 --- a/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js +++ b/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js @@ -1 +1 @@ -import{i as q}from"./index.B1fp56SV.js";const y="data-astro-transition-persist";function B(t){for(const e of document.scripts)for(const n of t.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!e.src&&e.textContent===n.textContent||e.src&&e.type===n.type&&e.src===n.src)){n.dataset.astroExec="";break}}function U(t){const e=document.documentElement,n=[...e.attributes].filter((({name:t})=>(e.removeAttribute(t),t.startsWith("data-astro-"))));[...t.documentElement.attributes,...n].forEach((({name:t,value:n})=>e.setAttribute(t,n)))}function W(t){for(const e of Array.from(document.head.children)){const n=j(e,t);n?n.remove():e.remove()}document.head.append(...t.head.children)}function V(t,e){e.replaceWith(t);for(const n of e.querySelectorAll(`[${y}]`)){const e=n.getAttribute(y),o=t.querySelector(`[${y}="${e}"]`);o&&(o.replaceWith(n),"astro-island"===o.localName&&G(n)&&!z(n,o)&&(n.setAttribute("ssr",""),n.setAttribute("props",o.getAttribute("props"))))}}const K=()=>{const t=document.activeElement;if(t?.closest(`[${y}]`)){if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement){const e=t.selectionStart,n=t.selectionEnd;return()=>E({activeElement:t,start:e,end:n})}return()=>E({activeElement:t})}return()=>E({activeElement:null})},E=({activeElement:t,start:e,end:n})=>{t&&(t.focus(),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&("number"==typeof e&&(t.selectionStart=e),"number"==typeof n&&(t.selectionEnd=n)))},j=(t,e)=>{const n=t.getAttribute(y),o=n&&e.head.querySelector(`[${y}="${n}"]`);if(o)return o;if(t.matches("link[rel=stylesheet]")){const n=t.getAttribute("href");return e.head.querySelector(`link[rel=stylesheet][href="${n}"]`)}return null},G=t=>{const e=t.dataset.astroTransitionPersistProps;return null==e||"false"===e},z=(t,e)=>t.getAttribute("props")===e.getAttribute("props"),J=t=>{B(t),U(t),W(t);const e=K();V(t.body,document.body),e()},Q="astro:before-preparation",Z="astro:after-preparation",tt="astro:before-swap",et="astro:after-swap",nt=t=>document.dispatchEvent(new Event(t));class H extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,e,n,o,r,i,a,s,c,l){super(t,e),this.from=n,this.to=o,this.direction=r,this.navigationType=i,this.sourceElement=a,this.info=s,this.newDocument=c,this.signal=l,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class ot extends H{formData;loader;constructor(t,e,n,o,r,i,a,s,c,l){super(Q,{cancelable:!0},t,e,n,o,r,i,a,s),this.formData=c,this.loader=l.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class rt extends H{direction;viewTransition;swap;constructor(t,e){super(tt,void 0,t.from,t.to,t.direction,t.navigationType,t.sourceElement,t.info,t.newDocument,t.signal),this.direction=t.direction,this.viewTransition=e,this.swap=()=>J(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function it(t,e,n,o,r,i,a,s,c){const l=new ot(t,e,n,o,r,i,window.document,a,s,c);return document.dispatchEvent(l)&&(await l.loader(),l.defaultPrevented||(nt(Z),"traverse"!==l.navigationType&&R({scrollX:scrollX,scrollY:scrollY}))),l}function st(t,e){const n=new rt(t,e);return document.dispatchEvent(n),n.swap(),n}const at=history.pushState.bind(history),T=history.replaceState.bind(history),R=t=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...t},""))},P=!!document.startViewTransition,x=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),O=(t,e)=>t.pathname===e.pathname&&t.search===e.search;let f,b,v;const X=t=>document.dispatchEvent(new Event(t)),Y=()=>X("astro:page-load"),ct=()=>{let t=document.createElement("div");t.setAttribute("aria-live","assertive"),t.setAttribute("aria-atomic","true"),t.className="astro-route-announcer",document.body.append(t),setTimeout((()=>{let e=document.title||document.querySelector("h1")?.textContent||location.pathname;t.textContent=e}),60)},D="data-astro-transition-persist",L="data-astro-transition",S="data-astro-transition-fallback";let k,g=0;async function lt(t,e){try{const n=await fetch(t,e),o=(n.headers.get("content-type")??"").split(";",1)[0].trim();return"text/html"!==o&&"application/xhtml+xml"!==o?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:o}}catch{return null}}function _(){const t=document.querySelector('[name="astro-view-transitions-fallback"]');return t?t.getAttribute("content"):"animate"}function ut(){let t=Promise.resolve();for(const e of document.getElementsByTagName("script")){if(""===e.dataset.astroExec)continue;const n=e.getAttribute("type");if(n&&"module"!==n&&"text/javascript"!==n)continue;const o=document.createElement("script");o.innerHTML=e.innerHTML;for(const n of e.attributes){if("src"===n.name){const e=new Promise((t=>{o.onload=o.onerror=t}));t=t.then((()=>e))}o.setAttribute(n.name,n.value)}o.dataset.astroExec="",e.replaceWith(o)}return t}history.state?(g=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):x()&&(T({index:g,scrollX:scrollX,scrollY:scrollY},""),history.scrollRestoration="manual");const C=(t,e,n,o,r)=>{const i=O(e,t),a=document.title;document.title=o;let s=!1;if(t.href!==location.href&&!r)if("replace"===n.history){const e=history.state;T({...n.state,index:e.index,scrollX:e.scrollX,scrollY:e.scrollY},"",t.href)}else at({...n.state,index:++g,scrollX:0,scrollY:0},"",t.href);if(document.title=a,v=t,i||(scrollTo({left:0,top:0,behavior:"instant"}),s=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(t.hash){history.scrollRestoration="auto";const e=history.state;location.href=t.href,history.state||(T(e,""),i&&window.dispatchEvent(new PopStateEvent("popstate")))}else s||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function dt(t){const e=[];for(const n of t.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${D}="${n.getAttribute(D)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const t=document.createElement("link");t.setAttribute("rel","preload"),t.setAttribute("as","style"),t.setAttribute("href",n.getAttribute("href")),e.push(new Promise((e=>{["load","error"].forEach((n=>t.addEventListener(n,e))),document.head.append(t)})))}return e}async function I(t,e,n,o,r){async function i(t){const e=document.getAnimations();document.documentElement.setAttribute(S,t);const n=document.getAnimations().filter((t=>!e.includes(t)&&!function(t){const e=t.effect;return!!(e&&e instanceof KeyframeEffect&&e.target)&&"infinite"===window.getComputedStyle(e.target,e.pseudoElement).animationIterationCount}(t)));return Promise.allSettled(n.map((t=>t.finished)))}if("animate"===r&&!n.transitionSkipped&&!t.signal.aborted)try{await i("old")}catch{}const a=document.title,s=st(t,n.viewTransition);C(s.to,s.from,e,a,o),X(et),"animate"===r&&(n.transitionSkipped||s.signal.aborted?n.viewTransitionFinished():i("new").finally((()=>n.viewTransitionFinished())))}function ft(){return f?.controller.abort(),f={controller:new AbortController}}async function $(t,e,n,o,r){const i=ft();if(!x()||location.origin!==n.origin)return i===f&&(f=void 0),void(location.href=n.href);const a=r?"traverse":"replace"===o.history?"replace":"push";if("traverse"!==a&&R({scrollX:scrollX,scrollY:scrollY}),O(e,n)&&("back"!==t&&n.hash||"back"===t&&e.hash))return C(n,e,o,document.title,r),void(i===f&&(f=void 0));const s=await it(e,n,t,a,o.sourceElement,o.info,i.controller.signal,o.formData,(async function(t){const e=t.to.href,n={signal:t.signal};if(t.formData){n.method="POST";const e=t.sourceElement instanceof HTMLFormElement?t.sourceElement:t.sourceElement instanceof HTMLElement&&"form"in t.sourceElement?t.sourceElement.form:t.sourceElement?.closest("form");n.body="application/x-www-form-urlencoded"===e?.attributes.getNamedItem("enctype")?.value?new URLSearchParams(t.formData):t.formData}const o=await lt(e,n);if(null===o)return void t.preventDefault();if(o.redirected){const e=new URL(o.redirected);if(e.origin!==t.to.origin)return void t.preventDefault();t.to=e}if(k??=new DOMParser,t.newDocument=k.parseFromString(o.html,o.mediaType),t.newDocument.querySelectorAll("noscript").forEach((t=>t.remove())),!t.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!t.formData)return void t.preventDefault();const r=dt(t.newDocument);r.length&&!t.signal.aborted&&await Promise.all(r)}));if(s.defaultPrevented||s.signal.aborted)return i===f&&(f=void 0),void(s.signal.aborted||(location.href=n.href));const c=await async function(){if(b&&b.viewTransition){try{b.viewTransition.skipTransition()}catch{}try{await b.viewTransition.updateCallbackDone}catch{}}return b={transitionSkipped:!1}}();if(s.signal.aborted)i===f&&(f=void 0);else{if(document.documentElement.setAttribute(L,s.direction),P)c.viewTransition=document.startViewTransition((async()=>await I(s,o,c,r)));else{const t=(async()=>{await Promise.resolve(),await I(s,o,c,r,_())})();c.viewTransition={updateCallbackDone:t,ready:t,finished:new Promise((t=>c.viewTransitionFinished=t)),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(S)}}}c.viewTransition?.updateCallbackDone.finally((async()=>{await ut(),Y(),ct()})),c.viewTransition?.finished.finally((()=>{c.viewTransition=void 0,c===b&&(b=void 0),i===f&&(f=void 0),document.documentElement.removeAttribute(L),document.documentElement.removeAttribute(S)}));try{await(c.viewTransition?.updateCallbackDone)}catch(t){const e=t;console.log("[astro]",e.name,e.message,e.stack)}}}async function N(t,e){await $("forward",v,new URL(t,location.href),e??{})}function mt(t){if(!x()&&t.state)return void location.reload();if(null===t.state)return;const e=history.state,n=e.index,o=n>g?"forward":"back";g=n,$(o,v,new URL(location.href),{},e)}const M=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&R({scrollX:scrollX,scrollY:scrollY})};if(P||"none"!==_())if(v=new URL(location.href),addEventListener("popstate",mt),addEventListener("load",Y),"onscrollend"in window)addEventListener("scrollend",M);else{let t,e,n,o;const r=()=>o!==history.state?.index?(clearInterval(t),void(t=void 0)):e===scrollY&&n===scrollX?(clearInterval(t),t=void 0,void M()):(e=scrollY,void(n=scrollX));addEventListener("scroll",(()=>{void 0===t&&(o=history.state.index,e=scrollY,n=scrollX,t=window.setInterval(r,50))}),{passive:!0})}for(const t of document.getElementsByTagName("script"))t.dataset.astroExec="";function ht(){const t=document.querySelector('[name="astro-view-transitions-fallback"]');return t?t.getAttribute("content"):"animate"}function F(t){return void 0!==t.dataset.astroReload}(P||"none"!==ht())&&(document.addEventListener("click",(t=>{let e=t.target;if(t.composed&&(e=t.composedPath()[0]),e instanceof Element&&(e=e.closest("a, area")),!(e instanceof HTMLAnchorElement||e instanceof SVGAElement||e instanceof HTMLAreaElement))return;const n=e instanceof HTMLElement?e.target:e.target.baseVal,o=e instanceof HTMLElement?e.href:e.href.baseVal,r=new URL(o,location.href).origin;F(e)||e.hasAttribute("download")||!e.href||n&&"_self"!==n||r!==location.origin||0!==t.button||t.metaKey||t.ctrlKey||t.altKey||t.shiftKey||t.defaultPrevented||(t.preventDefault(),N(o,{history:"replace"===e.dataset.astroHistory?"replace":"auto",sourceElement:e}))})),document.addEventListener("submit",(t=>{let e=t.target;if("FORM"!==e.tagName||t.defaultPrevented||F(e))return;const n=e,o=t.submitter,r=new FormData(n,o),i="string"==typeof n.action?n.action:n.getAttribute("action"),a="string"==typeof n.method?n.method:n.getAttribute("method");let s=o?.getAttribute("formaction")??i??location.pathname;const c=o?.getAttribute("formmethod")??a??"get";if("dialog"===c||location.origin!==new URL(s,location.href).origin)return;const l={sourceElement:o??n};if("get"===c){const t=new URLSearchParams(r),e=new URL(s);e.search=t.toString(),s=e.toString()}else l.formData=r;t.preventDefault(),N(s,l)})),q({prefetchAll:!0})); \ No newline at end of file +import{i as q}from"./index.B1fp56SV.js";const y="data-astro-transition-persist";function B(t){for(const e of document.scripts)for(const n of t.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!e.src&&e.textContent===n.textContent||e.src&&e.type===n.type&&e.src===n.src)){n.dataset.astroExec="";break}}function U(t){const e=document.documentElement,n=[...e.attributes].filter((({name:t})=>(e.removeAttribute(t),t.startsWith("data-astro-"))));[...t.documentElement.attributes,...n].forEach((({name:t,value:n})=>e.setAttribute(t,n)))}function W(t){for(const e of Array.from(document.head.children)){const n=j(e,t);n?n.remove():e.remove()}document.head.append(...t.head.children)}function V(t,e){e.replaceWith(t);for(const n of e.querySelectorAll(`[${y}]`)){const e=n.getAttribute(y),o=t.querySelector(`[${y}="${e}"]`);o&&(o.replaceWith(n),"astro-island"===o.localName&&G(n)&&!z(n,o)&&(n.setAttribute("ssr",""),n.setAttribute("props",o.getAttribute("props"))))}}const K=()=>{const t=document.activeElement;if(t?.closest(`[${y}]`)){if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement){const e=t.selectionStart,n=t.selectionEnd;return()=>E({activeElement:t,start:e,end:n})}return()=>E({activeElement:t})}return()=>E({activeElement:null})},E=({activeElement:t,start:e,end:n})=>{t&&(t.focus(),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&("number"==typeof e&&(t.selectionStart=e),"number"==typeof n&&(t.selectionEnd=n)))},j=(t,e)=>{const n=t.getAttribute(y),o=n&&e.head.querySelector(`[${y}="${n}"]`);if(o)return o;if(t.matches("link[rel=stylesheet]")){const n=t.getAttribute("href");return e.head.querySelector(`link[rel=stylesheet][href="${n}"]`)}return null},G=t=>{const e=t.dataset.astroTransitionPersistProps;return null==e||"false"===e},z=(t,e)=>t.getAttribute("props")===e.getAttribute("props"),J=t=>{B(t),U(t),W(t);const e=K();V(t.body,document.body),e()},Q="astro:before-preparation",Z="astro:after-preparation",tt="astro:before-swap",et="astro:after-swap",nt=t=>document.dispatchEvent(new Event(t));class H extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,e,n,o,r,i,a,s,c,l){super(t,e),this.from=n,this.to=o,this.direction=r,this.navigationType=i,this.sourceElement=a,this.info=s,this.newDocument=c,this.signal=l,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class ot extends H{formData;loader;constructor(t,e,n,o,r,i,a,s,c,l){super(Q,{cancelable:!0},t,e,n,o,r,i,a,s),this.formData=c,this.loader=l.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class rt extends H{direction;viewTransition;swap;constructor(t,e){super(tt,void 0,t.from,t.to,t.direction,t.navigationType,t.sourceElement,t.info,t.newDocument,t.signal),this.direction=t.direction,this.viewTransition=e,this.swap=()=>J(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function it(t,e,n,o,r,i,a,s,c){const l=new ot(t,e,n,o,r,i,window.document,a,s,c);return document.dispatchEvent(l)&&(await l.loader(),l.defaultPrevented||(nt(Z),"traverse"!==l.navigationType&&R({scrollX:scrollX,scrollY:scrollY}))),l}function st(t,e){const n=new rt(t,e);return document.dispatchEvent(n),n.swap(),n}const at=history.pushState.bind(history),T=history.replaceState.bind(history),R=t=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...t},""))},P=!!document.startViewTransition,x=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),O=(t,e)=>t.pathname===e.pathname&&t.search===e.search;let f,b,v;const X=t=>document.dispatchEvent(new Event(t)),Y=()=>X("astro:page-load"),ct=()=>{let t=document.createElement("div");t.setAttribute("aria-live","assertive"),t.setAttribute("aria-atomic","true"),t.className="astro-route-announcer",document.body.append(t),setTimeout((()=>{let e=document.title||document.querySelector("h1")?.textContent||location.pathname;t.textContent=e}),60)},D="data-astro-transition-persist",L="data-astro-transition",S="data-astro-transition-fallback";let k,g=0;async function lt(t,e){try{const n=await fetch(t,e),o=(n.headers.get("content-type")??"").split(";",1)[0].trim();return"text/html"!==o&&"application/xhtml+xml"!==o?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:o}}catch{return null}}function _(){const t=document.querySelector('[name="astro-view-transitions-fallback"]');return t?t.getAttribute("content"):"animate"}function ut(){let t=Promise.resolve();for(const e of document.getElementsByTagName("script")){if(""===e.dataset.astroExec)continue;const n=e.getAttribute("type");if(n&&"module"!==n&&"text/javascript"!==n)continue;const o=document.createElement("script");o.innerHTML=e.innerHTML;for(const n of e.attributes){if("src"===n.name){const e=new Promise((t=>{o.onload=o.onerror=t}));t=t.then((()=>e))}o.setAttribute(n.name,n.value)}o.dataset.astroExec="",e.replaceWith(o)}return t}history.state?(g=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):x()&&(T({index:g,scrollX:scrollX,scrollY:scrollY},""),history.scrollRestoration="manual");const C=(t,e,n,o,r)=>{const i=O(e,t),a=document.title;document.title=o;let s=!1;if(t.href!==location.href&&!r)if("replace"===n.history){const e=history.state;T({...n.state,index:e.index,scrollX:e.scrollX,scrollY:e.scrollY},"",t.href)}else at({...n.state,index:++g,scrollX:0,scrollY:0},"",t.href);if(document.title=a,v=t,i||(scrollTo({left:0,top:0,behavior:"instant"}),s=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(t.hash){history.scrollRestoration="auto";const e=history.state;location.href=t.href,history.state||(T(e,""),i&&window.dispatchEvent(new PopStateEvent("popstate")))}else s||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function dt(t){const e=[];for(const n of t.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${D}="${n.getAttribute(D)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const t=document.createElement("link");t.setAttribute("rel","preload"),t.setAttribute("as","style"),t.setAttribute("href",n.getAttribute("href")),e.push(new Promise((e=>{["load","error"].forEach((n=>t.addEventListener(n,e))),document.head.append(t)})))}return e}async function I(t,e,n,o,r){async function i(t){const e=document.getAnimations();document.documentElement.setAttribute(S,t);const n=document.getAnimations().filter((t=>!e.includes(t)&&!function(t){const e=t.effect;return!!(e&&e instanceof KeyframeEffect&&e.target)&&"infinite"===window.getComputedStyle(e.target,e.pseudoElement).animationIterationCount}(t)));return Promise.allSettled(n.map((t=>t.finished)))}if("animate"===r&&!n.transitionSkipped&&!t.signal.aborted)try{await i("old")}catch{}const a=document.title,s=st(t,n.viewTransition);C(s.to,s.from,e,a,o),X(et),"animate"===r&&(n.transitionSkipped||s.signal.aborted?n.viewTransitionFinished():i("new").finally((()=>n.viewTransitionFinished())))}function ft(){return f?.controller.abort(),f={controller:new AbortController}}async function $(t,e,n,o,r){const i=ft();if(!x()||location.origin!==n.origin)return i===f&&(f=void 0),void(location.href=n.href);const a=r?"traverse":"replace"===o.history?"replace":"push";if("traverse"!==a&&R({scrollX:scrollX,scrollY:scrollY}),O(e,n)&&("back"!==t&&n.hash||"back"===t&&e.hash))return C(n,e,o,document.title,r),void(i===f&&(f=void 0));const s=await it(e,n,t,a,o.sourceElement,o.info,i.controller.signal,o.formData,(async function(t){const e=t.to.href,n={signal:t.signal};if(t.formData){n.method="POST";const e=t.sourceElement instanceof HTMLFormElement?t.sourceElement:t.sourceElement instanceof HTMLElement&&"form"in t.sourceElement?t.sourceElement.form:t.sourceElement?.closest("form");n.body="application/x-www-form-urlencoded"===e?.attributes.getNamedItem("enctype")?.value?new URLSearchParams(t.formData):t.formData}const o=await lt(e,n);if(null===o)return void t.preventDefault();if(o.redirected){const e=new URL(o.redirected);if(e.origin!==t.to.origin)return void t.preventDefault();t.to=e}if(k??=new DOMParser,t.newDocument=k.parseFromString(o.html,o.mediaType),t.newDocument.querySelectorAll("noscript").forEach((t=>t.remove())),!t.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!t.formData)return void t.preventDefault();const r=dt(t.newDocument);r.length&&!t.signal.aborted&&await Promise.all(r)}));if(s.defaultPrevented||s.signal.aborted)return i===f&&(f=void 0),void(s.signal.aborted||(location.href=n.href));const c=await async function(){if(b&&b.viewTransition){try{b.viewTransition.skipTransition()}catch{}try{await b.viewTransition.updateCallbackDone}catch{}}return b={transitionSkipped:!1}}();if(s.signal.aborted)i===f&&(f=void 0);else{if(document.documentElement.setAttribute(L,s.direction),P)c.viewTransition=document.startViewTransition((async()=>await I(s,o,c,r)));else{const t=(async()=>{await Promise.resolve(),await I(s,o,c,r,_())})();c.viewTransition={updateCallbackDone:t,ready:t,finished:new Promise((t=>c.viewTransitionFinished=t)),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(S)}}}c.viewTransition?.updateCallbackDone.finally((async()=>{await ut(),Y(),ct()})),c.viewTransition?.finished.finally((()=>{c.viewTransition=void 0,c===b&&(b=void 0),i===f&&(f=void 0),document.documentElement.removeAttribute(L),document.documentElement.removeAttribute(S)}));try{await(c.viewTransition?.updateCallbackDone)}catch(t){const e=t;console.log("[astro]",e.name,e.message,e.stack)}}}async function N(t,e){await $("forward",v,new URL(t,location.href),e??{})}function mt(t){if(!x()&&t.state)return void location.reload();if(null===t.state)return;const e=history.state,n=e.index,o=n>g?"forward":"back";g=n,$(o,v,new URL(location.href),{},e)}const M=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&R({scrollX:scrollX,scrollY:scrollY})};if(P||"none"!==_())if(v=new URL(location.href),addEventListener("popstate",mt),addEventListener("load",Y),"onscrollend"in window)addEventListener("scrollend",M);else{let t,e,n,o;const r=()=>o!==history.state?.index?(clearInterval(t),void(t=void 0)):e===scrollY&&n===scrollX?(clearInterval(t),t=void 0,void M()):(e=scrollY,void(n=scrollX));addEventListener("scroll",(()=>{void 0===t&&(o=history.state?.index,e=scrollY,n=scrollX,t=window.setInterval(r,50))}),{passive:!0})}for(const t of document.getElementsByTagName("script"))t.dataset.astroExec="";function ht(){const t=document.querySelector('[name="astro-view-transitions-fallback"]');return t?t.getAttribute("content"):"animate"}function F(t){return void 0!==t.dataset.astroReload}(P||"none"!==ht())&&(document.addEventListener("click",(t=>{let e=t.target;if(t.composed&&(e=t.composedPath()[0]),e instanceof Element&&(e=e.closest("a, area")),!(e instanceof HTMLAnchorElement||e instanceof SVGAElement||e instanceof HTMLAreaElement))return;const n=e instanceof HTMLElement?e.target:e.target.baseVal,o=e instanceof HTMLElement?e.href:e.href.baseVal,r=new URL(o,location.href).origin;F(e)||e.hasAttribute("download")||!e.href||n&&"_self"!==n||r!==location.origin||0!==t.button||t.metaKey||t.ctrlKey||t.altKey||t.shiftKey||t.defaultPrevented||(t.preventDefault(),N(o,{history:"replace"===e.dataset.astroHistory?"replace":"auto",sourceElement:e}))})),document.addEventListener("submit",(t=>{let e=t.target;if("FORM"!==e.tagName||t.defaultPrevented||F(e))return;const n=e,o=t.submitter,r=new FormData(n,o),i="string"==typeof n.action?n.action:n.getAttribute("action"),a="string"==typeof n.method?n.method:n.getAttribute("method");let s=o?.getAttribute("formaction")??i??location.pathname;const c=o?.getAttribute("formmethod")??a??"get";if("dialog"===c||location.origin!==new URL(s,location.href).origin)return;const l={sourceElement:o??n};if("get"===c){const t=new URLSearchParams(r),e=new URL(s);e.search=t.toString(),s=e.toString()}else l.formData=r;t.preventDefault(),N(s,l)})),q({prefetchAll:!0})); \ No newline at end of file diff --git a/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js.map b/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js.map similarity index 60% rename from Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js.map rename to Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js.map index 6ab5a50b..991209ad 100644 --- a/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js.map +++ b/Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js.map @@ -1 +1 @@ -{"version":3,"file":"ClientRouter.astro_astro_type_script_index_0_lang.C9pvYmHU.js","sources":["../../../../../node_modules/astro/dist/transitions/swap-functions.js","../../../../../node_modules/astro/dist/transitions/events.js","../../../../../node_modules/astro/dist/transitions/router.js"],"sourcesContent":["const PERSIST_ATTR = \"data-astro-transition-persist\";\nfunction deselectScripts(doc) {\n for (const s1 of document.scripts) {\n for (const s2 of doc.scripts) {\n if (\n // Check if the script should be rerun regardless of it being the same\n !s2.hasAttribute(\"data-astro-rerun\") && // Inline\n (!s1.src && s1.textContent === s2.textContent || // External\n s1.src && s1.type === s2.type && s1.src === s2.src)\n ) {\n s2.dataset.astroExec = \"\";\n break;\n }\n }\n }\n}\nfunction swapRootAttributes(doc) {\n const html = document.documentElement;\n const astroAttributes = [...html.attributes].filter(\n ({ name }) => (html.removeAttribute(name), name.startsWith(\"data-astro-\"))\n );\n [...doc.documentElement.attributes, ...astroAttributes].forEach(\n ({ name, value }) => html.setAttribute(name, value)\n );\n}\nfunction swapHeadElements(doc) {\n for (const el of Array.from(document.head.children)) {\n const newEl = persistedHeadElement(el, doc);\n if (newEl) {\n newEl.remove();\n } else {\n el.remove();\n }\n }\n document.head.append(...doc.head.children);\n}\nfunction swapBodyElement(newElement, oldElement) {\n oldElement.replaceWith(newElement);\n for (const el of oldElement.querySelectorAll(`[${PERSIST_ATTR}]`)) {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = newElement.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n newEl.replaceWith(el);\n if (newEl.localName === \"astro-island\" && shouldCopyProps(el) && !isSameProps(el, newEl)) {\n el.setAttribute(\"ssr\", \"\");\n el.setAttribute(\"props\", newEl.getAttribute(\"props\"));\n }\n }\n }\n}\nconst saveFocus = () => {\n const activeElement = document.activeElement;\n if (activeElement?.closest(`[${PERSIST_ATTR}]`)) {\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n const start = activeElement.selectionStart;\n const end = activeElement.selectionEnd;\n return () => restoreFocus({ activeElement, start, end });\n }\n return () => restoreFocus({ activeElement });\n } else {\n return () => restoreFocus({ activeElement: null });\n }\n};\nconst restoreFocus = ({ activeElement, start, end }) => {\n if (activeElement) {\n activeElement.focus();\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n if (typeof start === \"number\") activeElement.selectionStart = start;\n if (typeof end === \"number\") activeElement.selectionEnd = end;\n }\n }\n};\nconst persistedHeadElement = (el, newDoc) => {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = id && newDoc.head.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n return newEl;\n }\n if (el.matches(\"link[rel=stylesheet]\")) {\n const href = el.getAttribute(\"href\");\n return newDoc.head.querySelector(`link[rel=stylesheet][href=\"${href}\"]`);\n }\n return null;\n};\nconst shouldCopyProps = (el) => {\n const persistProps = el.dataset.astroTransitionPersistProps;\n return persistProps == null || persistProps === \"false\";\n};\nconst isSameProps = (oldEl, newEl) => {\n return oldEl.getAttribute(\"props\") === newEl.getAttribute(\"props\");\n};\nconst swapFunctions = {\n deselectScripts,\n swapRootAttributes,\n swapHeadElements,\n swapBodyElement,\n saveFocus\n};\nconst swap = (doc) => {\n deselectScripts(doc);\n swapRootAttributes(doc);\n swapHeadElements(doc);\n const restoreFocusFunction = saveFocus();\n swapBodyElement(doc.body, document.body);\n restoreFocusFunction();\n};\nexport {\n deselectScripts,\n restoreFocus,\n saveFocus,\n swap,\n swapBodyElement,\n swapFunctions,\n swapHeadElements,\n swapRootAttributes\n};\n","import { updateScrollPosition } from \"./router.js\";\nimport { swap } from \"./swap-functions.js\";\nconst TRANSITION_BEFORE_PREPARATION = \"astro:before-preparation\";\nconst TRANSITION_AFTER_PREPARATION = \"astro:after-preparation\";\nconst TRANSITION_BEFORE_SWAP = \"astro:before-swap\";\nconst TRANSITION_AFTER_SWAP = \"astro:after-swap\";\nconst TRANSITION_PAGE_LOAD = \"astro:page-load\";\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(TRANSITION_PAGE_LOAD);\nclass BeforeEvent extends Event {\n from;\n to;\n direction;\n navigationType;\n sourceElement;\n info;\n newDocument;\n signal;\n constructor(type, eventInitDict, from, to, direction, navigationType, sourceElement, info, newDocument, signal) {\n super(type, eventInitDict);\n this.from = from;\n this.to = to;\n this.direction = direction;\n this.navigationType = navigationType;\n this.sourceElement = sourceElement;\n this.info = info;\n this.newDocument = newDocument;\n this.signal = signal;\n Object.defineProperties(this, {\n from: { enumerable: true },\n to: { enumerable: true, writable: true },\n direction: { enumerable: true, writable: true },\n navigationType: { enumerable: true },\n sourceElement: { enumerable: true },\n info: { enumerable: true },\n newDocument: { enumerable: true, writable: true },\n signal: { enumerable: true }\n });\n }\n}\nconst isTransitionBeforePreparationEvent = (value) => value.type === TRANSITION_BEFORE_PREPARATION;\nclass TransitionBeforePreparationEvent extends BeforeEvent {\n formData;\n loader;\n constructor(from, to, direction, navigationType, sourceElement, info, newDocument, signal, formData, loader) {\n super(\n TRANSITION_BEFORE_PREPARATION,\n { cancelable: true },\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n newDocument,\n signal\n );\n this.formData = formData;\n this.loader = loader.bind(this, this);\n Object.defineProperties(this, {\n formData: { enumerable: true },\n loader: { enumerable: true, writable: true }\n });\n }\n}\nconst isTransitionBeforeSwapEvent = (value) => value.type === TRANSITION_BEFORE_SWAP;\nclass TransitionBeforeSwapEvent extends BeforeEvent {\n direction;\n viewTransition;\n swap;\n constructor(afterPreparation, viewTransition) {\n super(\n TRANSITION_BEFORE_SWAP,\n void 0,\n afterPreparation.from,\n afterPreparation.to,\n afterPreparation.direction,\n afterPreparation.navigationType,\n afterPreparation.sourceElement,\n afterPreparation.info,\n afterPreparation.newDocument,\n afterPreparation.signal\n );\n this.direction = afterPreparation.direction;\n this.viewTransition = viewTransition;\n this.swap = () => swap(this.newDocument);\n Object.defineProperties(this, {\n direction: { enumerable: true },\n viewTransition: { enumerable: true },\n swap: { enumerable: true, writable: true }\n });\n }\n}\nasync function doPreparation(from, to, direction, navigationType, sourceElement, info, signal, formData, defaultLoader) {\n const event = new TransitionBeforePreparationEvent(\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n window.document,\n signal,\n formData,\n defaultLoader\n );\n if (document.dispatchEvent(event)) {\n await event.loader();\n if (!event.defaultPrevented) {\n triggerEvent(TRANSITION_AFTER_PREPARATION);\n if (event.navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n }\n }\n return event;\n}\nfunction doSwap(afterPreparation, viewTransition) {\n const event = new TransitionBeforeSwapEvent(afterPreparation, viewTransition);\n document.dispatchEvent(event);\n event.swap();\n return event;\n}\nexport {\n TRANSITION_AFTER_PREPARATION,\n TRANSITION_AFTER_SWAP,\n TRANSITION_BEFORE_PREPARATION,\n TRANSITION_BEFORE_SWAP,\n TRANSITION_PAGE_LOAD,\n TransitionBeforePreparationEvent,\n TransitionBeforeSwapEvent,\n doPreparation,\n doSwap,\n isTransitionBeforePreparationEvent,\n isTransitionBeforeSwapEvent,\n onPageLoad,\n triggerEvent\n};\n","import { TRANSITION_AFTER_SWAP, doPreparation, doSwap } from \"./events.js\";\nconst inBrowser = import.meta.env.SSR === false;\nconst pushState = inBrowser && history.pushState.bind(history);\nconst replaceState = inBrowser && history.replaceState.bind(history);\nconst updateScrollPosition = (positions) => {\n if (history.state) {\n history.scrollRestoration = \"manual\";\n replaceState({ ...history.state, ...positions }, \"\");\n }\n};\nconst supportsViewTransitions = inBrowser && !!document.startViewTransition;\nconst transitionEnabledOnThisPage = () => inBrowser && !!document.querySelector('[name=\"astro-view-transitions-enabled\"]');\nconst samePage = (thisLocation, otherLocation) => thisLocation.pathname === otherLocation.pathname && thisLocation.search === otherLocation.search;\nlet mostRecentNavigation;\nlet mostRecentTransition;\nlet originalLocation;\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(\"astro:page-load\");\nconst announce = () => {\n let div = document.createElement(\"div\");\n div.setAttribute(\"aria-live\", \"assertive\");\n div.setAttribute(\"aria-atomic\", \"true\");\n div.className = \"astro-route-announcer\";\n document.body.append(div);\n setTimeout(\n () => {\n let title = document.title || document.querySelector(\"h1\")?.textContent || location.pathname;\n div.textContent = title;\n },\n // Much thought went into this magic number; the gist is that screen readers\n // need to see that the element changed and might not do so if it happens\n // too quickly.\n 60\n );\n};\nconst PERSIST_ATTR = \"data-astro-transition-persist\";\nconst DIRECTION_ATTR = \"data-astro-transition\";\nconst OLD_NEW_ATTR = \"data-astro-transition-fallback\";\nconst VITE_ID = \"data-vite-dev-id\";\nlet parser;\nlet currentHistoryIndex = 0;\nif (inBrowser) {\n if (history.state) {\n currentHistoryIndex = history.state.index;\n scrollTo({ left: history.state.scrollX, top: history.state.scrollY });\n } else if (transitionEnabledOnThisPage()) {\n replaceState({ index: currentHistoryIndex, scrollX, scrollY }, \"\");\n history.scrollRestoration = \"manual\";\n }\n}\nasync function fetchHTML(href, init) {\n try {\n const res = await fetch(href, init);\n const contentType = res.headers.get(\"content-type\") ?? \"\";\n const mediaType = contentType.split(\";\", 1)[0].trim();\n if (mediaType !== \"text/html\" && mediaType !== \"application/xhtml+xml\") {\n return null;\n }\n const html = await res.text();\n return {\n html,\n redirected: res.redirected ? res.url : void 0,\n mediaType\n };\n } catch {\n return null;\n }\n}\nfunction getFallback() {\n const el = document.querySelector('[name=\"astro-view-transitions-fallback\"]');\n if (el) {\n return el.getAttribute(\"content\");\n }\n return \"animate\";\n}\nfunction runScripts() {\n let wait = Promise.resolve();\n for (const script of document.getElementsByTagName(\"script\")) {\n if (script.dataset.astroExec === \"\") continue;\n const type = script.getAttribute(\"type\");\n if (type && type !== \"module\" && type !== \"text/javascript\") continue;\n const newScript = document.createElement(\"script\");\n newScript.innerHTML = script.innerHTML;\n for (const attr of script.attributes) {\n if (attr.name === \"src\") {\n const p = new Promise((r) => {\n newScript.onload = newScript.onerror = r;\n });\n wait = wait.then(() => p);\n }\n newScript.setAttribute(attr.name, attr.value);\n }\n newScript.dataset.astroExec = \"\";\n script.replaceWith(newScript);\n }\n return wait;\n}\nconst moveToLocation = (to, from, options, pageTitleForBrowserHistory, historyState) => {\n const intraPage = samePage(from, to);\n const targetPageTitle = document.title;\n document.title = pageTitleForBrowserHistory;\n let scrolledToTop = false;\n if (to.href !== location.href && !historyState) {\n if (options.history === \"replace\") {\n const current = history.state;\n replaceState(\n {\n ...options.state,\n index: current.index,\n scrollX: current.scrollX,\n scrollY: current.scrollY\n },\n \"\",\n to.href\n );\n } else {\n pushState(\n { ...options.state, index: ++currentHistoryIndex, scrollX: 0, scrollY: 0 },\n \"\",\n to.href\n );\n }\n }\n document.title = targetPageTitle;\n originalLocation = to;\n if (!intraPage) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n scrolledToTop = true;\n }\n if (historyState) {\n scrollTo(historyState.scrollX, historyState.scrollY);\n } else {\n if (to.hash) {\n history.scrollRestoration = \"auto\";\n const savedState = history.state;\n location.href = to.href;\n if (!history.state) {\n replaceState(savedState, \"\");\n if (intraPage) {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n }\n }\n } else {\n if (!scrolledToTop) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n }\n }\n history.scrollRestoration = \"manual\";\n }\n};\nfunction preloadStyleLinks(newDocument) {\n const links = [];\n for (const el of newDocument.querySelectorAll(\"head link[rel=stylesheet]\")) {\n if (!document.querySelector(\n `[${PERSIST_ATTR}=\"${el.getAttribute(\n PERSIST_ATTR\n )}\"], link[rel=stylesheet][href=\"${el.getAttribute(\"href\")}\"]`\n )) {\n const c = document.createElement(\"link\");\n c.setAttribute(\"rel\", \"preload\");\n c.setAttribute(\"as\", \"style\");\n c.setAttribute(\"href\", el.getAttribute(\"href\"));\n links.push(\n new Promise((resolve) => {\n [\"load\", \"error\"].forEach((evName) => c.addEventListener(evName, resolve));\n document.head.append(c);\n })\n );\n }\n }\n return links;\n}\nasync function updateDOM(preparationEvent, options, currentTransition, historyState, fallback) {\n async function animate(phase) {\n function isInfinite(animation) {\n const effect = animation.effect;\n if (!effect || !(effect instanceof KeyframeEffect) || !effect.target) return false;\n const style = window.getComputedStyle(effect.target, effect.pseudoElement);\n return style.animationIterationCount === \"infinite\";\n }\n const currentAnimations = document.getAnimations();\n document.documentElement.setAttribute(OLD_NEW_ATTR, phase);\n const nextAnimations = document.getAnimations();\n const newAnimations = nextAnimations.filter(\n (a) => !currentAnimations.includes(a) && !isInfinite(a)\n );\n return Promise.allSettled(newAnimations.map((a) => a.finished));\n }\n if (fallback === \"animate\" && !currentTransition.transitionSkipped && !preparationEvent.signal.aborted) {\n try {\n await animate(\"old\");\n } catch {\n }\n }\n const pageTitleForBrowserHistory = document.title;\n const swapEvent = doSwap(preparationEvent, currentTransition.viewTransition);\n moveToLocation(swapEvent.to, swapEvent.from, options, pageTitleForBrowserHistory, historyState);\n triggerEvent(TRANSITION_AFTER_SWAP);\n if (fallback === \"animate\") {\n if (!currentTransition.transitionSkipped && !swapEvent.signal.aborted) {\n animate(\"new\").finally(() => currentTransition.viewTransitionFinished());\n } else {\n currentTransition.viewTransitionFinished();\n }\n }\n}\nfunction abortAndRecreateMostRecentNavigation() {\n mostRecentNavigation?.controller.abort();\n return mostRecentNavigation = {\n controller: new AbortController()\n };\n}\nasync function transition(direction, from, to, options, historyState) {\n const currentNavigation = abortAndRecreateMostRecentNavigation();\n if (!transitionEnabledOnThisPage() || location.origin !== to.origin) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n location.href = to.href;\n return;\n }\n const navigationType = historyState ? \"traverse\" : options.history === \"replace\" ? \"replace\" : \"push\";\n if (navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n if (samePage(from, to)) {\n if (direction !== \"back\" && to.hash || direction === \"back\" && from.hash) {\n moveToLocation(to, from, options, document.title, historyState);\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n }\n const prepEvent = await doPreparation(\n from,\n to,\n direction,\n navigationType,\n options.sourceElement,\n options.info,\n currentNavigation.controller.signal,\n options.formData,\n defaultLoader\n );\n if (prepEvent.defaultPrevented || prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n if (!prepEvent.signal.aborted) {\n location.href = to.href;\n }\n return;\n }\n async function defaultLoader(preparationEvent) {\n const href = preparationEvent.to.href;\n const init = { signal: preparationEvent.signal };\n if (preparationEvent.formData) {\n init.method = \"POST\";\n const form = preparationEvent.sourceElement instanceof HTMLFormElement ? preparationEvent.sourceElement : preparationEvent.sourceElement instanceof HTMLElement && \"form\" in preparationEvent.sourceElement ? preparationEvent.sourceElement.form : preparationEvent.sourceElement?.closest(\"form\");\n init.body = form?.attributes.getNamedItem(\"enctype\")?.value === \"application/x-www-form-urlencoded\" ? new URLSearchParams(preparationEvent.formData) : preparationEvent.formData;\n }\n const response = await fetchHTML(href, init);\n if (response === null) {\n preparationEvent.preventDefault();\n return;\n }\n if (response.redirected) {\n const redirectedTo = new URL(response.redirected);\n if (redirectedTo.origin !== preparationEvent.to.origin) {\n preparationEvent.preventDefault();\n return;\n }\n preparationEvent.to = redirectedTo;\n }\n parser ??= new DOMParser();\n preparationEvent.newDocument = parser.parseFromString(response.html, response.mediaType);\n preparationEvent.newDocument.querySelectorAll(\"noscript\").forEach((el) => el.remove());\n if (!preparationEvent.newDocument.querySelector('[name=\"astro-view-transitions-enabled\"]') && !preparationEvent.formData) {\n preparationEvent.preventDefault();\n return;\n }\n const links = preloadStyleLinks(preparationEvent.newDocument);\n links.length && !preparationEvent.signal.aborted && await Promise.all(links);\n if (import.meta.env.DEV && !preparationEvent.signal.aborted)\n await prepareForClientOnlyComponents(\n preparationEvent.newDocument,\n preparationEvent.to,\n preparationEvent.signal\n );\n }\n async function abortAndRecreateMostRecentTransition() {\n if (mostRecentTransition) {\n if (mostRecentTransition.viewTransition) {\n try {\n mostRecentTransition.viewTransition.skipTransition();\n } catch {\n }\n try {\n await mostRecentTransition.viewTransition.updateCallbackDone;\n } catch {\n }\n }\n }\n return mostRecentTransition = { transitionSkipped: false };\n }\n const currentTransition = await abortAndRecreateMostRecentTransition();\n if (prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n document.documentElement.setAttribute(DIRECTION_ATTR, prepEvent.direction);\n if (supportsViewTransitions) {\n currentTransition.viewTransition = document.startViewTransition(\n async () => await updateDOM(prepEvent, options, currentTransition, historyState)\n );\n } else {\n const updateDone = (async () => {\n await Promise.resolve();\n await updateDOM(prepEvent, options, currentTransition, historyState, getFallback());\n return void 0;\n })();\n currentTransition.viewTransition = {\n updateCallbackDone: updateDone,\n // this is about correct\n ready: updateDone,\n // good enough\n // Finished promise could have been done better: finished rejects iff updateDone does.\n // Our simulation always resolves, never rejects.\n finished: new Promise((r) => currentTransition.viewTransitionFinished = r),\n // see end of updateDOM\n skipTransition: () => {\n currentTransition.transitionSkipped = true;\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n }\n };\n }\n currentTransition.viewTransition?.updateCallbackDone.finally(async () => {\n await runScripts();\n onPageLoad();\n announce();\n });\n currentTransition.viewTransition?.finished.finally(() => {\n currentTransition.viewTransition = void 0;\n if (currentTransition === mostRecentTransition) mostRecentTransition = void 0;\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n document.documentElement.removeAttribute(DIRECTION_ATTR);\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n });\n try {\n await currentTransition.viewTransition?.updateCallbackDone;\n } catch (e) {\n const err = e;\n console.log(\"[astro]\", err.name, err.message, err.stack);\n }\n}\nlet navigateOnServerWarned = false;\nasync function navigate(href, options) {\n if (inBrowser === false) {\n if (!navigateOnServerWarned) {\n const warning = new Error(\n \"The view transitions client API was called during a server side render. This may be unintentional as the navigate() function is expected to be called in response to user interactions. Please make sure that your usage is correct.\"\n );\n warning.name = \"Warning\";\n console.warn(warning);\n navigateOnServerWarned = true;\n }\n return;\n }\n await transition(\"forward\", originalLocation, new URL(href, location.href), options ?? {});\n}\nfunction onPopState(ev) {\n if (!transitionEnabledOnThisPage() && ev.state) {\n location.reload();\n return;\n }\n if (ev.state === null) {\n return;\n }\n const state = history.state;\n const nextIndex = state.index;\n const direction = nextIndex > currentHistoryIndex ? \"forward\" : \"back\";\n currentHistoryIndex = nextIndex;\n transition(direction, originalLocation, new URL(location.href), {}, state);\n}\nconst onScrollEnd = () => {\n if (history.state && (scrollX !== history.state.scrollX || scrollY !== history.state.scrollY)) {\n updateScrollPosition({ scrollX, scrollY });\n }\n};\nif (inBrowser) {\n if (supportsViewTransitions || getFallback() !== \"none\") {\n originalLocation = new URL(location.href);\n addEventListener(\"popstate\", onPopState);\n addEventListener(\"load\", onPageLoad);\n if (\"onscrollend\" in window) addEventListener(\"scrollend\", onScrollEnd);\n else {\n let intervalId, lastY, lastX, lastIndex;\n const scrollInterval = () => {\n if (lastIndex !== history.state?.index) {\n clearInterval(intervalId);\n intervalId = void 0;\n return;\n }\n if (lastY === scrollY && lastX === scrollX) {\n clearInterval(intervalId);\n intervalId = void 0;\n onScrollEnd();\n return;\n } else {\n lastY = scrollY, lastX = scrollX;\n }\n };\n addEventListener(\n \"scroll\",\n () => {\n if (intervalId !== void 0) return;\n lastIndex = history.state.index, lastY = scrollY, lastX = scrollX;\n intervalId = window.setInterval(scrollInterval, 50);\n },\n { passive: true }\n );\n }\n }\n for (const script of document.getElementsByTagName(\"script\")) {\n script.dataset.astroExec = \"\";\n }\n}\nasync function prepareForClientOnlyComponents(newDocument, toLocation, signal) {\n if (newDocument.body.querySelector(`astro-island[client='only']`)) {\n const nextPage = document.createElement(\"iframe\");\n nextPage.src = toLocation.href;\n nextPage.style.display = \"none\";\n document.body.append(nextPage);\n nextPage.contentWindow.console = Object.keys(console).reduce((acc, key) => {\n acc[key] = () => {\n };\n return acc;\n }, {});\n await hydrationDone(nextPage);\n const nextHead = nextPage.contentDocument?.head;\n if (nextHead) {\n const viteIds = [...nextHead.querySelectorAll(`style[${VITE_ID}]`)].map(\n (style) => style.getAttribute(VITE_ID)\n );\n viteIds.forEach((id) => {\n const style = nextHead.querySelector(`style[${VITE_ID}=\"${id}\"]`);\n if (style && !newDocument.head.querySelector(`style[${VITE_ID}=\"${id}\"]`)) {\n newDocument.head.appendChild(style.cloneNode(true));\n }\n });\n }\n async function hydrationDone(loadingPage) {\n if (!signal.aborted) {\n await new Promise(\n (r) => loadingPage.contentWindow?.addEventListener(\"load\", r, { once: true })\n );\n }\n return new Promise(async (r) => {\n for (let count = 0; count <= 20; ++count) {\n if (signal.aborted) break;\n if (!loadingPage.contentDocument.body.querySelector(\"astro-island[ssr]\")) break;\n await new Promise((r2) => setTimeout(r2, 50));\n }\n r();\n });\n }\n }\n}\nexport {\n getFallback,\n navigate,\n supportsViewTransitions,\n transitionEnabledOnThisPage,\n updateScrollPosition\n};\n"],"names":["PERSIST_ATTR","deselectScripts","doc","s1","s2","swapRootAttributes","html","astroAttributes","name","value","swapHeadElements","el","newEl","persistedHeadElement","swapBodyElement","newElement","oldElement","id","shouldCopyProps","isSameProps","saveFocus","activeElement","start","end","restoreFocus","newDoc","href","persistProps","oldEl","swap","restoreFocusFunction","TRANSITION_BEFORE_PREPARATION","TRANSITION_AFTER_PREPARATION","TRANSITION_BEFORE_SWAP","TRANSITION_AFTER_SWAP","triggerEvent","BeforeEvent","type","eventInitDict","from","to","direction","navigationType","sourceElement","info","newDocument","signal","TransitionBeforePreparationEvent","formData","loader","TransitionBeforeSwapEvent","afterPreparation","viewTransition","doPreparation","defaultLoader","event","updateScrollPosition","doSwap","pushState","replaceState","positions","supportsViewTransitions","transitionEnabledOnThisPage","samePage","thisLocation","otherLocation","mostRecentNavigation","mostRecentTransition","originalLocation","onPageLoad","announce","div","title","DIRECTION_ATTR","OLD_NEW_ATTR","parser","currentHistoryIndex","fetchHTML","init","res","mediaType","getFallback","runScripts","wait","script","newScript","attr","p","r","moveToLocation","options","pageTitleForBrowserHistory","historyState","intraPage","targetPageTitle","scrolledToTop","current","savedState","preloadStyleLinks","links","c","resolve","evName","updateDOM","preparationEvent","currentTransition","fallback","animate","phase","isInfinite","animation","effect","currentAnimations","newAnimations","a","swapEvent","abortAndRecreateMostRecentNavigation","transition","currentNavigation","prepEvent","form","response","redirectedTo","abortAndRecreateMostRecentTransition","updateDone","e","err","navigate","onPopState","ev","state","nextIndex","onScrollEnd","intervalId","lastY","lastX","lastIndex","scrollInterval"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file +{"version":3,"file":"ClientRouter.astro_astro_type_script_index_0_lang.CEjSBjq3.js","sources":["../../../../../node_modules/astro/dist/transitions/swap-functions.js","../../../../../node_modules/astro/dist/transitions/events.js","../../../../../node_modules/astro/dist/transitions/router.js"],"sourcesContent":["const PERSIST_ATTR = \"data-astro-transition-persist\";\nfunction deselectScripts(doc) {\n for (const s1 of document.scripts) {\n for (const s2 of doc.scripts) {\n if (\n // Check if the script should be rerun regardless of it being the same\n !s2.hasAttribute(\"data-astro-rerun\") && // Inline\n (!s1.src && s1.textContent === s2.textContent || // External\n s1.src && s1.type === s2.type && s1.src === s2.src)\n ) {\n s2.dataset.astroExec = \"\";\n break;\n }\n }\n }\n}\nfunction swapRootAttributes(doc) {\n const html = document.documentElement;\n const astroAttributes = [...html.attributes].filter(\n ({ name }) => (html.removeAttribute(name), name.startsWith(\"data-astro-\"))\n );\n [...doc.documentElement.attributes, ...astroAttributes].forEach(\n ({ name, value }) => html.setAttribute(name, value)\n );\n}\nfunction swapHeadElements(doc) {\n for (const el of Array.from(document.head.children)) {\n const newEl = persistedHeadElement(el, doc);\n if (newEl) {\n newEl.remove();\n } else {\n el.remove();\n }\n }\n document.head.append(...doc.head.children);\n}\nfunction swapBodyElement(newElement, oldElement) {\n oldElement.replaceWith(newElement);\n for (const el of oldElement.querySelectorAll(`[${PERSIST_ATTR}]`)) {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = newElement.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n newEl.replaceWith(el);\n if (newEl.localName === \"astro-island\" && shouldCopyProps(el) && !isSameProps(el, newEl)) {\n el.setAttribute(\"ssr\", \"\");\n el.setAttribute(\"props\", newEl.getAttribute(\"props\"));\n }\n }\n }\n}\nconst saveFocus = () => {\n const activeElement = document.activeElement;\n if (activeElement?.closest(`[${PERSIST_ATTR}]`)) {\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n const start = activeElement.selectionStart;\n const end = activeElement.selectionEnd;\n return () => restoreFocus({ activeElement, start, end });\n }\n return () => restoreFocus({ activeElement });\n } else {\n return () => restoreFocus({ activeElement: null });\n }\n};\nconst restoreFocus = ({ activeElement, start, end }) => {\n if (activeElement) {\n activeElement.focus();\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n if (typeof start === \"number\") activeElement.selectionStart = start;\n if (typeof end === \"number\") activeElement.selectionEnd = end;\n }\n }\n};\nconst persistedHeadElement = (el, newDoc) => {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = id && newDoc.head.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n return newEl;\n }\n if (el.matches(\"link[rel=stylesheet]\")) {\n const href = el.getAttribute(\"href\");\n return newDoc.head.querySelector(`link[rel=stylesheet][href=\"${href}\"]`);\n }\n return null;\n};\nconst shouldCopyProps = (el) => {\n const persistProps = el.dataset.astroTransitionPersistProps;\n return persistProps == null || persistProps === \"false\";\n};\nconst isSameProps = (oldEl, newEl) => {\n return oldEl.getAttribute(\"props\") === newEl.getAttribute(\"props\");\n};\nconst swapFunctions = {\n deselectScripts,\n swapRootAttributes,\n swapHeadElements,\n swapBodyElement,\n saveFocus\n};\nconst swap = (doc) => {\n deselectScripts(doc);\n swapRootAttributes(doc);\n swapHeadElements(doc);\n const restoreFocusFunction = saveFocus();\n swapBodyElement(doc.body, document.body);\n restoreFocusFunction();\n};\nexport {\n deselectScripts,\n restoreFocus,\n saveFocus,\n swap,\n swapBodyElement,\n swapFunctions,\n swapHeadElements,\n swapRootAttributes\n};\n","import { updateScrollPosition } from \"./router.js\";\nimport { swap } from \"./swap-functions.js\";\nconst TRANSITION_BEFORE_PREPARATION = \"astro:before-preparation\";\nconst TRANSITION_AFTER_PREPARATION = \"astro:after-preparation\";\nconst TRANSITION_BEFORE_SWAP = \"astro:before-swap\";\nconst TRANSITION_AFTER_SWAP = \"astro:after-swap\";\nconst TRANSITION_PAGE_LOAD = \"astro:page-load\";\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(TRANSITION_PAGE_LOAD);\nclass BeforeEvent extends Event {\n from;\n to;\n direction;\n navigationType;\n sourceElement;\n info;\n newDocument;\n signal;\n constructor(type, eventInitDict, from, to, direction, navigationType, sourceElement, info, newDocument, signal) {\n super(type, eventInitDict);\n this.from = from;\n this.to = to;\n this.direction = direction;\n this.navigationType = navigationType;\n this.sourceElement = sourceElement;\n this.info = info;\n this.newDocument = newDocument;\n this.signal = signal;\n Object.defineProperties(this, {\n from: { enumerable: true },\n to: { enumerable: true, writable: true },\n direction: { enumerable: true, writable: true },\n navigationType: { enumerable: true },\n sourceElement: { enumerable: true },\n info: { enumerable: true },\n newDocument: { enumerable: true, writable: true },\n signal: { enumerable: true }\n });\n }\n}\nconst isTransitionBeforePreparationEvent = (value) => value.type === TRANSITION_BEFORE_PREPARATION;\nclass TransitionBeforePreparationEvent extends BeforeEvent {\n formData;\n loader;\n constructor(from, to, direction, navigationType, sourceElement, info, newDocument, signal, formData, loader) {\n super(\n TRANSITION_BEFORE_PREPARATION,\n { cancelable: true },\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n newDocument,\n signal\n );\n this.formData = formData;\n this.loader = loader.bind(this, this);\n Object.defineProperties(this, {\n formData: { enumerable: true },\n loader: { enumerable: true, writable: true }\n });\n }\n}\nconst isTransitionBeforeSwapEvent = (value) => value.type === TRANSITION_BEFORE_SWAP;\nclass TransitionBeforeSwapEvent extends BeforeEvent {\n direction;\n viewTransition;\n swap;\n constructor(afterPreparation, viewTransition) {\n super(\n TRANSITION_BEFORE_SWAP,\n void 0,\n afterPreparation.from,\n afterPreparation.to,\n afterPreparation.direction,\n afterPreparation.navigationType,\n afterPreparation.sourceElement,\n afterPreparation.info,\n afterPreparation.newDocument,\n afterPreparation.signal\n );\n this.direction = afterPreparation.direction;\n this.viewTransition = viewTransition;\n this.swap = () => swap(this.newDocument);\n Object.defineProperties(this, {\n direction: { enumerable: true },\n viewTransition: { enumerable: true },\n swap: { enumerable: true, writable: true }\n });\n }\n}\nasync function doPreparation(from, to, direction, navigationType, sourceElement, info, signal, formData, defaultLoader) {\n const event = new TransitionBeforePreparationEvent(\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n window.document,\n signal,\n formData,\n defaultLoader\n );\n if (document.dispatchEvent(event)) {\n await event.loader();\n if (!event.defaultPrevented) {\n triggerEvent(TRANSITION_AFTER_PREPARATION);\n if (event.navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n }\n }\n return event;\n}\nfunction doSwap(afterPreparation, viewTransition) {\n const event = new TransitionBeforeSwapEvent(afterPreparation, viewTransition);\n document.dispatchEvent(event);\n event.swap();\n return event;\n}\nexport {\n TRANSITION_AFTER_PREPARATION,\n TRANSITION_AFTER_SWAP,\n TRANSITION_BEFORE_PREPARATION,\n TRANSITION_BEFORE_SWAP,\n TRANSITION_PAGE_LOAD,\n TransitionBeforePreparationEvent,\n TransitionBeforeSwapEvent,\n doPreparation,\n doSwap,\n isTransitionBeforePreparationEvent,\n isTransitionBeforeSwapEvent,\n onPageLoad,\n triggerEvent\n};\n","import { TRANSITION_AFTER_SWAP, doPreparation, doSwap } from \"./events.js\";\nconst inBrowser = import.meta.env.SSR === false;\nconst pushState = inBrowser && history.pushState.bind(history);\nconst replaceState = inBrowser && history.replaceState.bind(history);\nconst updateScrollPosition = (positions) => {\n if (history.state) {\n history.scrollRestoration = \"manual\";\n replaceState({ ...history.state, ...positions }, \"\");\n }\n};\nconst supportsViewTransitions = inBrowser && !!document.startViewTransition;\nconst transitionEnabledOnThisPage = () => inBrowser && !!document.querySelector('[name=\"astro-view-transitions-enabled\"]');\nconst samePage = (thisLocation, otherLocation) => thisLocation.pathname === otherLocation.pathname && thisLocation.search === otherLocation.search;\nlet mostRecentNavigation;\nlet mostRecentTransition;\nlet originalLocation;\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(\"astro:page-load\");\nconst announce = () => {\n let div = document.createElement(\"div\");\n div.setAttribute(\"aria-live\", \"assertive\");\n div.setAttribute(\"aria-atomic\", \"true\");\n div.className = \"astro-route-announcer\";\n document.body.append(div);\n setTimeout(\n () => {\n let title = document.title || document.querySelector(\"h1\")?.textContent || location.pathname;\n div.textContent = title;\n },\n // Much thought went into this magic number; the gist is that screen readers\n // need to see that the element changed and might not do so if it happens\n // too quickly.\n 60\n );\n};\nconst PERSIST_ATTR = \"data-astro-transition-persist\";\nconst DIRECTION_ATTR = \"data-astro-transition\";\nconst OLD_NEW_ATTR = \"data-astro-transition-fallback\";\nconst VITE_ID = \"data-vite-dev-id\";\nlet parser;\nlet currentHistoryIndex = 0;\nif (inBrowser) {\n if (history.state) {\n currentHistoryIndex = history.state.index;\n scrollTo({ left: history.state.scrollX, top: history.state.scrollY });\n } else if (transitionEnabledOnThisPage()) {\n replaceState({ index: currentHistoryIndex, scrollX, scrollY }, \"\");\n history.scrollRestoration = \"manual\";\n }\n}\nasync function fetchHTML(href, init) {\n try {\n const res = await fetch(href, init);\n const contentType = res.headers.get(\"content-type\") ?? \"\";\n const mediaType = contentType.split(\";\", 1)[0].trim();\n if (mediaType !== \"text/html\" && mediaType !== \"application/xhtml+xml\") {\n return null;\n }\n const html = await res.text();\n return {\n html,\n redirected: res.redirected ? res.url : void 0,\n mediaType\n };\n } catch {\n return null;\n }\n}\nfunction getFallback() {\n const el = document.querySelector('[name=\"astro-view-transitions-fallback\"]');\n if (el) {\n return el.getAttribute(\"content\");\n }\n return \"animate\";\n}\nfunction runScripts() {\n let wait = Promise.resolve();\n for (const script of document.getElementsByTagName(\"script\")) {\n if (script.dataset.astroExec === \"\") continue;\n const type = script.getAttribute(\"type\");\n if (type && type !== \"module\" && type !== \"text/javascript\") continue;\n const newScript = document.createElement(\"script\");\n newScript.innerHTML = script.innerHTML;\n for (const attr of script.attributes) {\n if (attr.name === \"src\") {\n const p = new Promise((r) => {\n newScript.onload = newScript.onerror = r;\n });\n wait = wait.then(() => p);\n }\n newScript.setAttribute(attr.name, attr.value);\n }\n newScript.dataset.astroExec = \"\";\n script.replaceWith(newScript);\n }\n return wait;\n}\nconst moveToLocation = (to, from, options, pageTitleForBrowserHistory, historyState) => {\n const intraPage = samePage(from, to);\n const targetPageTitle = document.title;\n document.title = pageTitleForBrowserHistory;\n let scrolledToTop = false;\n if (to.href !== location.href && !historyState) {\n if (options.history === \"replace\") {\n const current = history.state;\n replaceState(\n {\n ...options.state,\n index: current.index,\n scrollX: current.scrollX,\n scrollY: current.scrollY\n },\n \"\",\n to.href\n );\n } else {\n pushState(\n { ...options.state, index: ++currentHistoryIndex, scrollX: 0, scrollY: 0 },\n \"\",\n to.href\n );\n }\n }\n document.title = targetPageTitle;\n originalLocation = to;\n if (!intraPage) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n scrolledToTop = true;\n }\n if (historyState) {\n scrollTo(historyState.scrollX, historyState.scrollY);\n } else {\n if (to.hash) {\n history.scrollRestoration = \"auto\";\n const savedState = history.state;\n location.href = to.href;\n if (!history.state) {\n replaceState(savedState, \"\");\n if (intraPage) {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n }\n }\n } else {\n if (!scrolledToTop) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n }\n }\n history.scrollRestoration = \"manual\";\n }\n};\nfunction preloadStyleLinks(newDocument) {\n const links = [];\n for (const el of newDocument.querySelectorAll(\"head link[rel=stylesheet]\")) {\n if (!document.querySelector(\n `[${PERSIST_ATTR}=\"${el.getAttribute(\n PERSIST_ATTR\n )}\"], link[rel=stylesheet][href=\"${el.getAttribute(\"href\")}\"]`\n )) {\n const c = document.createElement(\"link\");\n c.setAttribute(\"rel\", \"preload\");\n c.setAttribute(\"as\", \"style\");\n c.setAttribute(\"href\", el.getAttribute(\"href\"));\n links.push(\n new Promise((resolve) => {\n [\"load\", \"error\"].forEach((evName) => c.addEventListener(evName, resolve));\n document.head.append(c);\n })\n );\n }\n }\n return links;\n}\nasync function updateDOM(preparationEvent, options, currentTransition, historyState, fallback) {\n async function animate(phase) {\n function isInfinite(animation) {\n const effect = animation.effect;\n if (!effect || !(effect instanceof KeyframeEffect) || !effect.target) return false;\n const style = window.getComputedStyle(effect.target, effect.pseudoElement);\n return style.animationIterationCount === \"infinite\";\n }\n const currentAnimations = document.getAnimations();\n document.documentElement.setAttribute(OLD_NEW_ATTR, phase);\n const nextAnimations = document.getAnimations();\n const newAnimations = nextAnimations.filter(\n (a) => !currentAnimations.includes(a) && !isInfinite(a)\n );\n return Promise.allSettled(newAnimations.map((a) => a.finished));\n }\n if (fallback === \"animate\" && !currentTransition.transitionSkipped && !preparationEvent.signal.aborted) {\n try {\n await animate(\"old\");\n } catch {\n }\n }\n const pageTitleForBrowserHistory = document.title;\n const swapEvent = doSwap(preparationEvent, currentTransition.viewTransition);\n moveToLocation(swapEvent.to, swapEvent.from, options, pageTitleForBrowserHistory, historyState);\n triggerEvent(TRANSITION_AFTER_SWAP);\n if (fallback === \"animate\") {\n if (!currentTransition.transitionSkipped && !swapEvent.signal.aborted) {\n animate(\"new\").finally(() => currentTransition.viewTransitionFinished());\n } else {\n currentTransition.viewTransitionFinished();\n }\n }\n}\nfunction abortAndRecreateMostRecentNavigation() {\n mostRecentNavigation?.controller.abort();\n return mostRecentNavigation = {\n controller: new AbortController()\n };\n}\nasync function transition(direction, from, to, options, historyState) {\n const currentNavigation = abortAndRecreateMostRecentNavigation();\n if (!transitionEnabledOnThisPage() || location.origin !== to.origin) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n location.href = to.href;\n return;\n }\n const navigationType = historyState ? \"traverse\" : options.history === \"replace\" ? \"replace\" : \"push\";\n if (navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n if (samePage(from, to)) {\n if (direction !== \"back\" && to.hash || direction === \"back\" && from.hash) {\n moveToLocation(to, from, options, document.title, historyState);\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n }\n const prepEvent = await doPreparation(\n from,\n to,\n direction,\n navigationType,\n options.sourceElement,\n options.info,\n currentNavigation.controller.signal,\n options.formData,\n defaultLoader\n );\n if (prepEvent.defaultPrevented || prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n if (!prepEvent.signal.aborted) {\n location.href = to.href;\n }\n return;\n }\n async function defaultLoader(preparationEvent) {\n const href = preparationEvent.to.href;\n const init = { signal: preparationEvent.signal };\n if (preparationEvent.formData) {\n init.method = \"POST\";\n const form = preparationEvent.sourceElement instanceof HTMLFormElement ? preparationEvent.sourceElement : preparationEvent.sourceElement instanceof HTMLElement && \"form\" in preparationEvent.sourceElement ? preparationEvent.sourceElement.form : preparationEvent.sourceElement?.closest(\"form\");\n init.body = form?.attributes.getNamedItem(\"enctype\")?.value === \"application/x-www-form-urlencoded\" ? new URLSearchParams(preparationEvent.formData) : preparationEvent.formData;\n }\n const response = await fetchHTML(href, init);\n if (response === null) {\n preparationEvent.preventDefault();\n return;\n }\n if (response.redirected) {\n const redirectedTo = new URL(response.redirected);\n if (redirectedTo.origin !== preparationEvent.to.origin) {\n preparationEvent.preventDefault();\n return;\n }\n preparationEvent.to = redirectedTo;\n }\n parser ??= new DOMParser();\n preparationEvent.newDocument = parser.parseFromString(response.html, response.mediaType);\n preparationEvent.newDocument.querySelectorAll(\"noscript\").forEach((el) => el.remove());\n if (!preparationEvent.newDocument.querySelector('[name=\"astro-view-transitions-enabled\"]') && !preparationEvent.formData) {\n preparationEvent.preventDefault();\n return;\n }\n const links = preloadStyleLinks(preparationEvent.newDocument);\n links.length && !preparationEvent.signal.aborted && await Promise.all(links);\n if (import.meta.env.DEV && !preparationEvent.signal.aborted)\n await prepareForClientOnlyComponents(\n preparationEvent.newDocument,\n preparationEvent.to,\n preparationEvent.signal\n );\n }\n async function abortAndRecreateMostRecentTransition() {\n if (mostRecentTransition) {\n if (mostRecentTransition.viewTransition) {\n try {\n mostRecentTransition.viewTransition.skipTransition();\n } catch {\n }\n try {\n await mostRecentTransition.viewTransition.updateCallbackDone;\n } catch {\n }\n }\n }\n return mostRecentTransition = { transitionSkipped: false };\n }\n const currentTransition = await abortAndRecreateMostRecentTransition();\n if (prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n document.documentElement.setAttribute(DIRECTION_ATTR, prepEvent.direction);\n if (supportsViewTransitions) {\n currentTransition.viewTransition = document.startViewTransition(\n async () => await updateDOM(prepEvent, options, currentTransition, historyState)\n );\n } else {\n const updateDone = (async () => {\n await Promise.resolve();\n await updateDOM(prepEvent, options, currentTransition, historyState, getFallback());\n return void 0;\n })();\n currentTransition.viewTransition = {\n updateCallbackDone: updateDone,\n // this is about correct\n ready: updateDone,\n // good enough\n // Finished promise could have been done better: finished rejects iff updateDone does.\n // Our simulation always resolves, never rejects.\n finished: new Promise((r) => currentTransition.viewTransitionFinished = r),\n // see end of updateDOM\n skipTransition: () => {\n currentTransition.transitionSkipped = true;\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n }\n };\n }\n currentTransition.viewTransition?.updateCallbackDone.finally(async () => {\n await runScripts();\n onPageLoad();\n announce();\n });\n currentTransition.viewTransition?.finished.finally(() => {\n currentTransition.viewTransition = void 0;\n if (currentTransition === mostRecentTransition) mostRecentTransition = void 0;\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n document.documentElement.removeAttribute(DIRECTION_ATTR);\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n });\n try {\n await currentTransition.viewTransition?.updateCallbackDone;\n } catch (e) {\n const err = e;\n console.log(\"[astro]\", err.name, err.message, err.stack);\n }\n}\nlet navigateOnServerWarned = false;\nasync function navigate(href, options) {\n if (inBrowser === false) {\n if (!navigateOnServerWarned) {\n const warning = new Error(\n \"The view transitions client API was called during a server side render. This may be unintentional as the navigate() function is expected to be called in response to user interactions. Please make sure that your usage is correct.\"\n );\n warning.name = \"Warning\";\n console.warn(warning);\n navigateOnServerWarned = true;\n }\n return;\n }\n await transition(\"forward\", originalLocation, new URL(href, location.href), options ?? {});\n}\nfunction onPopState(ev) {\n if (!transitionEnabledOnThisPage() && ev.state) {\n location.reload();\n return;\n }\n if (ev.state === null) {\n return;\n }\n const state = history.state;\n const nextIndex = state.index;\n const direction = nextIndex > currentHistoryIndex ? \"forward\" : \"back\";\n currentHistoryIndex = nextIndex;\n transition(direction, originalLocation, new URL(location.href), {}, state);\n}\nconst onScrollEnd = () => {\n if (history.state && (scrollX !== history.state.scrollX || scrollY !== history.state.scrollY)) {\n updateScrollPosition({ scrollX, scrollY });\n }\n};\nif (inBrowser) {\n if (supportsViewTransitions || getFallback() !== \"none\") {\n originalLocation = new URL(location.href);\n addEventListener(\"popstate\", onPopState);\n addEventListener(\"load\", onPageLoad);\n if (\"onscrollend\" in window) addEventListener(\"scrollend\", onScrollEnd);\n else {\n let intervalId, lastY, lastX, lastIndex;\n const scrollInterval = () => {\n if (lastIndex !== history.state?.index) {\n clearInterval(intervalId);\n intervalId = void 0;\n return;\n }\n if (lastY === scrollY && lastX === scrollX) {\n clearInterval(intervalId);\n intervalId = void 0;\n onScrollEnd();\n return;\n } else {\n lastY = scrollY, lastX = scrollX;\n }\n };\n addEventListener(\n \"scroll\",\n () => {\n if (intervalId !== void 0) return;\n lastIndex = history.state?.index, lastY = scrollY, lastX = scrollX;\n intervalId = window.setInterval(scrollInterval, 50);\n },\n { passive: true }\n );\n }\n }\n for (const script of document.getElementsByTagName(\"script\")) {\n script.dataset.astroExec = \"\";\n }\n}\nasync function prepareForClientOnlyComponents(newDocument, toLocation, signal) {\n if (newDocument.body.querySelector(`astro-island[client='only']`)) {\n const nextPage = document.createElement(\"iframe\");\n nextPage.src = toLocation.href;\n nextPage.style.display = \"none\";\n document.body.append(nextPage);\n nextPage.contentWindow.console = Object.keys(console).reduce((acc, key) => {\n acc[key] = () => {\n };\n return acc;\n }, {});\n await hydrationDone(nextPage);\n const nextHead = nextPage.contentDocument?.head;\n if (nextHead) {\n const viteIds = [...nextHead.querySelectorAll(`style[${VITE_ID}]`)].map(\n (style) => style.getAttribute(VITE_ID)\n );\n viteIds.forEach((id) => {\n const style = nextHead.querySelector(`style[${VITE_ID}=\"${id}\"]`);\n if (style && !newDocument.head.querySelector(`style[${VITE_ID}=\"${id}\"]`)) {\n newDocument.head.appendChild(style.cloneNode(true));\n }\n });\n }\n async function hydrationDone(loadingPage) {\n if (!signal.aborted) {\n await new Promise(\n (r) => loadingPage.contentWindow?.addEventListener(\"load\", r, { once: true })\n );\n }\n return new Promise(async (r) => {\n for (let count = 0; count <= 20; ++count) {\n if (signal.aborted) break;\n if (!loadingPage.contentDocument.body.querySelector(\"astro-island[ssr]\")) break;\n await new Promise((r2) => setTimeout(r2, 50));\n }\n r();\n });\n }\n }\n}\nexport {\n getFallback,\n navigate,\n supportsViewTransitions,\n transitionEnabledOnThisPage,\n updateScrollPosition\n};\n"],"names":["PERSIST_ATTR","deselectScripts","doc","s1","s2","swapRootAttributes","html","astroAttributes","name","value","swapHeadElements","el","newEl","persistedHeadElement","swapBodyElement","newElement","oldElement","id","shouldCopyProps","isSameProps","saveFocus","activeElement","start","end","restoreFocus","newDoc","href","persistProps","oldEl","swap","restoreFocusFunction","TRANSITION_BEFORE_PREPARATION","TRANSITION_AFTER_PREPARATION","TRANSITION_BEFORE_SWAP","TRANSITION_AFTER_SWAP","triggerEvent","BeforeEvent","type","eventInitDict","from","to","direction","navigationType","sourceElement","info","newDocument","signal","TransitionBeforePreparationEvent","formData","loader","TransitionBeforeSwapEvent","afterPreparation","viewTransition","doPreparation","defaultLoader","event","updateScrollPosition","doSwap","pushState","replaceState","positions","supportsViewTransitions","transitionEnabledOnThisPage","samePage","thisLocation","otherLocation","mostRecentNavigation","mostRecentTransition","originalLocation","onPageLoad","announce","div","title","DIRECTION_ATTR","OLD_NEW_ATTR","parser","currentHistoryIndex","fetchHTML","init","res","mediaType","getFallback","runScripts","wait","script","newScript","attr","p","r","moveToLocation","options","pageTitleForBrowserHistory","historyState","intraPage","targetPageTitle","scrolledToTop","current","savedState","preloadStyleLinks","links","c","resolve","evName","updateDOM","preparationEvent","currentTransition","fallback","animate","phase","isInfinite","animation","effect","currentAnimations","newAnimations","a","swapEvent","abortAndRecreateMostRecentNavigation","transition","currentNavigation","prepEvent","form","response","redirectedTo","abortAndRecreateMostRecentTransition","updateDone","e","err","navigate","onPopState","ev","state","nextIndex","onScrollEnd","intervalId","lastY","lastX","lastIndex","scrollInterval"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/Target/chunks/Base_C6QPIOhz.mjs.map b/Target/chunks/Base_C6QPIOhz.mjs.map new file mode 100644 index 00000000..21424f46 --- /dev/null +++ b/Target/chunks/Base_C6QPIOhz.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Base_C6QPIOhz.mjs","sources":["../../Source/Component/Footer.astro","../../Source/Asset/PlayForm.svg?raw","../../Source/Component/Header.astro","../../../../../node_modules/astro-capo/src/capo/rules.ts","../../../../../node_modules/astro-capo/src/capo/index.ts","../../../../../node_modules/astro-capo/src/Head.ts","../../../../../node_modules/astro/components/ClientRouter.astro","../../Source/Layout/Base.astro"],"sourcesContent":["\n\n\n","export default \"\\n \\n\\n\"","---\nimport DarkPlayForm from \"@Asset/Dark/PlayForm.svg?raw\";\nimport PlayForm from \"@Asset/PlayForm.svg?raw\";\n\nconst Index = Astro.url.pathname === \"/\" ? \"-1\" : \"\";\n---\n\n
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t
\n
\n\n\n","import type { ElementNode } from \"ultrahtml\";\nimport { renderSync } from 'ultrahtml';\n\ntype Attributes = Record;\n\nfunction has(value: unknown): value is string {\n return typeof value === 'string';\n}\nfunction is(a: unknown, b: T): a is T {\n return a === b;\n}\nfunction any(a: string | undefined, b: string[]): a is string {\n return has(a) && b.includes(a.toLowerCase());\n}\n\nexport const ElementWeights: Record = {\n META: 10,\n TITLE: 9,\n PRECONNECT: 8,\n ASYNC_SCRIPT: 7,\n IMPORT_STYLES: 6,\n SYNC_SCRIPT: 5,\n SYNC_STYLES: 4,\n PRELOAD: 3,\n DEFER_SCRIPT: 2,\n PREFETCH_PRERENDER: 1,\n OTHER: 0\n};\n\nexport const ElementDetectors = {\n META: isMeta,\n TITLE: isTitle,\n PRECONNECT: isPreconnect,\n DEFER_SCRIPT: isDeferScript,\n ASYNC_SCRIPT: isAsyncScript,\n IMPORT_STYLES: isImportStyles,\n SYNC_SCRIPT: isSyncScript,\n SYNC_STYLES: isSyncStyles,\n PRELOAD: isPreload,\n PREFETCH_PRERENDER: isPrefetchPrerender\n}\n\nexport const META_HTTP_EQUIV_KEYWORDS = [\n 'accept-ch',\n 'content-security-policy',\n 'content-type',\n 'default-style',\n 'delegate-ch',\n 'origin-trial',\n 'x-dns-prefetch-control'\n];\n\n// meta:is([charset], ${httpEquivSelector}, [name=viewport]), base\nexport function isMeta(name: string, a: Attributes) {\n if (name === 'base') return true;\n if (name !== 'meta') return false;\n return has(a.charset) || is(a.name, 'viewport') || any(a['http-equiv'], META_HTTP_EQUIV_KEYWORDS)\n}\n\n// title\nexport function isTitle(name: string) {\n return name === 'title';\n}\n\n// link[rel=preconnect]\nexport function isPreconnect(name: string, { rel }: Attributes) {\n return name === 'link' && is(rel, 'preconnect');\n}\n\n// script[src][async]\nexport function isAsyncScript(name: string, { src, async }: Attributes) {\n return name === 'script' && has(src) && has(async);\n}\n\n// style that contains @import\nexport function isImportStyles(name: string, a: Attributes, children: string) {\n const importRe = /@import/;\n\n if (name === 'style') {\n return importRe.test(children);\n }\n\n // Can't support external stylesheets on the server\n return false;\n}\n\n// script:not([src][defer],[src][type=module],[src][async],[type*=json])\nexport function isSyncScript(name: string, { src, defer, async, type = '' }: Attributes) {\n if (name !== 'script') return false;\n return !(has(src) && (has(defer) || has(async) || is(type, 'module')) || type.includes('json'))\n}\n\n// link[rel=stylesheet],style\nexport function isSyncStyles(name: string, { rel }: Attributes) {\n if (name === 'style') return true;\n return name === 'link' && is(rel, 'stylesheet')\n}\n\n// link:is([rel=preload], [rel=modulepreload])\nexport function isPreload(name: string, { rel }: Attributes) {\n return name === 'link' && any(rel, ['preload', 'modulepreload']);\n}\n\n// script[src][defer], script:not([src][async])[src][type=module]\nexport function isDeferScript(name: string, { src, defer, async, type }: Attributes) {\n if (name !== 'script') return false;\n return (has(src) && has(defer)) || (has(src) && is(type, 'module') && !has(async));\n}\n\n// link:is([rel=prefetch], [rel=dns-prefetch], [rel=prerender])\nexport function isPrefetchPrerender(name: string, { rel }: Attributes) {\n return name === 'link' && any(rel, ['prefetch', 'dns-prefetch', 'prerender'])\n}\n\n// meta[http-equiv=\"origin-trial\"i]\nexport function isOriginTrial(name: string, { 'http-equiv': http }: Attributes) {\n return name === 'meta' && is(http, 'origin-trial');\n}\n\n// meta[http-equiv=\"Content-Security-Policy\" i]\nexport function isMetaCSP(name: string, { 'http-equiv': http }: Attributes) {\n return name === 'meta' && is(http, 'Content-Security-Policy');\n}\n\nexport function getWeight(element: ElementNode) {\n for (const [id, detector] of Object.entries(ElementDetectors)) {\n const children = (element.name === 'style' && element.children.length > 0) ? renderSync(element) : '';\n if (detector(element.name, element.attributes, children)) {\n return ElementWeights[id];\n }\n }\n return ElementWeights.OTHER;\n}\n","import type { ElementNode } from 'ultrahtml';\nimport { parse, walkSync, renderSync, ELEMENT_NODE } from 'ultrahtml';\nimport { getWeight } from './rules.ts';\n\nexport default function capo(html: string) {\n const ast = parse(html);\n try {\n walkSync(ast, (node, parent, index) => {\n if (node.type === ELEMENT_NODE && node.name === 'head') {\n if (parent) {\n parent.children.splice(index, 1, getSortedHead(node));\n throw 'done' // short-circuit\n }\n }\n })\n } catch (e) {\n if (e !== 'done') throw e;\n }\n return renderSync(ast);\n}\n\nfunction getSortedHead(head: ElementNode): ElementNode {\n const weightedChildren = head.children.map((node) => {\n if (node.type === ELEMENT_NODE) {\n const weight = getWeight(node);\n return [weight, node];\n }\n }).filter(Boolean) as [number, ElementNode][]\n const children = weightedChildren.sort((a, b) => b[0] - a[0]).map(([_, element]) => element)\n return { ...head, children };\n}\n","import type { SSRResult } from \"astro\";\n// @ts-expect-error using astro internals\nimport {\n\tcreateComponent,\n\trenderSlotToString,\n\tspreadAttributes,\n\tunescapeHTML,\n} from \"astro/runtime/server/index.js\";\n// @ts-expect-error using astro internals\nimport { renderAllHeadContent } from \"astro/runtime/server/render/head.js\";\n\nimport capo from \"./capo/index.ts\";\n\nexport const Head = createComponent({\n\tfactory: async (\n\t\tresult: SSRResult,\n\t\tprops: Record,\n\t\tslots: Record,\n\t) => {\n\t\tlet head = \"\";\n\t\thead += ``;\n\t\thead += await renderSlotToString(result, slots.default);\n\t\thead += renderAllHeadContent(result);\n\t\thead += \"\";\n\t\treturn unescapeHTML(capo(head));\n\t},\n});\n","---\ntype Fallback = 'none' | 'animate' | 'swap';\n\nexport interface Props {\n\tfallback?: Fallback;\n\t/** @deprecated handleForms is enabled by default in Astro 4.0\n\t *\n\t * Set `data-astro-reload` on your form to opt-out of the default behavior.\n\t */\n\thandleForms?: boolean;\n}\n\nconst { fallback = 'animate' } = Astro.props;\n---\n\n\n\n\n\n","---\nimport Footer from \"@Component/Footer.astro\";\nimport Header from \"@Component/Header.astro\";\n\nimport \"@Stylesheet/Base.css\";\n\nimport { Head } from \"astro-capo\";\nimport { ClientRouter } from \"astro:transitions\";\n\nconst {\n\tFont = [],\n\tTitle = \"☁️ PlayForm —\",\n\tDescription = \"☁️ Cloud —\",\n} = Astro.props;\n\ninterface Props {\n\tFont?: string[];\n\tTitle?: string;\n\tDescription?: string;\n}\n\nconst Link = (Link: string[] = []) =>\n\tLink.map(\n\t\t(Link) => ``,\n\t).join(\"\\n\");\n---\n\n\n\n\t\n\t\t\n\n\t\t\n\t\t{Title}\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\n\t\t\n\n\t\t Font))} />\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\n\n"],"names":["$$maybeRenderHead","$$renderSlot","$$Astro","$$createAstro","$$createComponent","Astro","$$render","$$addAttribute","$$renderComponent","$$result","$$unescapeHTML","$$renderScript","Link","Font","ClientRouter","Header","Footer"],"mappings":"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","x_google_ignoreList":[3,4,5,6]} \ No newline at end of file diff --git a/Target/chunks/Base_DV7gkH_j.mjs.map b/Target/chunks/Base_DV7gkH_j.mjs.map deleted file mode 100644 index f2a6d69a..00000000 --- a/Target/chunks/Base_DV7gkH_j.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Base_DV7gkH_j.mjs","sources":["../../Source/Component/Footer.astro","../../Source/Asset/PlayForm.svg?raw","../../Source/Component/Header.astro","../../../../../node_modules/astro-capo/src/capo/rules.ts","../../../../../node_modules/astro-capo/src/capo/index.ts","../../../../../node_modules/astro-capo/src/Head.ts","../../../../../node_modules/astro/components/ClientRouter.astro","../../Source/Layout/Base.astro"],"sourcesContent":["\n\n\n","export default \"\\n \\n\\n\"","---\nimport DarkPlayForm from \"@Asset/Dark/PlayForm.svg?raw\";\nimport PlayForm from \"@Asset/PlayForm.svg?raw\";\n\nconst Index = Astro.url.pathname === \"/\" ? \"-1\" : \"\";\n---\n\n
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t
\n
\n\n\n","import type { ElementNode } from \"ultrahtml\";\nimport { renderSync } from 'ultrahtml';\n\ntype Attributes = Record;\n\nfunction has(value: unknown): value is string {\n return typeof value === 'string';\n}\nfunction is(a: unknown, b: T): a is T {\n return a === b;\n}\nfunction any(a: string | undefined, b: string[]): a is string {\n return has(a) && b.includes(a.toLowerCase());\n}\n\nexport const ElementWeights: Record = {\n META: 10,\n TITLE: 9,\n PRECONNECT: 8,\n ASYNC_SCRIPT: 7,\n IMPORT_STYLES: 6,\n SYNC_SCRIPT: 5,\n SYNC_STYLES: 4,\n PRELOAD: 3,\n DEFER_SCRIPT: 2,\n PREFETCH_PRERENDER: 1,\n OTHER: 0\n};\n\nexport const ElementDetectors = {\n META: isMeta,\n TITLE: isTitle,\n PRECONNECT: isPreconnect,\n DEFER_SCRIPT: isDeferScript,\n ASYNC_SCRIPT: isAsyncScript,\n IMPORT_STYLES: isImportStyles,\n SYNC_SCRIPT: isSyncScript,\n SYNC_STYLES: isSyncStyles,\n PRELOAD: isPreload,\n PREFETCH_PRERENDER: isPrefetchPrerender\n}\n\nexport const META_HTTP_EQUIV_KEYWORDS = [\n 'accept-ch',\n 'content-security-policy',\n 'content-type',\n 'default-style',\n 'delegate-ch',\n 'origin-trial',\n 'x-dns-prefetch-control'\n];\n\n// meta:is([charset], ${httpEquivSelector}, [name=viewport]), base\nexport function isMeta(name: string, a: Attributes) {\n if (name === 'base') return true;\n if (name !== 'meta') return false;\n return has(a.charset) || is(a.name, 'viewport') || any(a['http-equiv'], META_HTTP_EQUIV_KEYWORDS)\n}\n\n// title\nexport function isTitle(name: string) {\n return name === 'title';\n}\n\n// link[rel=preconnect]\nexport function isPreconnect(name: string, { rel }: Attributes) {\n return name === 'link' && is(rel, 'preconnect');\n}\n\n// script[src][async]\nexport function isAsyncScript(name: string, { src, async }: Attributes) {\n return name === 'script' && has(src) && has(async);\n}\n\n// style that contains @import\nexport function isImportStyles(name: string, a: Attributes, children: string) {\n const importRe = /@import/;\n\n if (name === 'style') {\n return importRe.test(children);\n }\n\n // Can't support external stylesheets on the server\n return false;\n}\n\n// script:not([src][defer],[src][type=module],[src][async],[type*=json])\nexport function isSyncScript(name: string, { src, defer, async, type = '' }: Attributes) {\n if (name !== 'script') return false;\n return !(has(src) && (has(defer) || has(async) || is(type, 'module')) || type.includes('json'))\n}\n\n// link[rel=stylesheet],style\nexport function isSyncStyles(name: string, { rel }: Attributes) {\n if (name === 'style') return true;\n return name === 'link' && is(rel, 'stylesheet')\n}\n\n// link:is([rel=preload], [rel=modulepreload])\nexport function isPreload(name: string, { rel }: Attributes) {\n return name === 'link' && any(rel, ['preload', 'modulepreload']);\n}\n\n// script[src][defer], script:not([src][async])[src][type=module]\nexport function isDeferScript(name: string, { src, defer, async, type }: Attributes) {\n if (name !== 'script') return false;\n return (has(src) && has(defer)) || (has(src) && is(type, 'module') && !has(async));\n}\n\n// link:is([rel=prefetch], [rel=dns-prefetch], [rel=prerender])\nexport function isPrefetchPrerender(name: string, { rel }: Attributes) {\n return name === 'link' && any(rel, ['prefetch', 'dns-prefetch', 'prerender'])\n}\n\n// meta[http-equiv=\"origin-trial\"i]\nexport function isOriginTrial(name: string, { 'http-equiv': http }: Attributes) {\n return name === 'meta' && is(http, 'origin-trial');\n}\n\n// meta[http-equiv=\"Content-Security-Policy\" i]\nexport function isMetaCSP(name: string, { 'http-equiv': http }: Attributes) {\n return name === 'meta' && is(http, 'Content-Security-Policy');\n}\n\nexport function getWeight(element: ElementNode) {\n for (const [id, detector] of Object.entries(ElementDetectors)) {\n const children = (element.name === 'style' && element.children.length > 0) ? renderSync(element) : '';\n if (detector(element.name, element.attributes, children)) {\n return ElementWeights[id];\n }\n }\n return ElementWeights.OTHER;\n}\n","import type { ElementNode } from 'ultrahtml';\nimport { parse, walkSync, renderSync, ELEMENT_NODE } from 'ultrahtml';\nimport { getWeight } from './rules.ts';\n\nexport default function capo(html: string) {\n const ast = parse(html);\n try {\n walkSync(ast, (node, parent, index) => {\n if (node.type === ELEMENT_NODE && node.name === 'head') {\n if (parent) {\n parent.children.splice(index, 1, getSortedHead(node));\n throw 'done' // short-circuit\n }\n }\n })\n } catch (e) {\n if (e !== 'done') throw e;\n }\n return renderSync(ast);\n}\n\nfunction getSortedHead(head: ElementNode): ElementNode {\n const weightedChildren = head.children.map((node) => {\n if (node.type === ELEMENT_NODE) {\n const weight = getWeight(node);\n return [weight, node];\n }\n }).filter(Boolean) as [number, ElementNode][]\n const children = weightedChildren.sort((a, b) => b[0] - a[0]).map(([_, element]) => element)\n return { ...head, children };\n}\n","import type { SSRResult } from \"astro\";\n// @ts-expect-error using astro internals\nimport { renderAllHeadContent } from \"astro/runtime/server/render/head.js\";\n// @ts-expect-error using astro internals\nimport { createComponent, unescapeHTML, renderSlotToString, spreadAttributes } from \"astro/runtime/server/index.js\";\nimport capo from \"./capo/index.ts\";\n\nexport const Head = createComponent({\n factory: async (result: SSRResult, props: Record, slots: Record) => {\n let head = '';\n head += ``\n head += await renderSlotToString(result, slots.default);\n head += renderAllHeadContent(result);\n head += '';\n return unescapeHTML(capo(head));\n }\n})\n","---\ntype Fallback = 'none' | 'animate' | 'swap';\n\nexport interface Props {\n\tfallback?: Fallback;\n\t/** @deprecated handleForms is enabled by default in Astro 4.0\n\t *\n\t * Set `data-astro-reload` on your form to opt-out of the default behavior.\n\t */\n\thandleForms?: boolean;\n}\n\nconst { fallback = 'animate' } = Astro.props;\n---\n\n\n\n\n\n","---\nimport Footer from \"@Component/Footer.astro\";\nimport Header from \"@Component/Header.astro\";\n\nimport \"@Stylesheet/Base.css\";\n\nimport { Head } from \"astro-capo\";\nimport { ClientRouter } from \"astro:transitions\";\n\nconst {\n\tFont = [],\n\tTitle = \"☁️ PlayForm —\",\n\tDescription = \"☁️ Cloud —\",\n} = Astro.props;\n\ninterface Props {\n\tFont?: string[];\n\tTitle?: string;\n\tDescription?: string;\n}\n\nconst Link = (Link: string[] = []) =>\n\tLink.map(\n\t\t(Link) => ``,\n\t).join(\"\\n\");\n---\n\n\n\n\t\n\t\t\n\n\t\t\n\t\t{Title}\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\n\t\t\n\n\t\t Font))} />\n\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\n\n"],"names":["$$maybeRenderHead","$$renderSlot","$$Astro","$$createAstro","$$createComponent","Astro","$$render","$$addAttribute","$$renderComponent","$$result","$$unescapeHTML","$$renderScript","Link","Font","ClientRouter","Header","Footer"],"mappings":"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","x_google_ignoreList":[3,4,5,6]} \ No newline at end of file diff --git a/Target/chunks/astro/server_B1aewJ70.mjs.map b/Target/chunks/astro/server_B1aewJ70.mjs.map deleted file mode 100644 index 08a1d662..00000000 --- a/Target/chunks/astro/server_B1aewJ70.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server_B1aewJ70.mjs","sources":["../../../../../../node_modules/astro/dist/core/errors/errors-data.js","../../../../../../node_modules/astro/dist/core/errors/utils.js","../../../../../../node_modules/astro/dist/core/errors/printer.js","../../../../../../node_modules/astro/dist/core/errors/errors.js","../../../../../../node_modules/astro/dist/runtime/server/astro-component.js","../../../../../../node_modules/astro/dist/core/constants.js","../../../../../../node_modules/astro/dist/runtime/server/astro-global.js","../../../../../../node_modules/astro/dist/runtime/server/util.js","../../../../../../node_modules/astro/dist/runtime/server/escape.js","../../../../../../node_modules/astro/dist/runtime/server/render/instruction.js","../../../../../../node_modules/astro/dist/runtime/server/serialize.js","../../../../../../node_modules/astro/dist/runtime/server/hydration.js","../../../../../../node_modules/astro/dist/runtime/server/shorthash.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/factory.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/head-and-content.js","../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt-dev.js","../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt.js","../../../../../../node_modules/astro/dist/runtime/server/scripts.js","../../../../../../node_modules/astro/dist/runtime/server/render/util.js","../../../../../../node_modules/astro/dist/runtime/server/render/head.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/render-template.js","../../../../../../node_modules/astro/dist/runtime/server/render/slot.js","../../../../../../node_modules/astro/dist/runtime/server/render/common.js","../../../../../../node_modules/astro/dist/runtime/server/render/any.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/instance.js","../../../../../../node_modules/astro/dist/runtime/server/render/dom.js","../../../../../../node_modules/astro/dist/core/encryption.js","../../../../../../node_modules/astro/dist/runtime/server/render/server-islands.js","../../../../../../node_modules/astro/dist/runtime/server/render/component.js","../../../../../../node_modules/astro/dist/runtime/server/render/script.js","../../../../../../node_modules/astro/dist/runtime/server/transition.js","../../../../../../node_modules/astro/dist/runtime/server/index.js"],"sourcesContent":["const UnknownCompilerError = {\n name: \"UnknownCompilerError\",\n title: \"Unknown compiler error.\",\n hint: \"This is almost always a problem with the Astro compiler, not your code. Please open an issue at https://astro.build/issues/compiler.\"\n};\nconst ClientAddressNotAvailable = {\n name: \"ClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in current adapter.\",\n message: (adapterName) => `\\`Astro.clientAddress\\` is not available in the \\`${adapterName}\\` adapter. File an issue with the adapter to add support.`\n};\nconst PrerenderClientAddressNotAvailable = {\n name: \"PrerenderClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` cannot be used inside prerendered routes.\",\n message: `\\`Astro.clientAddress\\` cannot be used inside prerendered routes`\n};\nconst StaticClientAddressNotAvailable = {\n name: \"StaticClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in prerendered pages.\",\n message: \"`Astro.clientAddress` is only available on pages that are server-rendered.\",\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.\"\n};\nconst NoMatchingStaticPathFound = {\n name: \"NoMatchingStaticPathFound\",\n title: \"No static path found for requested path.\",\n message: (pathName) => `A \\`getStaticPaths()\\` route pattern was matched, but no matching static path was found for requested path \\`${pathName}\\`.`,\n hint: (possibleRoutes) => `Possible dynamic routes being matched: ${possibleRoutes.join(\", \")}.`\n};\nconst OnlyResponseCanBeReturned = {\n name: \"OnlyResponseCanBeReturned\",\n title: \"Invalid type returned by Astro page.\",\n message: (route, returnedValue) => `Route \\`${route ? route : \"\"}\\` returned a \\`${returnedValue}\\`. Only a [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) can be returned from Astro files.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/#response for more information.\"\n};\nconst MissingMediaQueryDirective = {\n name: \"MissingMediaQueryDirective\",\n title: \"Missing value for `client:media` directive.\",\n message: 'Media query not provided for `client:media` directive. A media query similar to `client:media=\"(max-width: 600px)\"` must be provided'\n};\nconst NoMatchingRenderer = {\n name: \"NoMatchingRenderer\",\n title: \"No matching renderer found.\",\n message: (componentName, componentExtension, plural, validRenderersCount) => `Unable to render \\`${componentName}\\`.\n\n${validRenderersCount > 0 ? `There ${plural ? \"are\" : \"is\"} ${validRenderersCount} renderer${plural ? \"s\" : \"\"} configured in your \\`astro.config.mjs\\` file,\nbut ${plural ? \"none were\" : \"it was not\"} able to server-side render \\`${componentName}\\`.` : `No valid renderer was found ${componentExtension ? `for the \\`.${componentExtension}\\` file extension.` : `for this file extension.`}`}`,\n hint: (probableRenderers) => `Did you mean to enable the ${probableRenderers} integration?\n\nSee https://docs.astro.build/en/guides/framework-components/ for more information on how to install and configure integrations.`\n};\nconst NoClientEntrypoint = {\n name: \"NoClientEntrypoint\",\n title: \"No client entrypoint specified in renderer.\",\n message: (componentName, clientDirective, rendererName) => `\\`${componentName}\\` component has a \\`client:${clientDirective}\\` directive, but no client entrypoint was provided by \\`${rendererName}\\`.`,\n hint: \"See https://docs.astro.build/en/reference/integrations-reference/#addrenderer-option for more information on how to configure your renderer.\"\n};\nconst NoClientOnlyHint = {\n name: \"NoClientOnlyHint\",\n title: \"Missing hint on client:only directive.\",\n message: (componentName) => `Unable to render \\`${componentName}\\`. When using the \\`client:only\\` hydration strategy, Astro needs a hint to use the correct renderer.`,\n hint: (probableRenderers) => `Did you mean to pass \\`client:only=\"${probableRenderers}\"\\`? See https://docs.astro.build/en/reference/directives-reference/#clientonly for more information on client:only`\n};\nconst InvalidGetStaticPathParam = {\n name: \"InvalidGetStaticPathParam\",\n title: \"Invalid value returned by a `getStaticPaths` path.\",\n message: (paramType) => `Invalid params given to \\`getStaticPaths\\` path. Expected an \\`object\\`, got \\`${paramType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsEntry = {\n name: \"InvalidGetStaticPathsEntry\",\n title: \"Invalid entry inside getStaticPath's return value\",\n message: (entryType) => `Invalid entry returned by getStaticPaths. Expected an object, got \\`${entryType}\\``,\n hint: \"If you're using a `.map` call, you might be looking for `.flatMap()` instead. See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsReturn = {\n name: \"InvalidGetStaticPathsReturn\",\n title: \"Invalid value returned by getStaticPaths.\",\n message: (returnType) => `Invalid type returned by \\`getStaticPaths\\`. Expected an \\`array\\`, got \\`${returnType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsExpectedParams = {\n name: \"GetStaticPathsExpectedParams\",\n title: \"Missing params property on `getStaticPaths` route.\",\n message: \"Missing or empty required `params` property on `getStaticPaths` route.\",\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsInvalidRouteParam = {\n name: \"GetStaticPathsInvalidRouteParam\",\n title: \"Invalid value for `getStaticPaths` route parameter.\",\n message: (key, value, valueType) => `Invalid getStaticPaths route parameter for \\`${key}\\`. Expected undefined, a string or a number, received \\`${valueType}\\` (\\`${value}\\`)`,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsRequired = {\n name: \"GetStaticPathsRequired\",\n title: \"`getStaticPaths()` function required for dynamic routes.\",\n message: \"`getStaticPaths()` function is required for dynamic routes. Make sure that you `export` a `getStaticPaths` function from your dynamic route.\",\n hint: `See https://docs.astro.build/en/guides/routing/#dynamic-routes for more information on dynamic routes.\n\n\tIf you meant for this route to be server-rendered, set \\`export const prerender = false;\\` in the page.`\n};\nconst ReservedSlotName = {\n name: \"ReservedSlotName\",\n title: \"Invalid slot name.\",\n message: (slotName) => `Unable to create a slot named \\`${slotName}\\`. \\`${slotName}\\` is a reserved slot name. Please update the name of this slot.`\n};\nconst NoAdapterInstalled = {\n name: \"NoAdapterInstalled\",\n title: \"Cannot use Server-side Rendering without an adapter.\",\n message: `Cannot use server-rendered pages without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information.\"\n};\nconst AdapterSupportOutputMismatch = {\n name: \"AdapterSupportOutputMismatch\",\n title: \"Adapter does not support server output.\",\n message: (adapterName) => `The \\`${adapterName}\\` adapter is configured to output a static website, but the project contains server-rendered pages. Please install and configure the appropriate server adapter for your final deployment.`\n};\nconst NoAdapterInstalledServerIslands = {\n name: \"NoAdapterInstalledServerIslands\",\n title: \"Cannot use Server Islands without an adapter.\",\n message: `Cannot use server islands without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://5-0-0-beta.docs.astro.build/en/guides/on-demand-rendering/ for more information.\"\n};\nconst NoMatchingImport = {\n name: \"NoMatchingImport\",\n title: \"No import found for component.\",\n message: (componentName) => `Could not render \\`${componentName}\\`. No matching import has been found for \\`${componentName}\\`.`,\n hint: \"Please make sure the component is properly imported.\"\n};\nconst InvalidPrerenderExport = {\n name: \"InvalidPrerenderExport\",\n title: \"Invalid prerender export.\",\n message(prefix, suffix, isHydridOutput) {\n const defaultExpectedValue = isHydridOutput ? \"false\" : \"true\";\n let msg = `A \\`prerender\\` export has been detected, but its value cannot be statically analyzed.`;\n if (prefix !== \"const\") msg += `\nExpected \\`const\\` declaration but got \\`${prefix}\\`.`;\n if (suffix !== \"true\")\n msg += `\nExpected \\`${defaultExpectedValue}\\` value but got \\`${suffix}\\`.`;\n return msg;\n },\n hint: \"Mutable values declared at runtime are not supported. Please make sure to use exactly `export const prerender = true`.\"\n};\nconst InvalidComponentArgs = {\n name: \"InvalidComponentArgs\",\n title: \"Invalid component arguments.\",\n message: (name) => `Invalid arguments passed to${name ? ` <${name}>` : \"\"} component.`,\n hint: \"Astro components cannot be rendered directly via function call, such as `Component()` or `{items.map(Component)}`.\"\n};\nconst PageNumberParamNotFound = {\n name: \"PageNumberParamNotFound\",\n title: \"Page number param not found.\",\n message: (paramName) => `[paginate()] page number param \\`${paramName}\\` not found in your filepath.`,\n hint: \"Rename your file to `[page].astro` or `[...page].astro`.\"\n};\nconst ImageMissingAlt = {\n name: \"ImageMissingAlt\",\n title: 'Image missing required \"alt\" property.',\n message: 'Image missing \"alt\" property. \"alt\" text is required to describe important images on the page.',\n hint: 'Use an empty string (\"\") for decorative images.'\n};\nconst InvalidImageService = {\n name: \"InvalidImageService\",\n title: \"Error while loading image service.\",\n message: \"There was an error loading the configured image service. Please see the stack trace for more information.\"\n};\nconst MissingImageDimension = {\n name: \"MissingImageDimension\",\n title: \"Missing image dimensions\",\n message: (missingDimension, imageURL) => `Missing ${missingDimension === \"both\" ? \"width and height attributes\" : `${missingDimension} attribute`} for ${imageURL}. When using remote images, both dimensions are required in order to avoid CLS.`,\n hint: \"If your image is inside your `src` folder, you probably meant to import it instead. See [the Imports guide for more information](https://docs.astro.build/en/guides/imports/#other-assets). You can also use `inferSize={true}` for remote images to get the original dimensions.\"\n};\nconst FailedToFetchRemoteImageDimensions = {\n name: \"FailedToFetchRemoteImageDimensions\",\n title: \"Failed to retrieve remote image dimensions\",\n message: (imageURL) => `Failed to get the dimensions for ${imageURL}.`,\n hint: \"Verify your remote image URL is accurate, and that you are not using `inferSize` with a file located in your `public/` folder.\"\n};\nconst UnsupportedImageFormat = {\n name: \"UnsupportedImageFormat\",\n title: \"Unsupported image format\",\n message: (format, imagePath, supportedFormats) => `Received unsupported format \\`${format}\\` from \\`${imagePath}\\`. Currently only ${supportedFormats.join(\n \", \"\n )} are supported by our image services.`,\n hint: \"Using an `img` tag directly instead of the `Image` component might be what you're looking for.\"\n};\nconst UnsupportedImageConversion = {\n name: \"UnsupportedImageConversion\",\n title: \"Unsupported image conversion\",\n message: \"Converting between vector (such as SVGs) and raster (such as PNGs and JPEGs) images is not currently supported.\"\n};\nconst PrerenderDynamicEndpointPathCollide = {\n name: \"PrerenderDynamicEndpointPathCollide\",\n title: \"Prerendered dynamic endpoint has path collision.\",\n message: (pathname) => `Could not render \\`${pathname}\\` with an \\`undefined\\` param as the generated path will collide during prerendering. Prevent passing \\`undefined\\` as \\`params\\` for the endpoint's \\`getStaticPaths()\\` function, or add an additional extension to the endpoint's filename.`,\n hint: (filename) => `Rename \\`${filename}\\` to \\`${filename.replace(/\\.(?:js|ts)/, (m) => `.json` + m)}\\``\n};\nconst ExpectedImage = {\n name: \"ExpectedImage\",\n title: \"Expected src to be an image.\",\n message: (src, typeofOptions, fullOptions) => `Expected \\`src\\` property for \\`getImage\\` or \\`\\` to be either an ESM imported image or a string with the path of a remote image. Received \\`${src}\\` (type: \\`${typeofOptions}\\`).\n\nFull serialized options received: \\`${fullOptions}\\`.`,\n hint: \"This error can often happen because of a wrong path. Make sure the path to your image is correct. If you're passing an async function, make sure to call and await it.\"\n};\nconst ExpectedImageOptions = {\n name: \"ExpectedImageOptions\",\n title: \"Expected image options.\",\n message: (options) => `Expected getImage() parameter to be an object. Received \\`${options}\\`.`\n};\nconst ExpectedNotESMImage = {\n name: \"ExpectedNotESMImage\",\n title: \"Expected image options, not an ESM-imported image.\",\n message: \"An ESM-imported image cannot be passed directly to `getImage()`. Instead, pass an object with the image in the `src` property.\",\n hint: \"Try changing `getImage(myImage)` to `getImage({ src: myImage })`\"\n};\nconst IncompatibleDescriptorOptions = {\n name: \"IncompatibleDescriptorOptions\",\n title: \"Cannot set both `densities` and `widths`\",\n message: \"Only one of `densities` or `widths` can be specified. In most cases, you'll probably want to use only `widths` if you require specific widths.\",\n hint: \"Those attributes are used to construct a `srcset` attribute, which cannot have both `x` and `w` descriptors.\"\n};\nconst ImageNotFound = {\n name: \"ImageNotFound\",\n title: \"Image not found.\",\n message: (imagePath) => `Could not find requested image \\`${imagePath}\\`. Does it exist?`,\n hint: \"This is often caused by a typo in the image path. Please make sure the file exists, and is spelled correctly.\"\n};\nconst NoImageMetadata = {\n name: \"NoImageMetadata\",\n title: \"Could not process image metadata.\",\n message: (imagePath) => `Could not process image metadata${imagePath ? ` for \\`${imagePath}\\`` : \"\"}.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst CouldNotTransformImage = {\n name: \"CouldNotTransformImage\",\n title: \"Could not transform image.\",\n message: (imagePath) => `Could not transform image \\`${imagePath}\\`. See the stack trace for more information.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst ResponseSentError = {\n name: \"ResponseSentError\",\n title: \"Unable to set response.\",\n message: \"The response has already been sent to the browser and cannot be altered.\"\n};\nconst MiddlewareNoDataOrNextCalled = {\n name: \"MiddlewareNoDataOrNextCalled\",\n title: \"The middleware didn't return a `Response`.\",\n message: \"Make sure your middleware returns a `Response` object, either directly or by returning the `Response` from calling the `next` function.\"\n};\nconst MiddlewareNotAResponse = {\n name: \"MiddlewareNotAResponse\",\n title: \"The middleware returned something that is not a `Response` object.\",\n message: \"Any data returned from middleware must be a valid `Response` object.\"\n};\nconst EndpointDidNotReturnAResponse = {\n name: \"EndpointDidNotReturnAResponse\",\n title: \"The endpoint did not return a `Response`.\",\n message: \"An endpoint must return either a `Response`, or a `Promise` that resolves with a `Response`.\"\n};\nconst LocalsNotAnObject = {\n name: \"LocalsNotAnObject\",\n title: \"Value assigned to `locals` is not accepted.\",\n message: \"`locals` can only be assigned to an object. Other values like numbers, strings, etc. are not accepted.\",\n hint: \"If you tried to remove some information from the `locals` object, try to use `delete` or set the property to `undefined`.\"\n};\nconst LocalsReassigned = {\n name: \"LocalsReassigned\",\n title: \"`locals` must not be reassigned.\",\n message: \"`locals` can not be assigned directly.\",\n hint: \"Set a `locals` property instead.\"\n};\nconst AstroResponseHeadersReassigned = {\n name: \"AstroResponseHeadersReassigned\",\n title: \"`Astro.response.headers` must not be reassigned.\",\n message: \"Individual headers can be added to and removed from `Astro.response.headers`, but it must not be replaced with another instance of `Headers` altogether.\",\n hint: \"Consider using `Astro.response.headers.add()`, and `Astro.response.headers.delete()`.\"\n};\nconst MiddlewareCantBeLoaded = {\n name: \"MiddlewareCantBeLoaded\",\n title: \"Can't load the middleware.\",\n message: \"An unknown error was thrown while loading your middleware.\"\n};\nconst LocalImageUsedWrongly = {\n name: \"LocalImageUsedWrongly\",\n title: \"Local images must be imported.\",\n message: (imageFilePath) => `\\`Image\\`'s and \\`getImage\\`'s \\`src\\` parameter must be an imported image or an URL, it cannot be a string filepath. Received \\`${imageFilePath}\\`.`,\n hint: \"If you want to use an image from your `src` folder, you need to either import it or if the image is coming from a content collection, use the [image() schema helper](https://docs.astro.build/en/guides/images/#images-in-content-collections). See https://docs.astro.build/en/guides/images/#src-required for more information on the `src` property.\"\n};\nconst AstroGlobUsedOutside = {\n name: \"AstroGlobUsedOutside\",\n title: \"Astro.glob() used outside of an Astro file.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` can only be used in \\`.astro\\` files. \\`import.meta.glob(${globStr})\\` can be used instead to achieve a similar result.`,\n hint: \"See Vite's documentation on `import.meta.glob` for more information: https://vite.dev/guide/features.html#glob-import\"\n};\nconst AstroGlobNoMatch = {\n name: \"AstroGlobNoMatch\",\n title: \"Astro.glob() did not match any files.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` did not return any matching files.`,\n hint: \"Check the pattern for typos.\"\n};\nconst RedirectWithNoLocation = {\n name: \"RedirectWithNoLocation\",\n title: \"A redirect must be given a location with the `Location` header.\"\n};\nconst InvalidDynamicRoute = {\n name: \"InvalidDynamicRoute\",\n title: \"Invalid dynamic route.\",\n message: (route, invalidParam, received) => `The ${invalidParam} param for route ${route} is invalid. Received **${received}**.`\n};\nconst MissingSharp = {\n name: \"MissingSharp\",\n title: \"Could not find Sharp.\",\n message: \"Could not find Sharp. Please install Sharp (`sharp`) manually into your project or migrate to another image service.\",\n hint: \"See Sharp's installation instructions for more information: https://sharp.pixelplumbing.com/install. If you are not relying on `astro:assets` to optimize, transform, or process any images, you can configure a passthrough image service instead of installing Sharp. See https://docs.astro.build/en/reference/errors/missing-sharp for more information.\\n\\nSee https://docs.astro.build/en/guides/images/#default-image-service for more information on how to migrate to another image service.\"\n};\nconst UnknownViteError = {\n name: \"UnknownViteError\",\n title: \"Unknown Vite Error.\"\n};\nconst FailedToLoadModuleSSR = {\n name: \"FailedToLoadModuleSSR\",\n title: \"Could not import file.\",\n message: (importName) => `Could not import \\`${importName}\\`.`,\n hint: \"This is often caused by a typo in the import path. Please make sure the file exists.\"\n};\nconst InvalidGlob = {\n name: \"InvalidGlob\",\n title: \"Invalid glob pattern.\",\n message: (globPattern) => `Invalid glob pattern: \\`${globPattern}\\`. Glob patterns must start with './', '../' or '/'.`,\n hint: \"See https://docs.astro.build/en/guides/imports/#glob-patterns for more information on supported glob patterns.\"\n};\nconst FailedToFindPageMapSSR = {\n name: \"FailedToFindPageMapSSR\",\n title: \"Astro couldn't find the correct page to render\",\n message: \"Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error. Please file an issue.\"\n};\nconst MissingLocale = {\n name: \"MissingLocaleError\",\n title: \"The provided locale does not exist.\",\n message: (locale) => `The locale/path \\`${locale}\\` does not exist in the configured \\`i18n.locales\\`.`\n};\nconst MissingIndexForInternationalization = {\n name: \"MissingIndexForInternationalizationError\",\n title: \"Index page not found.\",\n message: (defaultLocale) => `Could not find index page. A root index page is required in order to create a redirect to the index URL of the default locale. (\\`/${defaultLocale}\\`)`,\n hint: (src) => `Create an index page (\\`index.astro, index.md, etc.\\`) in \\`${src}\\`.`\n};\nconst IncorrectStrategyForI18n = {\n name: \"IncorrectStrategyForI18n\",\n title: \"You can't use the current function with the current strategy\",\n message: (functionName) => `The function \\`${functionName}\\` can only be used when the \\`i18n.routing.strategy\\` is set to \\`\"manual\"\\`.`\n};\nconst NoPrerenderedRoutesWithDomains = {\n name: \"NoPrerenderedRoutesWithDomains\",\n title: \"Prerendered routes aren't supported when internationalization domains are enabled.\",\n message: (component) => `Static pages aren't yet supported with multiple domains. To enable this feature, you must disable prerendering for the page ${component}`\n};\nconst MissingMiddlewareForInternationalization = {\n name: \"MissingMiddlewareForInternationalization\",\n title: \"Enabled manual internationalization routing without having a middleware.\",\n message: \"Your configuration setting `i18n.routing: 'manual'` requires you to provide your own i18n `middleware` file.\"\n};\nconst CantRenderPage = {\n name: \"CantRenderPage\",\n title: \"Astro can't render the route.\",\n message: \"Astro cannot find any content to render for this route. There is no file or redirect associated with this route.\",\n hint: \"If you expect to find a route here, this may be an Astro bug. Please file an issue/restart the dev server\"\n};\nconst UnhandledRejection = {\n name: \"UnhandledRejection\",\n title: \"Unhandled rejection\",\n message: (stack) => `Astro detected an unhandled rejection. Here's the stack trace:\n${stack}`,\n hint: \"Make sure your promises all have an `await` or a `.catch()` handler.\"\n};\nconst i18nNotEnabled = {\n name: \"i18nNotEnabled\",\n title: \"i18n Not Enabled\",\n message: \"The `astro:i18n` module can not be used without enabling i18n in your Astro config.\",\n hint: \"See https://docs.astro.build/en/guides/internationalization for a guide on setting up i18n.\"\n};\nconst i18nNoLocaleFoundInPath = {\n name: \"i18nNoLocaleFoundInPath\",\n title: \"The path doesn't contain any locale\",\n message: \"You tried to use an i18n utility on a path that doesn't contain any locale. You can use `pathHasLocale` first to determine if the path has a locale.\"\n};\nconst RouteNotFound = {\n name: \"RouteNotFound\",\n title: \"Route not found.\",\n message: `Astro could not find a route that matches the one you requested.`\n};\nconst EnvInvalidVariables = {\n name: \"EnvInvalidVariables\",\n title: \"Invalid Environment Variables\",\n message: (errors) => `The following environment variables defined in \\`env.schema\\` are invalid:\n\n${errors.map((err) => `- ${err}`).join(\"\\n\")}\n`\n};\nconst EnvUnsupportedGetSecret = {\n name: \"EnvUnsupportedGetSecret\",\n title: \"Unsupported astro:env getSecret\",\n message: \"`astro:env/server` exported function `getSecret` is not supported by your adapter.\"\n};\nconst ServerOnlyModule = {\n name: \"ServerOnlyModule\",\n title: \"Module is only available server-side\",\n message: (name) => `The \"${name}\" module is only available server-side.`\n};\nconst RewriteWithBodyUsed = {\n name: \"RewriteWithBodyUsed\",\n title: \"Cannot use Astro.rewrite after the request body has been read\",\n message: \"Astro.rewrite() cannot be used if the request body has already been read. If you need to read the body, first clone the request.\"\n};\nconst ForbiddenRewrite = {\n name: \"ForbiddenRewrite\",\n title: \"Forbidden rewrite to a static route.\",\n message: (from, to, component) => `You tried to rewrite the on-demand route '${from}' with the static route '${to}', when using the 'server' output. \n\nThe static route '${to}' is rendered by the component\n'${component}', which is marked as prerendered. This is a forbidden operation because during the build the component '${component}' is compiled to an\nHTML file, which can't be retrieved at runtime by Astro.`,\n hint: (component) => `Add \\`export const prerender = false\\` to the component '${component}', or use a Astro.redirect().`\n};\nconst UnknownFilesystemError = {\n name: \"UnknownFilesystemError\",\n title: \"An unknown error occurred while reading or writing files to disk.\",\n hint: \"It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.\"\n};\nconst UnknownCSSError = {\n name: \"UnknownCSSError\",\n title: \"Unknown CSS Error.\"\n};\nconst CSSSyntaxError = {\n name: \"CSSSyntaxError\",\n title: \"CSS Syntax Error.\"\n};\nconst UnknownMarkdownError = {\n name: \"UnknownMarkdownError\",\n title: \"Unknown Markdown Error.\"\n};\nconst MarkdownFrontmatterParseError = {\n name: \"MarkdownFrontmatterParseError\",\n title: \"Failed to parse Markdown frontmatter.\"\n};\nconst InvalidFrontmatterInjectionError = {\n name: \"InvalidFrontmatterInjectionError\",\n title: \"Invalid frontmatter injection.\",\n message: 'A remark or rehype plugin attempted to inject invalid frontmatter. Ensure \"astro.frontmatter\" is set to a valid JSON object that is not `null` or `undefined`.',\n hint: \"See the frontmatter injection docs https://docs.astro.build/en/guides/markdown-content/#modifying-frontmatter-programmatically for more information.\"\n};\nconst MdxIntegrationMissingError = {\n name: \"MdxIntegrationMissingError\",\n title: \"MDX integration missing.\",\n message: (file) => `Unable to render ${file}. Ensure that the \\`@astrojs/mdx\\` integration is installed.`,\n hint: \"See the MDX integration docs for installation and usage instructions: https://docs.astro.build/en/guides/integrations-guide/mdx/\"\n};\nconst UnknownConfigError = {\n name: \"UnknownConfigError\",\n title: \"Unknown configuration error.\"\n};\nconst ConfigNotFound = {\n name: \"ConfigNotFound\",\n title: \"Specified configuration file not found.\",\n message: (configFile) => `Unable to resolve \\`--config \"${configFile}\"\\`. Does the file exist?`\n};\nconst ConfigLegacyKey = {\n name: \"ConfigLegacyKey\",\n title: \"Legacy configuration detected.\",\n message: (legacyConfigKey) => `Legacy configuration detected: \\`${legacyConfigKey}\\`.`,\n hint: \"Please update your configuration to the new format.\\nSee https://astro.build/config for more information.\"\n};\nconst UnknownCLIError = {\n name: \"UnknownCLIError\",\n title: \"Unknown CLI Error.\"\n};\nconst GenerateContentTypesError = {\n name: \"GenerateContentTypesError\",\n title: \"Failed to generate content types.\",\n message: (errorMessage) => `\\`astro sync\\` command failed to generate content collection types: ${errorMessage}`,\n hint: \"This error is often caused by a syntax error inside your content, or your content configuration file. Check your `src/content/config.*` file for typos.\"\n};\nconst UnknownContentCollectionError = {\n name: \"UnknownContentCollectionError\",\n title: \"Unknown Content Collection Error.\"\n};\nconst RenderUndefinedEntryError = {\n name: \"RenderUndefinedEntryError\",\n title: \"Attempted to render an undefined content collection entry.\",\n hint: \"Check if the entry is undefined before passing it to `render()`\"\n};\nconst GetEntryDeprecationError = {\n name: \"GetEntryDeprecationError\",\n title: \"Invalid use of `getDataEntryById` or `getEntryBySlug` function.\",\n message: (collection, method) => `The \\`${method}\\` function is deprecated and cannot be used to query the \"${collection}\" collection. Use \\`getEntry\\` instead.`,\n hint: \"Use the `getEntry` or `getCollection` functions to query content layer collections.\"\n};\nconst InvalidContentEntryFrontmatterError = {\n name: \"InvalidContentEntryFrontmatterError\",\n title: \"Content entry frontmatter does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(\n entryId\n )}** frontmatter does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst InvalidContentEntryDataError = {\n name: \"InvalidContentEntryDataError\",\n title: \"Content entry data does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(entryId)}** data does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst ContentEntryDataError = {\n name: \"ContentEntryDataError\",\n title: \"Content entry data does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(entryId)}** data does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst ContentLoaderInvalidDataError = {\n name: \"ContentLoaderInvalidDataError\",\n title: \"Content entry is missing an ID\",\n message(collection, extra) {\n return `**${String(collection)}** entry is missing an ID.\n${extra}`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content loaders.\"\n};\nconst InvalidContentEntrySlugError = {\n name: \"InvalidContentEntrySlugError\",\n title: \"Invalid content entry slug.\",\n message(collection, entryId) {\n return `${String(collection)} \\u2192 ${String(\n entryId\n )} has an invalid slug. \\`slug\\` must be a string.`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst ContentSchemaContainsSlugError = {\n name: \"ContentSchemaContainsSlugError\",\n title: \"Content Schema should not contain `slug`.\",\n message: (collectionName) => `A content collection schema should not contain \\`slug\\` since it is reserved for slug generation. Remove this from your ${collectionName} collection schema.`,\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst MixedContentDataCollectionError = {\n name: \"MixedContentDataCollectionError\",\n title: \"Content and data cannot be in same collection.\",\n message: (collectionName) => `**${collectionName}** contains a mix of content and data entries. All entries must be of the same type.`,\n hint: \"Store data entries in a new collection separate from your content collection.\"\n};\nconst ContentCollectionTypeMismatchError = {\n name: \"ContentCollectionTypeMismatchError\",\n title: \"Collection contains entries of a different type.\",\n message: (collection, expectedType, actualType) => `${collection} contains ${expectedType} entries, but is configured as a ${actualType} collection.`\n};\nconst DataCollectionEntryParseError = {\n name: \"DataCollectionEntryParseError\",\n title: \"Data collection entry failed to parse.\",\n message(entryId, errorMessage) {\n return `**${entryId}** failed to parse: ${errorMessage}`;\n },\n hint: \"Ensure your data entry is an object with valid JSON (for `.json` entries) or YAML (for `.yaml` entries).\"\n};\nconst DuplicateContentEntrySlugError = {\n name: \"DuplicateContentEntrySlugError\",\n title: \"Duplicate content entry slug.\",\n message(collection, slug, preExisting, alsoFound) {\n return `**${collection}** contains multiple entries with the same slug: \\`${slug}\\`. Slugs must be unique.\n\nEntries: \n- ${preExisting}\n- ${alsoFound}`;\n }\n};\nconst UnsupportedConfigTransformError = {\n name: \"UnsupportedConfigTransformError\",\n title: \"Unsupported transform in content config.\",\n message: (parseError) => `\\`transform()\\` functions in your content config must return valid JSON, or data types compatible with the devalue library (including Dates, Maps, and Sets).\nFull error: ${parseError}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionsWithoutServerOutputError = {\n name: \"ActionsWithoutServerOutputError\",\n title: \"Actions must be used with server output.\",\n message: \"A server is required to create callable backend functions. To deploy routes to a server, add an adapter to your Astro config and configure your route for on-demand rendering\",\n hint: \"Add an adapter and enable on-demand rendering: https://5-0-0-beta.docs.astro.build/en/guides/on-demand-rendering/\"\n};\nconst ActionsReturnedInvalidDataError = {\n name: \"ActionsReturnedInvalidDataError\",\n title: \"Action handler returned invalid data.\",\n message: (error) => `Action handler returned invalid data. Handlers should return serializable data types like objects, arrays, strings, and numbers. Parse error: ${error}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionNotFoundError = {\n name: \"ActionNotFoundError\",\n title: \"Action not found.\",\n message: (actionName) => `The server received a request for an action named \\`${actionName}\\` but could not find a match. If you renamed an action, check that you've updated your \\`actions/index\\` file and your calling code to match.`,\n hint: \"You can run `astro check` to detect type errors caused by mismatched action names.\"\n};\nconst ActionCalledFromServerError = {\n name: \"ActionCalledFromServerError\",\n title: \"Action unexpected called from the server.\",\n message: \"Action called from a server page or endpoint without using `Astro.callAction()`. This wrapper must be used to call actions from server code.\",\n hint: \"See the `Astro.callAction()` reference for usage examples: https://docs.astro.build/en/reference/api-reference/#astrocallaction\"\n};\nconst UnknownError = { name: \"UnknownError\", title: \"Unknown Error.\" };\nexport {\n ActionCalledFromServerError,\n ActionNotFoundError,\n ActionsReturnedInvalidDataError,\n ActionsWithoutServerOutputError,\n AdapterSupportOutputMismatch,\n AstroGlobNoMatch,\n AstroGlobUsedOutside,\n AstroResponseHeadersReassigned,\n CSSSyntaxError,\n CantRenderPage,\n ClientAddressNotAvailable,\n ConfigLegacyKey,\n ConfigNotFound,\n ContentCollectionTypeMismatchError,\n ContentEntryDataError,\n ContentLoaderInvalidDataError,\n ContentSchemaContainsSlugError,\n CouldNotTransformImage,\n DataCollectionEntryParseError,\n DuplicateContentEntrySlugError,\n EndpointDidNotReturnAResponse,\n EnvInvalidVariables,\n EnvUnsupportedGetSecret,\n ExpectedImage,\n ExpectedImageOptions,\n ExpectedNotESMImage,\n FailedToFetchRemoteImageDimensions,\n FailedToFindPageMapSSR,\n FailedToLoadModuleSSR,\n ForbiddenRewrite,\n GenerateContentTypesError,\n GetEntryDeprecationError,\n GetStaticPathsExpectedParams,\n GetStaticPathsInvalidRouteParam,\n GetStaticPathsRequired,\n ImageMissingAlt,\n ImageNotFound,\n IncompatibleDescriptorOptions,\n IncorrectStrategyForI18n,\n InvalidComponentArgs,\n InvalidContentEntryDataError,\n InvalidContentEntryFrontmatterError,\n InvalidContentEntrySlugError,\n InvalidDynamicRoute,\n InvalidFrontmatterInjectionError,\n InvalidGetStaticPathParam,\n InvalidGetStaticPathsEntry,\n InvalidGetStaticPathsReturn,\n InvalidGlob,\n InvalidImageService,\n InvalidPrerenderExport,\n LocalImageUsedWrongly,\n LocalsNotAnObject,\n LocalsReassigned,\n MarkdownFrontmatterParseError,\n MdxIntegrationMissingError,\n MiddlewareCantBeLoaded,\n MiddlewareNoDataOrNextCalled,\n MiddlewareNotAResponse,\n MissingImageDimension,\n MissingIndexForInternationalization,\n MissingLocale,\n MissingMediaQueryDirective,\n MissingMiddlewareForInternationalization,\n MissingSharp,\n MixedContentDataCollectionError,\n NoAdapterInstalled,\n NoAdapterInstalledServerIslands,\n NoClientEntrypoint,\n NoClientOnlyHint,\n NoImageMetadata,\n NoMatchingImport,\n NoMatchingRenderer,\n NoMatchingStaticPathFound,\n NoPrerenderedRoutesWithDomains,\n OnlyResponseCanBeReturned,\n PageNumberParamNotFound,\n PrerenderClientAddressNotAvailable,\n PrerenderDynamicEndpointPathCollide,\n RedirectWithNoLocation,\n RenderUndefinedEntryError,\n ReservedSlotName,\n ResponseSentError,\n RewriteWithBodyUsed,\n RouteNotFound,\n ServerOnlyModule,\n StaticClientAddressNotAvailable,\n UnhandledRejection,\n UnknownCLIError,\n UnknownCSSError,\n UnknownCompilerError,\n UnknownConfigError,\n UnknownContentCollectionError,\n UnknownError,\n UnknownFilesystemError,\n UnknownMarkdownError,\n UnknownViteError,\n UnsupportedConfigTransformError,\n UnsupportedImageConversion,\n UnsupportedImageFormat,\n i18nNoLocaleFoundInPath,\n i18nNotEnabled\n};\n","function positionAt(offset, text) {\n const lineOffsets = getLineOffsets(text);\n offset = Math.max(0, Math.min(text.length, offset));\n let low = 0;\n let high = lineOffsets.length;\n if (high === 0) {\n return {\n line: 0,\n column: offset\n };\n }\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const lineOffset = lineOffsets[mid];\n if (lineOffset === offset) {\n return {\n line: mid,\n column: 0\n };\n } else if (offset > lineOffset) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = low - 1;\n return { line, column: offset - lineOffsets[line] };\n}\nfunction getLineOffsets(text) {\n const lineOffsets = [];\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n const ch = text.charAt(i);\n isLineStart = ch === \"\\r\" || ch === \"\\n\";\n if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n return lineOffsets;\n}\nfunction isYAMLException(err) {\n return err instanceof Error && err.name === \"YAMLException\";\n}\nfunction formatYAMLException(e) {\n return {\n name: e.name,\n id: e.mark.name,\n loc: { file: e.mark.name, line: e.mark.line + 1, column: e.mark.column },\n message: e.reason,\n stack: e.stack ?? \"\"\n };\n}\nfunction createSafeError(err) {\n if (err instanceof Error || err?.name && err.message) {\n return err;\n } else {\n const error = new Error(JSON.stringify(err));\n error.hint = `To get as much information as possible from your errors, make sure to throw Error objects instead of \\`${typeof err}\\`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error for more information.`;\n return error;\n }\n}\nfunction normalizeLF(code) {\n return code.replace(/\\r\\n|\\r(?!\\n)|\\n/g, \"\\n\");\n}\nexport {\n createSafeError,\n formatYAMLException,\n isYAMLException,\n normalizeLF,\n positionAt\n};\n","import { normalizeLF } from \"./utils.js\";\nfunction codeFrame(src, loc) {\n if (!loc || loc.line === void 0 || loc.column === void 0) {\n return \"\";\n }\n const lines = normalizeLF(src).split(\"\\n\").map((ln) => ln.replace(/\\t/g, \" \"));\n const visibleLines = [];\n for (let n = -2; n <= 2; n++) {\n if (lines[loc.line + n]) visibleLines.push(loc.line + n);\n }\n let gutterWidth = 0;\n for (const lineNo of visibleLines) {\n let w = `> ${lineNo}`;\n if (w.length > gutterWidth) gutterWidth = w.length;\n }\n let output = \"\";\n for (const lineNo of visibleLines) {\n const isFocusedLine = lineNo === loc.line - 1;\n output += isFocusedLine ? \"> \" : \" \";\n output += `${lineNo + 1} | ${lines[lineNo]}\n`;\n if (isFocusedLine)\n output += `${Array.from({ length: gutterWidth }).join(\" \")} | ${Array.from({\n length: loc.column\n }).join(\" \")}^\n`;\n }\n return output;\n}\nexport {\n codeFrame\n};\n","import { codeFrame } from \"./printer.js\";\nfunction isAstroError(e) {\n return e instanceof AstroError;\n}\nclass AstroError extends Error {\n loc;\n title;\n hint;\n frame;\n type = \"AstroError\";\n constructor(props, options) {\n const { name, title, message, stack, location, hint, frame } = props;\n super(message, options);\n this.title = title;\n this.name = name;\n if (message) this.message = message;\n this.stack = stack ? stack : this.stack;\n this.loc = location;\n this.hint = hint;\n this.frame = frame;\n }\n setLocation(location) {\n this.loc = location;\n }\n setName(name) {\n this.name = name;\n }\n setMessage(message) {\n this.message = message;\n }\n setHint(hint) {\n this.hint = hint;\n }\n setFrame(source, location) {\n this.frame = codeFrame(source, location);\n }\n static is(err) {\n return err.type === \"AstroError\";\n }\n}\nclass CompilerError extends AstroError {\n type = \"CompilerError\";\n constructor(props, options) {\n super(props, options);\n }\n static is(err) {\n return err.type === \"CompilerError\";\n }\n}\nclass CSSError extends AstroError {\n type = \"CSSError\";\n static is(err) {\n return err.type === \"CSSError\";\n }\n}\nclass MarkdownError extends AstroError {\n type = \"MarkdownError\";\n static is(err) {\n return err.type === \"MarkdownError\";\n }\n}\nclass InternalError extends AstroError {\n type = \"InternalError\";\n static is(err) {\n return err.type === \"InternalError\";\n }\n}\nclass AggregateError extends AstroError {\n type = \"AggregateError\";\n errors;\n // Despite being a collection of errors, AggregateError still needs to have a main error attached to it\n // This is because Vite expects every thrown errors handled during HMR to be, well, Error and have a message\n constructor(props, options) {\n super(props, options);\n this.errors = props.errors;\n }\n static is(err) {\n return err.type === \"AggregateError\";\n }\n}\nconst astroConfigZodErrors = /* @__PURE__ */ new WeakSet();\nfunction isAstroConfigZodError(error) {\n return astroConfigZodErrors.has(error);\n}\nfunction trackAstroConfigZodError(error) {\n astroConfigZodErrors.add(error);\n}\nclass AstroUserError extends Error {\n type = \"AstroUserError\";\n /**\n * A message that explains to the user how they can fix the error.\n */\n hint;\n name = \"AstroUserError\";\n constructor(message, hint) {\n super();\n this.message = message;\n this.hint = hint;\n }\n static is(err) {\n return err.type === \"AstroUserError\";\n }\n}\nexport {\n AggregateError,\n AstroError,\n AstroUserError,\n CSSError,\n CompilerError,\n InternalError,\n MarkdownError,\n isAstroConfigZodError,\n isAstroError,\n trackAstroConfigZodError\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction validateArgs(args) {\n if (args.length !== 3) return false;\n if (!args[0] || typeof args[0] !== \"object\") return false;\n return true;\n}\nfunction baseCreateComponent(cb, moduleId, propagation) {\n const name = moduleId?.split(\"/\").pop()?.replace(\".astro\", \"\") ?? \"\";\n const fn = (...args) => {\n if (!validateArgs(args)) {\n throw new AstroError({\n ...AstroErrorData.InvalidComponentArgs,\n message: AstroErrorData.InvalidComponentArgs.message(name)\n });\n }\n return cb(...args);\n };\n Object.defineProperty(fn, \"name\", { value: name, writable: false });\n fn.isAstroComponentFactory = true;\n fn.moduleId = moduleId;\n fn.propagation = propagation;\n return fn;\n}\nfunction createComponentWithOptions(opts) {\n const cb = baseCreateComponent(opts.factory, opts.moduleId, opts.propagation);\n return cb;\n}\nfunction createComponent(arg1, moduleId, propagation) {\n if (typeof arg1 === \"function\") {\n return baseCreateComponent(arg1, moduleId, propagation);\n } else {\n return createComponentWithOptions(arg1);\n }\n}\nexport {\n createComponent\n};\n","const ASTRO_VERSION = \"5.0.0-beta.8\";\nconst REROUTE_DIRECTIVE_HEADER = \"X-Astro-Reroute\";\nconst REWRITE_DIRECTIVE_HEADER_KEY = \"X-Astro-Rewrite\";\nconst REWRITE_DIRECTIVE_HEADER_VALUE = \"yes\";\nconst NOOP_MIDDLEWARE_HEADER = \"X-Astro-Noop\";\nconst ROUTE_TYPE_HEADER = \"X-Astro-Route-Type\";\nconst DEFAULT_404_COMPONENT = \"astro-default-404.astro\";\nconst DEFAULT_500_COMPONENT = \"astro-default-500.astro\";\nconst REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308, 300, 304];\nconst REROUTABLE_STATUS_CODES = [404, 500];\nconst clientAddressSymbol = Symbol.for(\"astro.clientAddress\");\nconst clientLocalsSymbol = Symbol.for(\"astro.locals\");\nconst originPathnameSymbol = Symbol.for(\"astro.originPathname\");\nconst responseSentSymbol = Symbol.for(\"astro.responseSent\");\nconst SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [\n \".markdown\",\n \".mdown\",\n \".mkdn\",\n \".mkd\",\n \".mdwn\",\n \".md\"\n];\nconst MIDDLEWARE_PATH_SEGMENT_NAME = \"middleware\";\nexport {\n ASTRO_VERSION,\n DEFAULT_404_COMPONENT,\n DEFAULT_500_COMPONENT,\n MIDDLEWARE_PATH_SEGMENT_NAME,\n NOOP_MIDDLEWARE_HEADER,\n REDIRECT_STATUS_CODES,\n REROUTABLE_STATUS_CODES,\n REROUTE_DIRECTIVE_HEADER,\n REWRITE_DIRECTIVE_HEADER_KEY,\n REWRITE_DIRECTIVE_HEADER_VALUE,\n ROUTE_TYPE_HEADER,\n SUPPORTED_MARKDOWN_FILE_EXTENSIONS,\n clientAddressSymbol,\n clientLocalsSymbol,\n originPathnameSymbol,\n responseSentSymbol\n};\n","import { ASTRO_VERSION } from \"../../core/constants.js\";\nimport { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction createAstroGlobFn() {\n const globHandler = (importMetaGlobResult) => {\n console.warn(`Astro.glob is deprecated and will be removed in a future major version of Astro.\nUse import.meta.glob instead: https://vitejs.dev/guide/features.html#glob-import`);\n if (typeof importMetaGlobResult === \"string\") {\n throw new AstroError({\n ...AstroErrorData.AstroGlobUsedOutside,\n message: AstroErrorData.AstroGlobUsedOutside.message(JSON.stringify(importMetaGlobResult))\n });\n }\n let allEntries = [...Object.values(importMetaGlobResult)];\n if (allEntries.length === 0) {\n throw new AstroError({\n ...AstroErrorData.AstroGlobNoMatch,\n message: AstroErrorData.AstroGlobNoMatch.message(JSON.stringify(importMetaGlobResult))\n });\n }\n return Promise.all(allEntries.map((fn) => fn()));\n };\n return globHandler;\n}\nfunction createAstro(site) {\n return {\n // TODO: this is no longer necessary for `Astro.site`\n // but it somehow allows working around caching issues in content collections for some tests\n site: site ? new URL(site) : void 0,\n generator: `Astro v${ASTRO_VERSION}`,\n glob: createAstroGlobFn()\n };\n}\nexport {\n createAstro\n};\n","function isPromise(value) {\n return !!value && typeof value === \"object\" && \"then\" in value && typeof value.then === \"function\";\n}\nasync function* streamAsyncIterator(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nexport {\n isPromise,\n streamAsyncIterator\n};\n","import { escape } from \"html-escaper\";\nimport { streamAsyncIterator } from \"./util.js\";\nconst escapeHTML = escape;\nclass HTMLBytes extends Uint8Array {\n}\nObject.defineProperty(HTMLBytes.prototype, Symbol.toStringTag, {\n get() {\n return \"HTMLBytes\";\n }\n});\nclass HTMLString extends String {\n get [Symbol.toStringTag]() {\n return \"HTMLString\";\n }\n}\nconst markHTMLString = (value) => {\n if (value instanceof HTMLString) {\n return value;\n }\n if (typeof value === \"string\") {\n return new HTMLString(value);\n }\n return value;\n};\nfunction isHTMLString(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLString]\";\n}\nfunction markHTMLBytes(bytes) {\n return new HTMLBytes(bytes);\n}\nfunction isHTMLBytes(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLBytes]\";\n}\nfunction hasGetReader(obj) {\n return typeof obj.getReader === \"function\";\n}\nasync function* unescapeChunksAsync(iterable) {\n if (hasGetReader(iterable)) {\n for await (const chunk of streamAsyncIterator(iterable)) {\n yield unescapeHTML(chunk);\n }\n } else {\n for await (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n }\n}\nfunction* unescapeChunks(iterable) {\n for (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n}\nfunction unescapeHTML(str) {\n if (!!str && typeof str === \"object\") {\n if (str instanceof Uint8Array) {\n return markHTMLBytes(str);\n } else if (str instanceof Response && str.body) {\n const body = str.body;\n return unescapeChunksAsync(body);\n } else if (typeof str.then === \"function\") {\n return Promise.resolve(str).then((value) => {\n return unescapeHTML(value);\n });\n } else if (str[Symbol.for(\"astro:slot-string\")]) {\n return str;\n } else if (Symbol.iterator in str) {\n return unescapeChunks(str);\n } else if (Symbol.asyncIterator in str || hasGetReader(str)) {\n return unescapeChunksAsync(str);\n }\n }\n return markHTMLString(str);\n}\nexport {\n HTMLBytes,\n HTMLString,\n escapeHTML,\n isHTMLBytes,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n};\n","const RenderInstructionSymbol = Symbol.for(\"astro:render\");\nfunction createRenderInstruction(instruction) {\n return Object.defineProperty(instruction, RenderInstructionSymbol, {\n value: true\n });\n}\nfunction isRenderInstruction(chunk) {\n return chunk && typeof chunk === \"object\" && chunk[RenderInstructionSymbol];\n}\nexport {\n createRenderInstruction,\n isRenderInstruction\n};\n","const PROP_TYPE = {\n Value: 0,\n JSON: 1,\n // Actually means Array\n RegExp: 2,\n Date: 3,\n Map: 4,\n Set: 5,\n BigInt: 6,\n URL: 7,\n Uint8Array: 8,\n Uint16Array: 9,\n Uint32Array: 10,\n Infinity: 11\n};\nfunction serializeArray(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = value.map((v) => {\n return convertToSerializedForm(v, metadata, parents);\n });\n parents.delete(value);\n return serialized;\n}\nfunction serializeObject(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n return [k, convertToSerializedForm(v, metadata, parents)];\n })\n );\n parents.delete(value);\n return serialized;\n}\nfunction convertToSerializedForm(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n const tag = Object.prototype.toString.call(value);\n switch (tag) {\n case \"[object Date]\": {\n return [PROP_TYPE.Date, value.toISOString()];\n }\n case \"[object RegExp]\": {\n return [PROP_TYPE.RegExp, value.source];\n }\n case \"[object Map]\": {\n return [PROP_TYPE.Map, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object Set]\": {\n return [PROP_TYPE.Set, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object BigInt]\": {\n return [PROP_TYPE.BigInt, value.toString()];\n }\n case \"[object URL]\": {\n return [PROP_TYPE.URL, value.toString()];\n }\n case \"[object Array]\": {\n return [PROP_TYPE.JSON, serializeArray(value, metadata, parents)];\n }\n case \"[object Uint8Array]\": {\n return [PROP_TYPE.Uint8Array, Array.from(value)];\n }\n case \"[object Uint16Array]\": {\n return [PROP_TYPE.Uint16Array, Array.from(value)];\n }\n case \"[object Uint32Array]\": {\n return [PROP_TYPE.Uint32Array, Array.from(value)];\n }\n default: {\n if (value !== null && typeof value === \"object\") {\n return [PROP_TYPE.Value, serializeObject(value, metadata, parents)];\n }\n if (value === Infinity) {\n return [PROP_TYPE.Infinity, 1];\n }\n if (value === -Infinity) {\n return [PROP_TYPE.Infinity, -1];\n }\n if (value === void 0) {\n return [PROP_TYPE.Value];\n }\n return [PROP_TYPE.Value, value];\n }\n }\n}\nfunction serializeProps(props, metadata) {\n const serialized = JSON.stringify(serializeObject(props, metadata));\n return serialized;\n}\nexport {\n serializeProps\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nimport { escapeHTML } from \"./escape.js\";\nimport { serializeProps } from \"./serialize.js\";\nconst transitionDirectivesToCopyOnIsland = Object.freeze([\n \"data-astro-transition-scope\",\n \"data-astro-transition-persist\",\n \"data-astro-transition-persist-props\"\n]);\nfunction extractDirectives(inputProps, clientDirectives) {\n let extracted = {\n isPage: false,\n hydration: null,\n props: {},\n propsWithoutTransitionAttributes: {}\n };\n for (const [key, value] of Object.entries(inputProps)) {\n if (key.startsWith(\"server:\")) {\n if (key === \"server:root\") {\n extracted.isPage = true;\n }\n }\n if (key.startsWith(\"client:\")) {\n if (!extracted.hydration) {\n extracted.hydration = {\n directive: \"\",\n value: \"\",\n componentUrl: \"\",\n componentExport: { value: \"\" }\n };\n }\n switch (key) {\n case \"client:component-path\": {\n extracted.hydration.componentUrl = value;\n break;\n }\n case \"client:component-export\": {\n extracted.hydration.componentExport.value = value;\n break;\n }\n case \"client:component-hydration\": {\n break;\n }\n case \"client:display-name\": {\n break;\n }\n default: {\n extracted.hydration.directive = key.split(\":\")[1];\n extracted.hydration.value = value;\n if (!clientDirectives.has(extracted.hydration.directive)) {\n const hydrationMethods = Array.from(clientDirectives.keys()).map((d) => `client:${d}`).join(\", \");\n throw new Error(\n `Error: invalid hydration directive \"${key}\". Supported hydration methods: ${hydrationMethods}`\n );\n }\n if (extracted.hydration.directive === \"media\" && typeof extracted.hydration.value !== \"string\") {\n throw new AstroError(AstroErrorData.MissingMediaQueryDirective);\n }\n break;\n }\n }\n } else {\n extracted.props[key] = value;\n if (!transitionDirectivesToCopyOnIsland.includes(key)) {\n extracted.propsWithoutTransitionAttributes[key] = value;\n }\n }\n }\n for (const sym of Object.getOwnPropertySymbols(inputProps)) {\n extracted.props[sym] = inputProps[sym];\n extracted.propsWithoutTransitionAttributes[sym] = inputProps[sym];\n }\n return extracted;\n}\nasync function generateHydrateScript(scriptOptions, metadata) {\n const { renderer, result, astroId, props, attrs } = scriptOptions;\n const { hydrate, componentUrl, componentExport } = metadata;\n if (!componentExport.value) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingImport,\n message: AstroErrorData.NoMatchingImport.message(metadata.displayName)\n });\n }\n const island = {\n children: \"\",\n props: {\n // This is for HMR, probably can avoid it in prod\n uid: astroId\n }\n };\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n island.props[key] = escapeHTML(value);\n }\n }\n island.props[\"component-url\"] = await result.resolve(decodeURI(componentUrl));\n if (renderer.clientEntrypoint) {\n island.props[\"component-export\"] = componentExport.value;\n island.props[\"renderer-url\"] = await result.resolve(\n decodeURI(renderer.clientEntrypoint.toString())\n );\n island.props[\"props\"] = escapeHTML(serializeProps(props, metadata));\n }\n island.props[\"ssr\"] = \"\";\n island.props[\"client\"] = hydrate;\n let beforeHydrationUrl = await result.resolve(\"astro:scripts/before-hydration.js\");\n if (beforeHydrationUrl.length) {\n island.props[\"before-hydration-url\"] = beforeHydrationUrl;\n }\n island.props[\"opts\"] = escapeHTML(\n JSON.stringify({\n name: metadata.displayName,\n value: metadata.hydrateArgs || \"\"\n })\n );\n transitionDirectivesToCopyOnIsland.forEach((name) => {\n if (typeof props[name] !== \"undefined\") {\n island.props[name] = props[name];\n }\n });\n return island;\n}\nexport {\n extractDirectives,\n generateHydrateScript\n};\n","/**\n * shortdash - https://github.com/bibig/node-shorthash\n *\n * @license\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Bibig \n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nconst dictionary = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY\";\nconst binary = dictionary.length;\nfunction bitwise(str) {\n let hash = 0;\n if (str.length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n hash = (hash << 5) - hash + ch;\n hash = hash & hash;\n }\n return hash;\n}\nfunction shorthash(text) {\n let num;\n let result = \"\";\n let integer = bitwise(text);\n const sign = integer < 0 ? \"Z\" : \"\";\n integer = Math.abs(integer);\n while (integer >= binary) {\n num = integer % binary;\n integer = Math.floor(integer / binary);\n result = dictionary[num] + result;\n }\n if (integer > 0) {\n result = dictionary[integer] + result;\n }\n return sign + result;\n}\nexport {\n shorthash\n};\n","function isAstroComponentFactory(obj) {\n return obj == null ? false : obj.isAstroComponentFactory === true;\n}\nfunction isAPropagatingComponent(result, factory) {\n let hint = factory.propagation || \"none\";\n if (factory.moduleId && result.componentMetadata.has(factory.moduleId) && hint === \"none\") {\n hint = result.componentMetadata.get(factory.moduleId).propagation;\n }\n return hint === \"in-tree\" || hint === \"self\";\n}\nexport {\n isAPropagatingComponent,\n isAstroComponentFactory\n};\n","const headAndContentSym = Symbol.for(\"astro.headAndContent\");\nfunction isHeadAndContent(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[headAndContentSym];\n}\nfunction createHeadAndContent(head, content) {\n return {\n [headAndContentSym]: true,\n head,\n content\n };\n}\nexport {\n createHeadAndContent,\n isHeadAndContent\n};\n","var astro_island_prebuilt_dev_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var l=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>y(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[h,e]=t;return h in i?i[h](e):void 0},a=t=>t.map(o),y=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([h,e])=>[h,o(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,\"Component\");l(this,\"hydrator\");l(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},p=this.querySelectorAll(\"template[data-astro-template]\");for(let r of p){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let u;try{u=this.hasAttribute(\"props\")?y(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let d,m=this.hydrator(this);d=performance.now(),await m(this.Component,u,n,{client:this.getAttribute(\"client\")}),d&&this.setAttribute(\"client-render-time\",(performance.now()-d).toString()),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});l(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[p,{default:u}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),d=this.getAttribute(\"component-export\")||\"default\";if(!d.includes(\".\"))this.Component=p[d];else{this.Component=p;for(let m of d.split(\".\"))this.Component=this.Component[m]}return this.hydrator=u,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}l(f,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",f)}})();`;\nexport {\n astro_island_prebuilt_dev_default as default\n};\n","var astro_island_prebuilt_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,\"Component\");d(this,\"hydrator\");d(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},h=this.querySelectorAll(\"template[data-astro-template]\");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let p;try{p=this.hasAttribute(\"props\")?m(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute(\"client\")}),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});d(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[h,{default:p}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),u=this.getAttribute(\"component-export\")||\"default\";if(!u.includes(\".\"))this.Component=h[u];else{this.Component=h;for(let f of u.split(\".\"))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",y)}})();`;\nexport {\n astro_island_prebuilt_default as default\n};\n","import islandScriptDev from \"./astro-island.prebuilt-dev.js\";\nimport islandScript from \"./astro-island.prebuilt.js\";\nconst ISLAND_STYLES = ``;\nfunction determineIfNeedsHydrationScript(result) {\n if (result._metadata.hasHydrationScript) {\n return false;\n }\n return result._metadata.hasHydrationScript = true;\n}\nfunction determinesIfNeedsDirectiveScript(result, directive) {\n if (result._metadata.hasDirectives.has(directive)) {\n return false;\n }\n result._metadata.hasDirectives.add(directive);\n return true;\n}\nfunction getDirectiveScriptText(result, directive) {\n const clientDirectives = result.clientDirectives;\n const clientDirective = clientDirectives.get(directive);\n if (!clientDirective) {\n throw new Error(`Unknown directive: ${directive}`);\n }\n return clientDirective;\n}\nfunction getPrescripts(result, type, directive) {\n switch (type) {\n case \"both\":\n return `${ISLAND_STYLES}`;\n case \"directive\":\n return ``;\n case null:\n break;\n }\n return \"\";\n}\nexport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n};\n","import { clsx } from \"clsx\";\nimport { HTMLString, markHTMLString } from \"../escape.js\";\nconst voidElementNames = /^(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i;\nconst htmlBooleanAttributes = /^(?:allowfullscreen|async|autofocus|autoplay|checked|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|selected|itemscope)$/i;\nconst AMPERSAND_REGEX = /&/g;\nconst DOUBLE_QUOTE_REGEX = /\"/g;\nconst STATIC_DIRECTIVES = /* @__PURE__ */ new Set([\"set:html\", \"set:text\"]);\nconst toIdent = (k) => k.trim().replace(/(?!^)\\b\\w|\\s+|\\W+/g, (match, index) => {\n if (/\\W/.test(match)) return \"\";\n return index === 0 ? match : match.toUpperCase();\n});\nconst toAttributeString = (value, shouldEscape = true) => shouldEscape ? String(value).replace(AMPERSAND_REGEX, \"&\").replace(DOUBLE_QUOTE_REGEX, \""\") : value;\nconst kebab = (k) => k.toLowerCase() === k ? k : k.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\nconst toStyleString = (obj) => Object.entries(obj).filter(([_, v]) => typeof v === \"string\" && v.trim() || typeof v === \"number\").map(([k, v]) => {\n if (k[0] !== \"-\" && k[1] !== \"-\") return `${kebab(k)}:${v}`;\n return `${k}:${v}`;\n}).join(\";\");\nfunction defineScriptVars(vars) {\n let output = \"\";\n for (const [key, value] of Object.entries(vars)) {\n output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(\n /<\\/script>/g,\n \"\\\\x3C/script>\"\n )};\n`;\n }\n return markHTMLString(output);\n}\nfunction formatList(values) {\n if (values.length === 1) {\n return values[0];\n }\n return `${values.slice(0, -1).join(\", \")} or ${values[values.length - 1]}`;\n}\nfunction addAttribute(value, key, shouldEscape = true) {\n if (value == null) {\n return \"\";\n }\n if (STATIC_DIRECTIVES.has(key)) {\n console.warn(`[astro] The \"${key}\" directive cannot be applied dynamically at runtime. It will not be rendered as an attribute.\n\nMake sure to use the static attribute syntax (\\`${key}={value}\\`) instead of the dynamic spread syntax (\\`{...{ \"${key}\": value }}\\`).`);\n return \"\";\n }\n if (key === \"class:list\") {\n const listValue = toAttributeString(clsx(value), shouldEscape);\n if (listValue === \"\") {\n return \"\";\n }\n return markHTMLString(` ${key.slice(0, -5)}=\"${listValue}\"`);\n }\n if (key === \"style\" && !(value instanceof HTMLString)) {\n if (Array.isArray(value) && value.length === 2) {\n return markHTMLString(\n ` ${key}=\"${toAttributeString(`${toStyleString(value[0])};${value[1]}`, shouldEscape)}\"`\n );\n }\n if (typeof value === \"object\") {\n return markHTMLString(` ${key}=\"${toAttributeString(toStyleString(value), shouldEscape)}\"`);\n }\n }\n if (key === \"className\") {\n return markHTMLString(` class=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n if (typeof value === \"string\" && value.includes(\"&\") && isHttpUrl(value)) {\n return markHTMLString(` ${key}=\"${toAttributeString(value, false)}\"`);\n }\n if (htmlBooleanAttributes.test(key)) {\n return markHTMLString(value ? ` ${key}` : \"\");\n }\n if (value === \"\") {\n return markHTMLString(` ${key}`);\n }\n return markHTMLString(` ${key}=\"${toAttributeString(value, shouldEscape)}\"`);\n}\nfunction internalSpreadAttributes(values, shouldEscape = true) {\n let output = \"\";\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute(value, key, shouldEscape);\n }\n return markHTMLString(output);\n}\nfunction renderElement(name, { props: _props, children = \"\" }, shouldEscape = true) {\n const { lang: _, \"data-astro-id\": astroId, \"define:vars\": defineVars, ...props } = _props;\n if (defineVars) {\n if (name === \"style\") {\n delete props[\"is:global\"];\n delete props[\"is:scoped\"];\n }\n if (name === \"script\") {\n delete props.hoist;\n children = defineScriptVars(defineVars) + \"\\n\" + children;\n }\n }\n if ((children == null || children == \"\") && voidElementNames.test(name)) {\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>`;\n }\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>${children}`;\n}\nconst noop = () => {\n};\nclass BufferedRenderer {\n chunks = [];\n renderPromise;\n destination;\n constructor(bufferRenderFunction) {\n this.renderPromise = bufferRenderFunction(this);\n Promise.resolve(this.renderPromise).catch(noop);\n }\n write(chunk) {\n if (this.destination) {\n this.destination.write(chunk);\n } else {\n this.chunks.push(chunk);\n }\n }\n async renderToFinalDestination(destination) {\n for (const chunk of this.chunks) {\n destination.write(chunk);\n }\n this.destination = destination;\n await this.renderPromise;\n }\n}\nfunction renderToBufferDestination(bufferRenderFunction) {\n const renderer = new BufferedRenderer(bufferRenderFunction);\n return renderer;\n}\nconst isNode = typeof process !== \"undefined\" && Object.prototype.toString.call(process) === \"[object process]\";\nconst isDeno = typeof Deno !== \"undefined\";\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n promise,\n resolve,\n reject\n };\n}\nconst VALID_PROTOCOLS = [\"http:\", \"https:\"];\nfunction isHttpUrl(url) {\n try {\n const parsedUrl = new URL(url);\n return VALID_PROTOCOLS.includes(parsedUrl.protocol);\n } catch {\n return false;\n }\n}\nexport {\n addAttribute,\n defineScriptVars,\n formatList,\n internalSpreadAttributes,\n isDeno,\n isNode,\n promiseWithResolvers,\n renderElement,\n renderToBufferDestination,\n toAttributeString,\n voidElementNames\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { createRenderInstruction } from \"./instruction.js\";\nimport { renderElement } from \"./util.js\";\nconst uniqueElements = (item, index, all) => {\n const props = JSON.stringify(item.props);\n const children = item.children;\n return index === all.findIndex((i) => JSON.stringify(i.props) === props && i.children == children);\n};\nfunction renderAllHeadContent(result) {\n result._metadata.hasRenderedHead = true;\n const styles = Array.from(result.styles).filter(uniqueElements).map(\n (style) => style.props.rel === \"stylesheet\" ? renderElement(\"link\", style) : renderElement(\"style\", style)\n );\n result.styles.clear();\n const scripts = Array.from(result.scripts).filter(uniqueElements).map((script) => {\n return renderElement(\"script\", script, false);\n });\n const links = Array.from(result.links).filter(uniqueElements).map((link) => renderElement(\"link\", link, false));\n let content = styles.join(\"\\n\") + links.join(\"\\n\") + scripts.join(\"\\n\");\n if (result._metadata.extraHead.length > 0) {\n for (const part of result._metadata.extraHead) {\n content += part;\n }\n }\n return markHTMLString(content);\n}\nfunction renderHead() {\n return createRenderInstruction({ type: \"head\" });\n}\nfunction maybeRenderHead() {\n return createRenderInstruction({ type: \"maybe-head\" });\n}\nexport {\n maybeRenderHead,\n renderAllHeadContent,\n renderHead\n};\n","import { markHTMLString } from \"../../escape.js\";\nimport { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { renderToBufferDestination } from \"../util.js\";\nconst renderTemplateResultSym = Symbol.for(\"astro.renderTemplateResult\");\nclass RenderTemplateResult {\n [renderTemplateResultSym] = true;\n htmlParts;\n expressions;\n error;\n constructor(htmlParts, expressions) {\n this.htmlParts = htmlParts;\n this.error = void 0;\n this.expressions = expressions.map((expression) => {\n if (isPromise(expression)) {\n return Promise.resolve(expression).catch((err) => {\n if (!this.error) {\n this.error = err;\n throw err;\n }\n });\n }\n return expression;\n });\n }\n async render(destination) {\n const expRenders = this.expressions.map((exp) => {\n return renderToBufferDestination((bufferDestination) => {\n if (exp || exp === 0) {\n return renderChild(bufferDestination, exp);\n }\n });\n });\n for (let i = 0; i < this.htmlParts.length; i++) {\n const html = this.htmlParts[i];\n const expRender = expRenders[i];\n destination.write(markHTMLString(html));\n if (expRender) {\n await expRender.renderToFinalDestination(destination);\n }\n }\n }\n}\nfunction isRenderTemplateResult(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[renderTemplateResultSym];\n}\nfunction renderTemplate(htmlParts, ...expressions) {\n return new RenderTemplateResult(htmlParts, expressions);\n}\nexport {\n RenderTemplateResult,\n isRenderTemplateResult,\n renderTemplate\n};\n","import { renderTemplate } from \"./astro/render-template.js\";\nimport { HTMLString, markHTMLString, unescapeHTML } from \"../escape.js\";\nimport { renderChild } from \"./any.js\";\nimport { chunkToString } from \"./common.js\";\nconst slotString = Symbol.for(\"astro:slot-string\");\nclass SlotString extends HTMLString {\n instructions;\n [slotString];\n constructor(content, instructions) {\n super(content);\n this.instructions = instructions;\n this[slotString] = true;\n }\n}\nfunction isSlotString(str) {\n return !!str[slotString];\n}\nfunction renderSlot(result, slotted, fallback) {\n if (!slotted && fallback) {\n return renderSlot(result, fallback);\n }\n return {\n async render(destination) {\n await renderChild(destination, typeof slotted === \"function\" ? slotted(result) : slotted);\n }\n };\n}\nasync function renderSlotToString(result, slotted, fallback) {\n let content = \"\";\n let instructions = null;\n const temporaryDestination = {\n write(chunk) {\n if (chunk instanceof SlotString) {\n content += chunk;\n if (chunk.instructions) {\n instructions ??= [];\n instructions.push(...chunk.instructions);\n }\n } else if (chunk instanceof Response) return;\n else if (typeof chunk === \"object\" && \"type\" in chunk && typeof chunk.type === \"string\") {\n if (instructions === null) {\n instructions = [];\n }\n instructions.push(chunk);\n } else {\n content += chunkToString(result, chunk);\n }\n }\n };\n const renderInstance = renderSlot(result, slotted, fallback);\n await renderInstance.render(temporaryDestination);\n return markHTMLString(new SlotString(content, instructions));\n}\nasync function renderSlots(result, slots = {}) {\n let slotInstructions = null;\n let children = {};\n if (slots) {\n await Promise.all(\n Object.entries(slots).map(\n ([key, value]) => renderSlotToString(result, value).then((output) => {\n if (output.instructions) {\n if (slotInstructions === null) {\n slotInstructions = [];\n }\n slotInstructions.push(...output.instructions);\n }\n children[key] = output;\n })\n )\n );\n }\n return { slotInstructions, children };\n}\nfunction createSlotValueFromString(content) {\n return function() {\n return renderTemplate`${unescapeHTML(content)}`;\n };\n}\nexport {\n SlotString,\n createSlotValueFromString,\n isSlotString,\n renderSlot,\n renderSlotToString,\n renderSlots\n};\n","import { markHTMLString } from \"../escape.js\";\nimport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n} from \"../scripts.js\";\nimport { renderAllHeadContent } from \"./head.js\";\nimport { isRenderInstruction } from \"./instruction.js\";\nimport { isSlotString } from \"./slot.js\";\nconst Fragment = Symbol.for(\"astro:fragment\");\nconst Renderer = Symbol.for(\"astro:renderer\");\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction stringifyChunk(result, chunk) {\n if (isRenderInstruction(chunk)) {\n const instruction = chunk;\n switch (instruction.type) {\n case \"directive\": {\n const { hydration } = instruction;\n let needsHydrationScript = hydration && determineIfNeedsHydrationScript(result);\n let needsDirectiveScript = hydration && determinesIfNeedsDirectiveScript(result, hydration.directive);\n let prescriptType = needsHydrationScript ? \"both\" : needsDirectiveScript ? \"directive\" : null;\n if (prescriptType) {\n let prescripts = getPrescripts(result, prescriptType, hydration.directive);\n return markHTMLString(prescripts);\n } else {\n return \"\";\n }\n }\n case \"head\": {\n if (result._metadata.hasRenderedHead || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"maybe-head\": {\n if (result._metadata.hasRenderedHead || result._metadata.headInTree || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"renderer-hydration-script\": {\n const { rendererSpecificHydrationScripts } = result._metadata;\n const { rendererName } = instruction;\n if (!rendererSpecificHydrationScripts.has(rendererName)) {\n rendererSpecificHydrationScripts.add(rendererName);\n return instruction.render();\n }\n return \"\";\n }\n default: {\n throw new Error(`Unknown chunk type: ${chunk.type}`);\n }\n }\n } else if (chunk instanceof Response) {\n return \"\";\n } else if (isSlotString(chunk)) {\n let out = \"\";\n const c = chunk;\n if (c.instructions) {\n for (const instr of c.instructions) {\n out += stringifyChunk(result, instr);\n }\n }\n out += chunk.toString();\n return out;\n }\n return chunk.toString();\n}\nfunction chunkToString(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return decoder.decode(chunk);\n } else {\n return stringifyChunk(result, chunk);\n }\n}\nfunction chunkToByteArray(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return chunk;\n } else {\n const stringified = stringifyChunk(result, chunk);\n return encoder.encode(stringified.toString());\n }\n}\nfunction isRenderInstance(obj) {\n return !!obj && typeof obj === \"object\" && \"render\" in obj && typeof obj.render === \"function\";\n}\nexport {\n Fragment,\n Renderer,\n chunkToByteArray,\n chunkToString,\n decoder,\n encoder,\n isRenderInstance\n};\n","import { escapeHTML, isHTMLString, markHTMLString } from \"../escape.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentInstance, isRenderTemplateResult } from \"./astro/index.js\";\nimport { isRenderInstance } from \"./common.js\";\nimport { SlotString } from \"./slot.js\";\nimport { renderToBufferDestination } from \"./util.js\";\nasync function renderChild(destination, child) {\n if (isPromise(child)) {\n child = await child;\n }\n if (child instanceof SlotString) {\n destination.write(child);\n } else if (isHTMLString(child)) {\n destination.write(child);\n } else if (Array.isArray(child)) {\n const childRenders = child.map((c) => {\n return renderToBufferDestination((bufferDestination) => {\n return renderChild(bufferDestination, c);\n });\n });\n for (const childRender of childRenders) {\n if (!childRender) continue;\n await childRender.renderToFinalDestination(destination);\n }\n } else if (typeof child === \"function\") {\n await renderChild(destination, child());\n } else if (typeof child === \"string\") {\n destination.write(markHTMLString(escapeHTML(child)));\n } else if (!child && child !== 0) {\n } else if (isRenderInstance(child)) {\n await child.render(destination);\n } else if (isRenderTemplateResult(child)) {\n await child.render(destination);\n } else if (isAstroComponentInstance(child)) {\n await child.render(destination);\n } else if (ArrayBuffer.isView(child)) {\n destination.write(child);\n } else if (typeof child === \"object\" && (Symbol.asyncIterator in child || Symbol.iterator in child)) {\n for await (const value of child) {\n await renderChild(destination, value);\n }\n } else {\n destination.write(child);\n }\n}\nexport {\n renderChild\n};\n","import { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { isAPropagatingComponent } from \"./factory.js\";\nimport { isHeadAndContent } from \"./head-and-content.js\";\nconst astroComponentInstanceSym = Symbol.for(\"astro.componentInstance\");\nclass AstroComponentInstance {\n [astroComponentInstanceSym] = true;\n result;\n props;\n slotValues;\n factory;\n returnValue;\n constructor(result, props, slots, factory) {\n this.result = result;\n this.props = props;\n this.factory = factory;\n this.slotValues = {};\n for (const name in slots) {\n let didRender = false;\n let value = slots[name](result);\n this.slotValues[name] = () => {\n if (!didRender) {\n didRender = true;\n return value;\n }\n return slots[name](result);\n };\n }\n }\n async init(result) {\n if (this.returnValue !== void 0) return this.returnValue;\n this.returnValue = this.factory(result, this.props, this.slotValues);\n if (isPromise(this.returnValue)) {\n this.returnValue.then((resolved) => {\n this.returnValue = resolved;\n }).catch(() => {\n });\n }\n return this.returnValue;\n }\n async render(destination) {\n const returnValue = await this.init(this.result);\n if (isHeadAndContent(returnValue)) {\n await returnValue.content.render(destination);\n } else {\n await renderChild(destination, returnValue);\n }\n }\n}\nfunction validateComponentProps(props, displayName) {\n if (props != null) {\n for (const prop of Object.keys(props)) {\n if (prop.startsWith(\"client:\")) {\n console.warn(\n `You are attempting to render <${displayName} ${prop} />, but ${displayName} is an Astro component. Astro components do not render in the client and should not have a hydration directive. Please use a framework component for client rendering.`\n );\n }\n }\n }\n}\nfunction createAstroComponentInstance(result, displayName, factory, props, slots = {}) {\n validateComponentProps(props, displayName);\n const instance = new AstroComponentInstance(result, props, slots, factory);\n if (isAPropagatingComponent(result, factory)) {\n result._metadata.propagators.add(instance);\n }\n return instance;\n}\nfunction isAstroComponentInstance(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[astroComponentInstanceSym];\n}\nexport {\n AstroComponentInstance,\n createAstroComponentInstance,\n isAstroComponentInstance\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { renderSlotToString } from \"./slot.js\";\nimport { toAttributeString } from \"./util.js\";\nfunction componentIsHTMLElement(Component) {\n return typeof HTMLElement !== \"undefined\" && HTMLElement.isPrototypeOf(Component);\n}\nasync function renderHTMLElement(result, constructor, props, slots) {\n const name = getHTMLElementName(constructor);\n let attrHTML = \"\";\n for (const attr in props) {\n attrHTML += ` ${attr}=\"${toAttributeString(await props[attr])}\"`;\n }\n return markHTMLString(\n `<${name}${attrHTML}>${await renderSlotToString(result, slots?.default)}`\n );\n}\nfunction getHTMLElementName(constructor) {\n const definedName = customElements.getName(constructor);\n if (definedName) return definedName;\n const assignedName = constructor.name.replace(/^HTML|Element$/g, \"\").replace(/[A-Z]/g, \"-$&\").toLowerCase().replace(/^-/, \"html-\");\n return assignedName;\n}\nexport {\n componentIsHTMLElement,\n renderHTMLElement\n};\n","import { decodeBase64, decodeHex, encodeBase64, encodeHexUpperCase } from \"@oslojs/encoding\";\nconst ALGORITHM = \"AES-GCM\";\nasync function createKey() {\n const key = await crypto.subtle.generateKey(\n {\n name: ALGORITHM,\n length: 256\n },\n true,\n [\"encrypt\", \"decrypt\"]\n );\n return key;\n}\nconst ENVIRONMENT_KEY_NAME = \"ASTRO_KEY\";\nfunction getEncodedEnvironmentKey() {\n return process.env[ENVIRONMENT_KEY_NAME] || \"\";\n}\nfunction hasEnvironmentKey() {\n return getEncodedEnvironmentKey() !== \"\";\n}\nasync function getEnvironmentKey() {\n if (!hasEnvironmentKey()) {\n throw new Error(\n `There is no environment key defined. If you see this error there is a bug in Astro.`\n );\n }\n const encodedKey = getEncodedEnvironmentKey();\n return decodeKey(encodedKey);\n}\nasync function importKey(bytes) {\n const key = await crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n return key;\n}\nasync function encodeKey(key) {\n const exported = await crypto.subtle.exportKey(\"raw\", key);\n const encodedKey = encodeBase64(new Uint8Array(exported));\n return encodedKey;\n}\nasync function decodeKey(encoded) {\n const bytes = decodeBase64(encoded);\n return crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n}\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst IV_LENGTH = 24;\nasync function encryptString(key, raw) {\n const iv = crypto.getRandomValues(new Uint8Array(IV_LENGTH / 2));\n const data = encoder.encode(raw);\n const buffer = await crypto.subtle.encrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n data\n );\n return encodeHexUpperCase(iv) + encodeBase64(new Uint8Array(buffer));\n}\nasync function decryptString(key, encoded) {\n const iv = decodeHex(encoded.slice(0, IV_LENGTH));\n const dataArray = decodeBase64(encoded.slice(IV_LENGTH));\n const decryptedBuffer = await crypto.subtle.decrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n dataArray\n );\n const decryptedString = decoder.decode(decryptedBuffer);\n return decryptedString;\n}\nexport {\n createKey,\n decodeKey,\n decryptString,\n encodeKey,\n encryptString,\n getEncodedEnvironmentKey,\n getEnvironmentKey,\n hasEnvironmentKey,\n importKey\n};\n","import { encryptString } from \"../../../core/encryption.js\";\nimport { renderChild } from \"./any.js\";\nimport { renderSlotToString } from \"./slot.js\";\nconst internalProps = /* @__PURE__ */ new Set([\n \"server:component-path\",\n \"server:component-export\",\n \"server:component-directive\",\n \"server:defer\"\n]);\nfunction containsServerDirective(props) {\n return \"server:component-directive\" in props;\n}\nfunction safeJsonStringify(obj) {\n return JSON.stringify(obj).replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\").replace(//g, \"\\\\u003e\").replace(/\\//g, \"\\\\u002f\");\n}\nfunction createSearchParams(componentExport, encryptedProps, slots) {\n const params = new URLSearchParams();\n params.set(\"e\", componentExport);\n params.set(\"p\", encryptedProps);\n params.set(\"s\", slots);\n return params;\n}\nfunction isWithinURLLimit(pathname, params) {\n const url = pathname + \"?\" + params.toString();\n const chars = url.length;\n return chars < 2048;\n}\nfunction renderServerIsland(result, _displayName, props, slots) {\n return {\n async render(destination) {\n const componentPath = props[\"server:component-path\"];\n const componentExport = props[\"server:component-export\"];\n const componentId = result.serverIslandNameMap.get(componentPath);\n if (!componentId) {\n throw new Error(`Could not find server component name`);\n }\n for (const key2 of Object.keys(props)) {\n if (internalProps.has(key2)) {\n delete props[key2];\n }\n }\n destination.write(\"\");\n const renderedSlots = {};\n for (const name in slots) {\n if (name !== \"fallback\") {\n const content = await renderSlotToString(result, slots[name]);\n renderedSlots[name] = content.toString();\n } else {\n await renderChild(destination, slots.fallback(result));\n }\n }\n const key = await result.key;\n const propsEncrypted = await encryptString(key, JSON.stringify(props));\n const hostId = crypto.randomUUID();\n const slash = result.base.endsWith(\"/\") ? \"\" : \"/\";\n let serverIslandUrl = `${result.base}${slash}_server-islands/${componentId}${result.trailingSlash === \"always\" ? \"/\" : \"\"}`;\n const potentialSearchParams = createSearchParams(\n componentExport,\n propsEncrypted,\n safeJsonStringify(renderedSlots)\n );\n const useGETRequest = isWithinURLLimit(serverIslandUrl, potentialSearchParams);\n if (useGETRequest) {\n serverIslandUrl += \"?\" + potentialSearchParams.toString();\n destination.write(\n ``\n );\n }\n destination.write(``);\n }\n };\n}\nexport {\n containsServerDirective,\n renderServerIsland\n};\n","import { createRenderInstruction } from \"./instruction.js\";\nimport { clsx } from \"clsx\";\nimport { AstroError, AstroErrorData } from \"../../../core/errors/index.js\";\nimport { markHTMLString } from \"../escape.js\";\nimport { extractDirectives, generateHydrateScript } from \"../hydration.js\";\nimport { serializeProps } from \"../serialize.js\";\nimport { shorthash } from \"../shorthash.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentFactory } from \"./astro/factory.js\";\nimport { renderTemplate } from \"./astro/index.js\";\nimport { createAstroComponentInstance } from \"./astro/instance.js\";\nimport {\n Fragment,\n Renderer,\n chunkToString\n} from \"./common.js\";\nimport { componentIsHTMLElement, renderHTMLElement } from \"./dom.js\";\nimport { maybeRenderHead } from \"./head.js\";\nimport { containsServerDirective, renderServerIsland } from \"./server-islands.js\";\nimport { renderSlotToString, renderSlots } from \"./slot.js\";\nimport { formatList, internalSpreadAttributes, renderElement, voidElementNames } from \"./util.js\";\nconst needsHeadRenderingSymbol = Symbol.for(\"astro.needsHeadRendering\");\nconst rendererAliases = /* @__PURE__ */ new Map([[\"solid\", \"solid-js\"]]);\nconst clientOnlyValues = /* @__PURE__ */ new Set([\"solid-js\", \"react\", \"preact\", \"vue\", \"svelte\"]);\nfunction guessRenderers(componentUrl) {\n const extname = componentUrl?.split(\".\").pop();\n switch (extname) {\n case \"svelte\":\n return [\"@astrojs/svelte\"];\n case \"vue\":\n return [\"@astrojs/vue\"];\n case \"jsx\":\n case \"tsx\":\n return [\"@astrojs/react\", \"@astrojs/preact\", \"@astrojs/solid-js\", \"@astrojs/vue (jsx)\"];\n case void 0:\n default:\n return [\n \"@astrojs/react\",\n \"@astrojs/preact\",\n \"@astrojs/solid-js\",\n \"@astrojs/vue\",\n \"@astrojs/svelte\"\n ];\n }\n}\nfunction isFragmentComponent(Component) {\n return Component === Fragment;\n}\nfunction isHTMLComponent(Component) {\n return Component && Component[\"astro:html\"] === true;\n}\nconst ASTRO_SLOT_EXP = /<\\/?astro-slot\\b[^>]*>/g;\nconst ASTRO_STATIC_SLOT_EXP = /<\\/?astro-static-slot\\b[^>]*>/g;\nfunction removeStaticAstroSlot(html, supportsAstroStaticSlot = true) {\n const exp = supportsAstroStaticSlot ? ASTRO_STATIC_SLOT_EXP : ASTRO_SLOT_EXP;\n return html.replace(exp, \"\");\n}\nasync function renderFrameworkComponent(result, displayName, Component, _props, slots = {}) {\n if (!Component && \"client:only\" in _props === false) {\n throw new Error(\n `Unable to render ${displayName} because it is ${Component}!\nDid you forget to import the component or is it possible there is a typo?`\n );\n }\n const { renderers, clientDirectives } = result;\n const metadata = {\n astroStaticSlot: true,\n displayName\n };\n const { hydration, isPage, props, propsWithoutTransitionAttributes } = extractDirectives(\n _props,\n clientDirectives\n );\n let html = \"\";\n let attrs = void 0;\n if (hydration) {\n metadata.hydrate = hydration.directive;\n metadata.hydrateArgs = hydration.value;\n metadata.componentExport = hydration.componentExport;\n metadata.componentUrl = hydration.componentUrl;\n }\n const probableRendererNames = guessRenderers(metadata.componentUrl);\n const validRenderers = renderers.filter((r) => r.name !== \"astro:jsx\");\n const { children, slotInstructions } = await renderSlots(result, slots);\n let renderer;\n if (metadata.hydrate !== \"only\") {\n let isTagged = false;\n try {\n isTagged = Component && Component[Renderer];\n } catch {\n }\n if (isTagged) {\n const rendererName = Component[Renderer];\n renderer = renderers.find(({ name }) => name === rendererName);\n }\n if (!renderer) {\n let error;\n for (const r of renderers) {\n try {\n if (await r.ssr.check.call({ result }, Component, props, children)) {\n renderer = r;\n break;\n }\n } catch (e) {\n error ??= e;\n }\n }\n if (!renderer && error) {\n throw error;\n }\n }\n if (!renderer && typeof HTMLElement === \"function\" && componentIsHTMLElement(Component)) {\n const output = await renderHTMLElement(\n result,\n Component,\n _props,\n slots\n );\n return {\n render(destination) {\n destination.write(output);\n }\n };\n }\n } else {\n if (metadata.hydrateArgs) {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n renderer = renderers.find(\n ({ name }) => name === `@astrojs/${rendererName}` || name === rendererName\n );\n }\n }\n if (!renderer && validRenderers.length === 1) {\n renderer = validRenderers[0];\n }\n if (!renderer) {\n const extname = metadata.componentUrl?.split(\".\").pop();\n renderer = renderers.find(({ name }) => name === `@astrojs/${extname}` || name === extname);\n }\n }\n let componentServerRenderEndTime;\n if (!renderer) {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n const plural = validRenderers.length > 1;\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else {\n throw new AstroError({\n ...AstroErrorData.NoClientOnlyHint,\n message: AstroErrorData.NoClientOnlyHint.message(metadata.displayName),\n hint: AstroErrorData.NoClientOnlyHint.hint(\n probableRendererNames.map((r) => r.replace(\"@astrojs/\", \"\")).join(\"|\")\n )\n });\n }\n } else if (typeof Component !== \"string\") {\n const matchingRenderers = validRenderers.filter(\n (r) => probableRendererNames.includes(r.name)\n );\n const plural = validRenderers.length > 1;\n if (matchingRenderers.length === 0) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else if (matchingRenderers.length === 1) {\n renderer = matchingRenderers[0];\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n } else {\n throw new Error(`Unable to render ${metadata.displayName}!\n\nThis component likely uses ${formatList(probableRendererNames)},\nbut Astro encountered an error during server-side rendering.\n\nPlease ensure that ${metadata.displayName}:\n1. Does not unconditionally access browser-specific globals like \\`window\\` or \\`document\\`.\n If this is unavoidable, use the \\`client:only\\` hydration directive.\n2. Does not conditionally return \\`null\\` or \\`undefined\\` when rendered on the server.\n\nIf you're still stuck, please open an issue on GitHub or join us at https://astro.build/chat.`);\n }\n }\n } else {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (!clientOnlyValues.has(rendererName)) {\n console.warn(\n `The client:only directive for ${metadata.displayName} is not recognized. The renderer ${renderer.name} will be used. If you intended to use a different renderer, please provide a valid client:only directive.`\n );\n }\n html = await renderSlotToString(result, slots?.fallback);\n } else {\n const componentRenderStartTime = performance.now();\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n if (process.env.NODE_ENV === \"development\")\n componentServerRenderEndTime = performance.now() - componentRenderStartTime;\n }\n }\n if (!html && typeof Component === \"string\") {\n const Tag = sanitizeElementName(Component);\n const childSlots = Object.values(children).join(\"\");\n const renderTemplateResult = renderTemplate`<${Tag}${internalSpreadAttributes(\n props\n )}${markHTMLString(\n childSlots === \"\" && voidElementNames.test(Tag) ? `/>` : `>${childSlots}`\n )}`;\n html = \"\";\n const destination = {\n write(chunk) {\n if (chunk instanceof Response) return;\n html += chunkToString(result, chunk);\n }\n };\n await renderTemplateResult.render(destination);\n }\n if (!hydration) {\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n if (isPage || renderer?.name === \"astro:jsx\") {\n destination.write(html);\n } else if (html && html.length > 0) {\n destination.write(\n markHTMLString(removeStaticAstroSlot(html, renderer?.ssr?.supportsAstroStaticSlot))\n );\n }\n }\n };\n }\n const astroId = shorthash(\n `\n${html}\n${serializeProps(\n props,\n metadata\n )}`\n );\n const island = await generateHydrateScript(\n { renderer, result, astroId, props, attrs },\n metadata\n );\n if (componentServerRenderEndTime && process.env.NODE_ENV === \"development\")\n island.props[\"server-render-time\"] = componentServerRenderEndTime;\n let unrenderedSlots = [];\n if (html) {\n if (Object.keys(children).length > 0) {\n for (const key of Object.keys(children)) {\n let tagName = renderer?.ssr?.supportsAstroStaticSlot ? !!metadata.hydrate ? \"astro-slot\" : \"astro-static-slot\" : \"astro-slot\";\n let expectedHTML = key === \"default\" ? `<${tagName}>` : `<${tagName} name=\"${key}\">`;\n if (!html.includes(expectedHTML)) {\n unrenderedSlots.push(key);\n }\n }\n }\n } else {\n unrenderedSlots = Object.keys(children);\n }\n const template = unrenderedSlots.length > 0 ? unrenderedSlots.map(\n (key) => ``\n ).join(\"\") : \"\";\n island.children = `${html ?? \"\"}${template}`;\n if (island.children) {\n island.props[\"await-children\"] = \"\";\n island.children += ``;\n }\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n destination.write(createRenderInstruction({ type: \"directive\", hydration }));\n if (hydration.directive !== \"only\" && renderer?.ssr.renderHydrationScript) {\n destination.write(\n createRenderInstruction({\n type: \"renderer-hydration-script\",\n rendererName: renderer.name,\n render: renderer.ssr.renderHydrationScript\n })\n );\n }\n const renderedElement = renderElement(\"astro-island\", island, false);\n destination.write(markHTMLString(renderedElement));\n }\n };\n}\nfunction sanitizeElementName(tag) {\n const unsafe = /[&<>'\"\\s]+/;\n if (!unsafe.test(tag)) return tag;\n return tag.trim().split(unsafe)[0].trim();\n}\nasync function renderFragmentComponent(result, slots = {}) {\n const children = await renderSlotToString(result, slots?.default);\n return {\n render(destination) {\n if (children == null) return;\n destination.write(children);\n }\n };\n}\nasync function renderHTMLComponent(result, Component, _props, slots = {}) {\n const { slotInstructions, children } = await renderSlots(result, slots);\n const html = Component({ slots: children });\n const hydrationHtml = slotInstructions ? slotInstructions.map((instr) => chunkToString(result, instr)).join(\"\") : \"\";\n return {\n render(destination) {\n destination.write(markHTMLString(hydrationHtml + html));\n }\n };\n}\nfunction renderAstroComponent(result, displayName, Component, props, slots = {}) {\n if (containsServerDirective(props)) {\n return renderServerIsland(result, displayName, props, slots);\n }\n const instance = createAstroComponentInstance(result, displayName, Component, props, slots);\n return {\n async render(destination) {\n await instance.render(destination);\n }\n };\n}\nasync function renderComponent(result, displayName, Component, props, slots = {}) {\n if (isPromise(Component)) {\n Component = await Component.catch(handleCancellation);\n }\n if (isFragmentComponent(Component)) {\n return await renderFragmentComponent(result, slots).catch(handleCancellation);\n }\n props = normalizeProps(props);\n if (isHTMLComponent(Component)) {\n return await renderHTMLComponent(result, Component, props, slots).catch(handleCancellation);\n }\n if (isAstroComponentFactory(Component)) {\n return renderAstroComponent(result, displayName, Component, props, slots);\n }\n return await renderFrameworkComponent(result, displayName, Component, props, slots).catch(\n handleCancellation\n );\n function handleCancellation(e) {\n if (result.cancelled)\n return {\n render() {\n }\n };\n throw e;\n }\n}\nfunction normalizeProps(props) {\n if (props[\"class:list\"] !== void 0) {\n const value = props[\"class:list\"];\n delete props[\"class:list\"];\n props[\"class\"] = clsx(props[\"class\"], value);\n if (props[\"class\"] === \"\") {\n delete props[\"class\"];\n }\n }\n return props;\n}\nasync function renderComponentToString(result, displayName, Component, props, slots = {}, isPage = false, route) {\n let str = \"\";\n let renderedFirstPageChunk = false;\n let head = \"\";\n if (isPage && !result.partial && nonAstroPageNeedsHeadInjection(Component)) {\n head += chunkToString(result, maybeRenderHead());\n }\n try {\n const destination = {\n write(chunk) {\n if (isPage && !result.partial && !renderedFirstPageChunk) {\n renderedFirstPageChunk = true;\n if (!/\" : \"\\n\";\n str += doctype + head;\n }\n }\n if (chunk instanceof Response) return;\n str += chunkToString(result, chunk);\n }\n };\n const renderInstance = await renderComponent(result, displayName, Component, props, slots);\n await renderInstance.render(destination);\n } catch (e) {\n if (AstroError.is(e) && !e.loc) {\n e.setLocation({\n file: route?.component\n });\n }\n throw e;\n }\n return str;\n}\nfunction nonAstroPageNeedsHeadInjection(pageComponent) {\n return !!pageComponent?.[needsHeadRenderingSymbol];\n}\nexport {\n renderComponent,\n renderComponentToString\n};\n","import { markHTMLString } from \"../escape.js\";\nasync function renderScript(result, id) {\n if (result._metadata.renderedScripts.has(id)) return;\n result._metadata.renderedScripts.add(id);\n const inlined = result.inlinedScripts.get(id);\n if (inlined != null) {\n if (inlined) {\n return markHTMLString(``);\n } else {\n return \"\";\n }\n }\n const resolved = await result.resolve(id);\n return markHTMLString(``);\n}\nexport {\n renderScript\n};\n","import cssesc from \"cssesc\";\nimport { fade, slide } from \"../../transitions/index.js\";\nimport { markHTMLString } from \"./escape.js\";\nconst transitionNameMap = /* @__PURE__ */ new WeakMap();\nfunction incrementTransitionNumber(result) {\n let num = 1;\n if (transitionNameMap.has(result)) {\n num = transitionNameMap.get(result) + 1;\n }\n transitionNameMap.set(result, num);\n return num;\n}\nfunction createTransitionScope(result, hash) {\n const num = incrementTransitionNumber(result);\n return `astro-${hash}-${num}`;\n}\nconst getAnimations = (name) => {\n if (name === \"fade\") return fade();\n if (name === \"slide\") return slide();\n if (typeof name === \"object\") return name;\n};\nconst addPairs = (animations, stylesheet) => {\n for (const [direction, images] of Object.entries(animations)) {\n for (const [image, rules] of Object.entries(images)) {\n stylesheet.addAnimationPair(direction, image, rules);\n }\n }\n};\nconst reEncodeValidChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nconst reEncodeInValidStart = \"-0123456789_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nfunction reEncode(s) {\n let result = \"\";\n let codepoint;\n for (let i = 0; i < s.length; i += (codepoint ?? 0) > 65535 ? 2 : 1) {\n codepoint = s.codePointAt(i);\n if (codepoint !== void 0) {\n result += codepoint < 128 ? codepoint === 95 ? \"__\" : reEncodeValidChars[codepoint] ?? \"_\" + codepoint.toString(16).padStart(2, \"0\") : String.fromCodePoint(codepoint);\n }\n }\n return reEncodeInValidStart[result.codePointAt(0) ?? 0] ? \"_\" + result : result;\n}\nfunction renderTransition(result, hash, animationName, transitionName) {\n if (typeof (transitionName ?? \"\") !== \"string\") {\n throw new Error(`Invalid transition name {${transitionName}}`);\n }\n if (!animationName) animationName = \"fade\";\n const scope = createTransitionScope(result, hash);\n const name = transitionName ? cssesc(reEncode(transitionName), { isIdentifier: true }) : scope;\n const sheet = new ViewTransitionStyleSheet(scope, name);\n const animations = getAnimations(animationName);\n if (animations) {\n addPairs(animations, sheet);\n } else if (animationName === \"none\") {\n sheet.addFallback(\"old\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"old\", \"animation: none; opacity: 0; mix-blend-mode: normal;\");\n sheet.addAnimationRaw(\"new\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"group\", \"animation: none\");\n }\n result._metadata.extraHead.push(markHTMLString(``));\n return scope;\n}\nfunction createAnimationScope(transitionName, animations) {\n const hash = Math.random().toString(36).slice(2, 8);\n const scope = `astro-${hash}`;\n const sheet = new ViewTransitionStyleSheet(scope, transitionName);\n addPairs(animations, sheet);\n return { scope, styles: sheet.toString().replaceAll('\"', \"\") };\n}\nclass ViewTransitionStyleSheet {\n constructor(scope, name) {\n this.scope = scope;\n this.name = name;\n }\n modern = [];\n fallback = [];\n toString() {\n const { scope, name } = this;\n const [modern, fallback] = [this.modern, this.fallback].map((rules) => rules.join(\"\"));\n return [\n `[data-astro-transition-scope=\"${scope}\"] { view-transition-name: ${name}; }`,\n this.layer(modern),\n fallback\n ].join(\"\");\n }\n layer(cssText) {\n return cssText ? `@layer astro { ${cssText} }` : \"\";\n }\n addRule(target, cssText) {\n this[target].push(cssText);\n }\n addAnimationRaw(image, animation) {\n this.addModern(image, animation);\n this.addFallback(image, animation);\n }\n addModern(image, animation) {\n const { name } = this;\n this.addRule(\"modern\", `::view-transition-${image}(${name}) { ${animation} }`);\n }\n addFallback(image, animation) {\n const { scope } = this;\n this.addRule(\n \"fallback\",\n // Two selectors here, the second in case there is an animation on the root.\n `[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n addAnimationPair(direction, image, rules) {\n const { scope, name } = this;\n const animation = stringifyAnimation(rules);\n const prefix = direction === \"backwards\" ? `[data-astro-transition=back]` : direction === \"forwards\" ? \"\" : `[data-astro-transition=${direction}]`;\n this.addRule(\"modern\", `${prefix}::view-transition-${image}(${name}) { ${animation} }`);\n this.addRule(\n \"fallback\",\n `${prefix}[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t${prefix}[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n}\nfunction addAnimationProperty(builder, prop, value) {\n let arr = builder[prop];\n if (Array.isArray(arr)) {\n arr.push(value.toString());\n } else {\n builder[prop] = [value.toString()];\n }\n}\nfunction animationBuilder() {\n return {\n toString() {\n let out = \"\";\n for (let k in this) {\n let value = this[k];\n if (Array.isArray(value)) {\n out += `\n\t${k}: ${value.join(\", \")};`;\n }\n }\n return out;\n }\n };\n}\nfunction stringifyAnimation(anim) {\n if (Array.isArray(anim)) {\n return stringifyAnimations(anim);\n } else {\n return stringifyAnimations([anim]);\n }\n}\nfunction stringifyAnimations(anims) {\n const builder = animationBuilder();\n for (const anim of anims) {\n if (anim.duration) {\n addAnimationProperty(builder, \"animation-duration\", toTimeValue(anim.duration));\n }\n if (anim.easing) {\n addAnimationProperty(builder, \"animation-timing-function\", anim.easing);\n }\n if (anim.direction) {\n addAnimationProperty(builder, \"animation-direction\", anim.direction);\n }\n if (anim.delay) {\n addAnimationProperty(builder, \"animation-delay\", anim.delay);\n }\n if (anim.fillMode) {\n addAnimationProperty(builder, \"animation-fill-mode\", anim.fillMode);\n }\n addAnimationProperty(builder, \"animation-name\", anim.name);\n }\n return builder.toString();\n}\nfunction toTimeValue(num) {\n return typeof num === \"number\" ? num + \"ms\" : num;\n}\nexport {\n createAnimationScope,\n createTransitionScope,\n renderTransition\n};\n","import { createComponent } from \"./astro-component.js\";\nimport { createAstro } from \"./astro-global.js\";\nimport { renderEndpoint } from \"./endpoint.js\";\nimport {\n escapeHTML,\n HTMLBytes,\n HTMLString,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n} from \"./escape.js\";\nimport { renderJSX } from \"./jsx.js\";\nimport {\n addAttribute,\n createHeadAndContent,\n defineScriptVars,\n Fragment,\n maybeRenderHead,\n renderTemplate,\n renderComponent,\n Renderer,\n renderHead,\n renderHTMLElement,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate as renderTemplate2,\n renderToString,\n renderUniqueStylesheet,\n voidElementNames\n} from \"./render/index.js\";\nimport { createTransitionScope, renderTransition } from \"./transition.js\";\nimport { markHTMLString as markHTMLString2 } from \"./escape.js\";\nimport { Renderer as Renderer2, addAttribute as addAttribute2 } from \"./render/index.js\";\nfunction mergeSlots(...slotted) {\n const slots = {};\n for (const slot of slotted) {\n if (!slot) continue;\n if (typeof slot === \"object\") {\n Object.assign(slots, slot);\n } else if (typeof slot === \"function\") {\n Object.assign(slots, mergeSlots(slot()));\n }\n }\n return slots;\n}\nfunction __astro_tag_component__(Component, rendererName) {\n if (!Component) return;\n if (typeof Component !== \"function\") return;\n Object.defineProperty(Component, Renderer2, {\n value: rendererName,\n enumerable: false,\n writable: false\n });\n}\nfunction spreadAttributes(values = {}, _name, { class: scopedClassName } = {}) {\n let output = \"\";\n if (scopedClassName) {\n if (typeof values.class !== \"undefined\") {\n values.class += ` ${scopedClassName}`;\n } else if (typeof values[\"class:list\"] !== \"undefined\") {\n values[\"class:list\"] = [values[\"class:list\"], scopedClassName];\n } else {\n values.class = scopedClassName;\n }\n }\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute2(value, key, true);\n }\n return markHTMLString2(output);\n}\nfunction defineStyleVars(defs) {\n let output = \"\";\n let arr = !Array.isArray(defs) ? [defs] : defs;\n for (const vars of arr) {\n for (const [key, value] of Object.entries(vars)) {\n if (value || value === 0) {\n output += `--${key}: ${value};`;\n }\n }\n }\n return markHTMLString2(output);\n}\nexport {\n Fragment,\n HTMLBytes,\n HTMLString,\n Renderer,\n __astro_tag_component__,\n addAttribute,\n createAstro,\n createComponent,\n createHeadAndContent,\n createTransitionScope,\n defineScriptVars,\n defineStyleVars,\n escapeHTML,\n isHTMLString,\n markHTMLString,\n maybeRenderHead,\n mergeSlots,\n renderTemplate as render,\n renderComponent,\n renderEndpoint,\n renderHTMLElement,\n renderHead,\n renderJSX,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate2 as renderTemplate,\n renderToString,\n renderTransition,\n renderUniqueStylesheet,\n spreadAttributes,\n unescapeHTML,\n voidElementNames\n};\n"],"names":["AstroErrorData.InvalidComponentArgs","AstroErrorData.AstroGlobUsedOutside","AstroErrorData.AstroGlobNoMatch","AstroErrorData.MissingMediaQueryDirective","AstroErrorData.NoMatchingImport","islandScriptDev","islandScript","AstroErrorData.NoMatchingRenderer","AstroErrorData.NoClientOnlyHint","addAttribute2","markHTMLString2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]} \ No newline at end of file diff --git a/Target/chunks/astro/server_Da53ieLQ.mjs.map b/Target/chunks/astro/server_Da53ieLQ.mjs.map new file mode 100644 index 00000000..6fbbdb5f --- /dev/null +++ b/Target/chunks/astro/server_Da53ieLQ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"server_Da53ieLQ.mjs","sources":["../../../../../../node_modules/astro/dist/core/errors/errors-data.js","../../../../../../node_modules/astro/dist/core/errors/utils.js","../../../../../../node_modules/astro/dist/core/errors/printer.js","../../../../../../node_modules/astro/dist/core/errors/errors.js","../../../../../../node_modules/astro/dist/runtime/server/astro-component.js","../../../../../../node_modules/astro/dist/core/constants.js","../../../../../../node_modules/astro/dist/runtime/server/astro-global.js","../../../../../../node_modules/astro/dist/runtime/server/util.js","../../../../../../node_modules/astro/dist/runtime/server/escape.js","../../../../../../node_modules/astro/dist/runtime/server/render/instruction.js","../../../../../../node_modules/astro/dist/runtime/server/serialize.js","../../../../../../node_modules/astro/dist/runtime/server/hydration.js","../../../../../../node_modules/astro/dist/runtime/server/shorthash.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/factory.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/head-and-content.js","../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt-dev.js","../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt.js","../../../../../../node_modules/astro/dist/runtime/server/scripts.js","../../../../../../node_modules/astro/dist/runtime/server/render/util.js","../../../../../../node_modules/astro/dist/runtime/server/render/head.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/render-template.js","../../../../../../node_modules/astro/dist/runtime/server/render/slot.js","../../../../../../node_modules/astro/dist/runtime/server/render/common.js","../../../../../../node_modules/astro/dist/runtime/server/render/any.js","../../../../../../node_modules/astro/dist/runtime/server/render/astro/instance.js","../../../../../../node_modules/astro/dist/runtime/server/render/dom.js","../../../../../../node_modules/astro/dist/core/encryption.js","../../../../../../node_modules/astro/dist/runtime/server/render/server-islands.js","../../../../../../node_modules/astro/dist/runtime/server/render/component.js","../../../../../../node_modules/astro/dist/runtime/server/render/script.js","../../../../../../node_modules/astro/dist/runtime/server/transition.js","../../../../../../node_modules/astro/dist/runtime/server/index.js"],"sourcesContent":["const UnknownCompilerError = {\n name: \"UnknownCompilerError\",\n title: \"Unknown compiler error.\",\n hint: \"This is almost always a problem with the Astro compiler, not your code. Please open an issue at https://astro.build/issues/compiler.\"\n};\nconst ClientAddressNotAvailable = {\n name: \"ClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in current adapter.\",\n message: (adapterName) => `\\`Astro.clientAddress\\` is not available in the \\`${adapterName}\\` adapter. File an issue with the adapter to add support.`\n};\nconst PrerenderClientAddressNotAvailable = {\n name: \"PrerenderClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` cannot be used inside prerendered routes.\",\n message: `\\`Astro.clientAddress\\` cannot be used inside prerendered routes`\n};\nconst StaticClientAddressNotAvailable = {\n name: \"StaticClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in prerendered pages.\",\n message: \"`Astro.clientAddress` is only available on pages that are server-rendered.\",\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.\"\n};\nconst NoMatchingStaticPathFound = {\n name: \"NoMatchingStaticPathFound\",\n title: \"No static path found for requested path.\",\n message: (pathName) => `A \\`getStaticPaths()\\` route pattern was matched, but no matching static path was found for requested path \\`${pathName}\\`.`,\n hint: (possibleRoutes) => `Possible dynamic routes being matched: ${possibleRoutes.join(\", \")}.`\n};\nconst OnlyResponseCanBeReturned = {\n name: \"OnlyResponseCanBeReturned\",\n title: \"Invalid type returned by Astro page.\",\n message: (route, returnedValue) => `Route \\`${route ? route : \"\"}\\` returned a \\`${returnedValue}\\`. Only a [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) can be returned from Astro files.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/#response for more information.\"\n};\nconst MissingMediaQueryDirective = {\n name: \"MissingMediaQueryDirective\",\n title: \"Missing value for `client:media` directive.\",\n message: 'Media query not provided for `client:media` directive. A media query similar to `client:media=\"(max-width: 600px)\"` must be provided'\n};\nconst NoMatchingRenderer = {\n name: \"NoMatchingRenderer\",\n title: \"No matching renderer found.\",\n message: (componentName, componentExtension, plural, validRenderersCount) => `Unable to render \\`${componentName}\\`.\n\n${validRenderersCount > 0 ? `There ${plural ? \"are\" : \"is\"} ${validRenderersCount} renderer${plural ? \"s\" : \"\"} configured in your \\`astro.config.mjs\\` file,\nbut ${plural ? \"none were\" : \"it was not\"} able to server-side render \\`${componentName}\\`.` : `No valid renderer was found ${componentExtension ? `for the \\`.${componentExtension}\\` file extension.` : `for this file extension.`}`}`,\n hint: (probableRenderers) => `Did you mean to enable the ${probableRenderers} integration?\n\nSee https://docs.astro.build/en/guides/framework-components/ for more information on how to install and configure integrations.`\n};\nconst NoClientEntrypoint = {\n name: \"NoClientEntrypoint\",\n title: \"No client entrypoint specified in renderer.\",\n message: (componentName, clientDirective, rendererName) => `\\`${componentName}\\` component has a \\`client:${clientDirective}\\` directive, but no client entrypoint was provided by \\`${rendererName}\\`.`,\n hint: \"See https://docs.astro.build/en/reference/integrations-reference/#addrenderer-option for more information on how to configure your renderer.\"\n};\nconst NoClientOnlyHint = {\n name: \"NoClientOnlyHint\",\n title: \"Missing hint on client:only directive.\",\n message: (componentName) => `Unable to render \\`${componentName}\\`. When using the \\`client:only\\` hydration strategy, Astro needs a hint to use the correct renderer.`,\n hint: (probableRenderers) => `Did you mean to pass \\`client:only=\"${probableRenderers}\"\\`? See https://docs.astro.build/en/reference/directives-reference/#clientonly for more information on client:only`\n};\nconst InvalidGetStaticPathParam = {\n name: \"InvalidGetStaticPathParam\",\n title: \"Invalid value returned by a `getStaticPaths` path.\",\n message: (paramType) => `Invalid params given to \\`getStaticPaths\\` path. Expected an \\`object\\`, got \\`${paramType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsEntry = {\n name: \"InvalidGetStaticPathsEntry\",\n title: \"Invalid entry inside getStaticPath's return value\",\n message: (entryType) => `Invalid entry returned by getStaticPaths. Expected an object, got \\`${entryType}\\``,\n hint: \"If you're using a `.map` call, you might be looking for `.flatMap()` instead. See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsReturn = {\n name: \"InvalidGetStaticPathsReturn\",\n title: \"Invalid value returned by getStaticPaths.\",\n message: (returnType) => `Invalid type returned by \\`getStaticPaths\\`. Expected an \\`array\\`, got \\`${returnType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsExpectedParams = {\n name: \"GetStaticPathsExpectedParams\",\n title: \"Missing params property on `getStaticPaths` route.\",\n message: \"Missing or empty required `params` property on `getStaticPaths` route.\",\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsInvalidRouteParam = {\n name: \"GetStaticPathsInvalidRouteParam\",\n title: \"Invalid value for `getStaticPaths` route parameter.\",\n message: (key, value, valueType) => `Invalid getStaticPaths route parameter for \\`${key}\\`. Expected undefined, a string or a number, received \\`${valueType}\\` (\\`${value}\\`)`,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsRequired = {\n name: \"GetStaticPathsRequired\",\n title: \"`getStaticPaths()` function required for dynamic routes.\",\n message: \"`getStaticPaths()` function is required for dynamic routes. Make sure that you `export` a `getStaticPaths` function from your dynamic route.\",\n hint: `See https://docs.astro.build/en/guides/routing/#dynamic-routes for more information on dynamic routes.\n\n\tIf you meant for this route to be server-rendered, set \\`export const prerender = false;\\` in the page.`\n};\nconst ReservedSlotName = {\n name: \"ReservedSlotName\",\n title: \"Invalid slot name.\",\n message: (slotName) => `Unable to create a slot named \\`${slotName}\\`. \\`${slotName}\\` is a reserved slot name. Please update the name of this slot.`\n};\nconst NoAdapterInstalled = {\n name: \"NoAdapterInstalled\",\n title: \"Cannot use Server-side Rendering without an adapter.\",\n message: `Cannot use server-rendered pages without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information.\"\n};\nconst AdapterSupportOutputMismatch = {\n name: \"AdapterSupportOutputMismatch\",\n title: \"Adapter does not support server output.\",\n message: (adapterName) => `The \\`${adapterName}\\` adapter is configured to output a static website, but the project contains server-rendered pages. Please install and configure the appropriate server adapter for your final deployment.`\n};\nconst NoAdapterInstalledServerIslands = {\n name: \"NoAdapterInstalledServerIslands\",\n title: \"Cannot use Server Islands without an adapter.\",\n message: `Cannot use server islands without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://5-0-0-beta.docs.astro.build/en/guides/on-demand-rendering/ for more information.\"\n};\nconst NoMatchingImport = {\n name: \"NoMatchingImport\",\n title: \"No import found for component.\",\n message: (componentName) => `Could not render \\`${componentName}\\`. No matching import has been found for \\`${componentName}\\`.`,\n hint: \"Please make sure the component is properly imported.\"\n};\nconst InvalidPrerenderExport = {\n name: \"InvalidPrerenderExport\",\n title: \"Invalid prerender export.\",\n message(prefix, suffix, isHydridOutput) {\n const defaultExpectedValue = isHydridOutput ? \"false\" : \"true\";\n let msg = `A \\`prerender\\` export has been detected, but its value cannot be statically analyzed.`;\n if (prefix !== \"const\") msg += `\nExpected \\`const\\` declaration but got \\`${prefix}\\`.`;\n if (suffix !== \"true\")\n msg += `\nExpected \\`${defaultExpectedValue}\\` value but got \\`${suffix}\\`.`;\n return msg;\n },\n hint: \"Mutable values declared at runtime are not supported. Please make sure to use exactly `export const prerender = true`.\"\n};\nconst InvalidComponentArgs = {\n name: \"InvalidComponentArgs\",\n title: \"Invalid component arguments.\",\n message: (name) => `Invalid arguments passed to${name ? ` <${name}>` : \"\"} component.`,\n hint: \"Astro components cannot be rendered directly via function call, such as `Component()` or `{items.map(Component)}`.\"\n};\nconst PageNumberParamNotFound = {\n name: \"PageNumberParamNotFound\",\n title: \"Page number param not found.\",\n message: (paramName) => `[paginate()] page number param \\`${paramName}\\` not found in your filepath.`,\n hint: \"Rename your file to `[page].astro` or `[...page].astro`.\"\n};\nconst ImageMissingAlt = {\n name: \"ImageMissingAlt\",\n title: 'Image missing required \"alt\" property.',\n message: 'Image missing \"alt\" property. \"alt\" text is required to describe important images on the page.',\n hint: 'Use an empty string (\"\") for decorative images.'\n};\nconst InvalidImageService = {\n name: \"InvalidImageService\",\n title: \"Error while loading image service.\",\n message: \"There was an error loading the configured image service. Please see the stack trace for more information.\"\n};\nconst MissingImageDimension = {\n name: \"MissingImageDimension\",\n title: \"Missing image dimensions\",\n message: (missingDimension, imageURL) => `Missing ${missingDimension === \"both\" ? \"width and height attributes\" : `${missingDimension} attribute`} for ${imageURL}. When using remote images, both dimensions are required in order to avoid CLS.`,\n hint: \"If your image is inside your `src` folder, you probably meant to import it instead. See [the Imports guide for more information](https://docs.astro.build/en/guides/imports/#other-assets). You can also use `inferSize={true}` for remote images to get the original dimensions.\"\n};\nconst FailedToFetchRemoteImageDimensions = {\n name: \"FailedToFetchRemoteImageDimensions\",\n title: \"Failed to retrieve remote image dimensions\",\n message: (imageURL) => `Failed to get the dimensions for ${imageURL}.`,\n hint: \"Verify your remote image URL is accurate, and that you are not using `inferSize` with a file located in your `public/` folder.\"\n};\nconst UnsupportedImageFormat = {\n name: \"UnsupportedImageFormat\",\n title: \"Unsupported image format\",\n message: (format, imagePath, supportedFormats) => `Received unsupported format \\`${format}\\` from \\`${imagePath}\\`. Currently only ${supportedFormats.join(\n \", \"\n )} are supported by our image services.`,\n hint: \"Using an `img` tag directly instead of the `Image` component might be what you're looking for.\"\n};\nconst UnsupportedImageConversion = {\n name: \"UnsupportedImageConversion\",\n title: \"Unsupported image conversion\",\n message: \"Converting between vector (such as SVGs) and raster (such as PNGs and JPEGs) images is not currently supported.\"\n};\nconst PrerenderDynamicEndpointPathCollide = {\n name: \"PrerenderDynamicEndpointPathCollide\",\n title: \"Prerendered dynamic endpoint has path collision.\",\n message: (pathname) => `Could not render \\`${pathname}\\` with an \\`undefined\\` param as the generated path will collide during prerendering. Prevent passing \\`undefined\\` as \\`params\\` for the endpoint's \\`getStaticPaths()\\` function, or add an additional extension to the endpoint's filename.`,\n hint: (filename) => `Rename \\`${filename}\\` to \\`${filename.replace(/\\.(?:js|ts)/, (m) => `.json` + m)}\\``\n};\nconst ExpectedImage = {\n name: \"ExpectedImage\",\n title: \"Expected src to be an image.\",\n message: (src, typeofOptions, fullOptions) => `Expected \\`src\\` property for \\`getImage\\` or \\`\\` to be either an ESM imported image or a string with the path of a remote image. Received \\`${src}\\` (type: \\`${typeofOptions}\\`).\n\nFull serialized options received: \\`${fullOptions}\\`.`,\n hint: \"This error can often happen because of a wrong path. Make sure the path to your image is correct. If you're passing an async function, make sure to call and await it.\"\n};\nconst ExpectedImageOptions = {\n name: \"ExpectedImageOptions\",\n title: \"Expected image options.\",\n message: (options) => `Expected getImage() parameter to be an object. Received \\`${options}\\`.`\n};\nconst ExpectedNotESMImage = {\n name: \"ExpectedNotESMImage\",\n title: \"Expected image options, not an ESM-imported image.\",\n message: \"An ESM-imported image cannot be passed directly to `getImage()`. Instead, pass an object with the image in the `src` property.\",\n hint: \"Try changing `getImage(myImage)` to `getImage({ src: myImage })`\"\n};\nconst IncompatibleDescriptorOptions = {\n name: \"IncompatibleDescriptorOptions\",\n title: \"Cannot set both `densities` and `widths`\",\n message: \"Only one of `densities` or `widths` can be specified. In most cases, you'll probably want to use only `widths` if you require specific widths.\",\n hint: \"Those attributes are used to construct a `srcset` attribute, which cannot have both `x` and `w` descriptors.\"\n};\nconst ImageNotFound = {\n name: \"ImageNotFound\",\n title: \"Image not found.\",\n message: (imagePath) => `Could not find requested image \\`${imagePath}\\`. Does it exist?`,\n hint: \"This is often caused by a typo in the image path. Please make sure the file exists, and is spelled correctly.\"\n};\nconst NoImageMetadata = {\n name: \"NoImageMetadata\",\n title: \"Could not process image metadata.\",\n message: (imagePath) => `Could not process image metadata${imagePath ? ` for \\`${imagePath}\\`` : \"\"}.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst CouldNotTransformImage = {\n name: \"CouldNotTransformImage\",\n title: \"Could not transform image.\",\n message: (imagePath) => `Could not transform image \\`${imagePath}\\`. See the stack trace for more information.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst ResponseSentError = {\n name: \"ResponseSentError\",\n title: \"Unable to set response.\",\n message: \"The response has already been sent to the browser and cannot be altered.\"\n};\nconst MiddlewareNoDataOrNextCalled = {\n name: \"MiddlewareNoDataOrNextCalled\",\n title: \"The middleware didn't return a `Response`.\",\n message: \"Make sure your middleware returns a `Response` object, either directly or by returning the `Response` from calling the `next` function.\"\n};\nconst MiddlewareNotAResponse = {\n name: \"MiddlewareNotAResponse\",\n title: \"The middleware returned something that is not a `Response` object.\",\n message: \"Any data returned from middleware must be a valid `Response` object.\"\n};\nconst EndpointDidNotReturnAResponse = {\n name: \"EndpointDidNotReturnAResponse\",\n title: \"The endpoint did not return a `Response`.\",\n message: \"An endpoint must return either a `Response`, or a `Promise` that resolves with a `Response`.\"\n};\nconst LocalsNotAnObject = {\n name: \"LocalsNotAnObject\",\n title: \"Value assigned to `locals` is not accepted.\",\n message: \"`locals` can only be assigned to an object. Other values like numbers, strings, etc. are not accepted.\",\n hint: \"If you tried to remove some information from the `locals` object, try to use `delete` or set the property to `undefined`.\"\n};\nconst LocalsReassigned = {\n name: \"LocalsReassigned\",\n title: \"`locals` must not be reassigned.\",\n message: \"`locals` can not be assigned directly.\",\n hint: \"Set a `locals` property instead.\"\n};\nconst AstroResponseHeadersReassigned = {\n name: \"AstroResponseHeadersReassigned\",\n title: \"`Astro.response.headers` must not be reassigned.\",\n message: \"Individual headers can be added to and removed from `Astro.response.headers`, but it must not be replaced with another instance of `Headers` altogether.\",\n hint: \"Consider using `Astro.response.headers.add()`, and `Astro.response.headers.delete()`.\"\n};\nconst MiddlewareCantBeLoaded = {\n name: \"MiddlewareCantBeLoaded\",\n title: \"Can't load the middleware.\",\n message: \"An unknown error was thrown while loading your middleware.\"\n};\nconst LocalImageUsedWrongly = {\n name: \"LocalImageUsedWrongly\",\n title: \"Local images must be imported.\",\n message: (imageFilePath) => `\\`Image\\`'s and \\`getImage\\`'s \\`src\\` parameter must be an imported image or an URL, it cannot be a string filepath. Received \\`${imageFilePath}\\`.`,\n hint: \"If you want to use an image from your `src` folder, you need to either import it or if the image is coming from a content collection, use the [image() schema helper](https://docs.astro.build/en/guides/images/#images-in-content-collections). See https://docs.astro.build/en/guides/images/#src-required for more information on the `src` property.\"\n};\nconst AstroGlobUsedOutside = {\n name: \"AstroGlobUsedOutside\",\n title: \"Astro.glob() used outside of an Astro file.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` can only be used in \\`.astro\\` files. \\`import.meta.glob(${globStr})\\` can be used instead to achieve a similar result.`,\n hint: \"See Vite's documentation on `import.meta.glob` for more information: https://vite.dev/guide/features.html#glob-import\"\n};\nconst AstroGlobNoMatch = {\n name: \"AstroGlobNoMatch\",\n title: \"Astro.glob() did not match any files.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` did not return any matching files.`,\n hint: \"Check the pattern for typos.\"\n};\nconst RedirectWithNoLocation = {\n name: \"RedirectWithNoLocation\",\n title: \"A redirect must be given a location with the `Location` header.\"\n};\nconst InvalidDynamicRoute = {\n name: \"InvalidDynamicRoute\",\n title: \"Invalid dynamic route.\",\n message: (route, invalidParam, received) => `The ${invalidParam} param for route ${route} is invalid. Received **${received}**.`\n};\nconst MissingSharp = {\n name: \"MissingSharp\",\n title: \"Could not find Sharp.\",\n message: \"Could not find Sharp. Please install Sharp (`sharp`) manually into your project or migrate to another image service.\",\n hint: \"See Sharp's installation instructions for more information: https://sharp.pixelplumbing.com/install. If you are not relying on `astro:assets` to optimize, transform, or process any images, you can configure a passthrough image service instead of installing Sharp. See https://docs.astro.build/en/reference/errors/missing-sharp for more information.\\n\\nSee https://docs.astro.build/en/guides/images/#default-image-service for more information on how to migrate to another image service.\"\n};\nconst UnknownViteError = {\n name: \"UnknownViteError\",\n title: \"Unknown Vite Error.\"\n};\nconst FailedToLoadModuleSSR = {\n name: \"FailedToLoadModuleSSR\",\n title: \"Could not import file.\",\n message: (importName) => `Could not import \\`${importName}\\`.`,\n hint: \"This is often caused by a typo in the import path. Please make sure the file exists.\"\n};\nconst InvalidGlob = {\n name: \"InvalidGlob\",\n title: \"Invalid glob pattern.\",\n message: (globPattern) => `Invalid glob pattern: \\`${globPattern}\\`. Glob patterns must start with './', '../' or '/'.`,\n hint: \"See https://docs.astro.build/en/guides/imports/#glob-patterns for more information on supported glob patterns.\"\n};\nconst FailedToFindPageMapSSR = {\n name: \"FailedToFindPageMapSSR\",\n title: \"Astro couldn't find the correct page to render\",\n message: \"Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error. Please file an issue.\"\n};\nconst MissingLocale = {\n name: \"MissingLocaleError\",\n title: \"The provided locale does not exist.\",\n message: (locale) => `The locale/path \\`${locale}\\` does not exist in the configured \\`i18n.locales\\`.`\n};\nconst MissingIndexForInternationalization = {\n name: \"MissingIndexForInternationalizationError\",\n title: \"Index page not found.\",\n message: (defaultLocale) => `Could not find index page. A root index page is required in order to create a redirect to the index URL of the default locale. (\\`/${defaultLocale}\\`)`,\n hint: (src) => `Create an index page (\\`index.astro, index.md, etc.\\`) in \\`${src}\\`.`\n};\nconst IncorrectStrategyForI18n = {\n name: \"IncorrectStrategyForI18n\",\n title: \"You can't use the current function with the current strategy\",\n message: (functionName) => `The function \\`${functionName}\\` can only be used when the \\`i18n.routing.strategy\\` is set to \\`\"manual\"\\`.`\n};\nconst NoPrerenderedRoutesWithDomains = {\n name: \"NoPrerenderedRoutesWithDomains\",\n title: \"Prerendered routes aren't supported when internationalization domains are enabled.\",\n message: (component) => `Static pages aren't yet supported with multiple domains. To enable this feature, you must disable prerendering for the page ${component}`\n};\nconst MissingMiddlewareForInternationalization = {\n name: \"MissingMiddlewareForInternationalization\",\n title: \"Enabled manual internationalization routing without having a middleware.\",\n message: \"Your configuration setting `i18n.routing: 'manual'` requires you to provide your own i18n `middleware` file.\"\n};\nconst CantRenderPage = {\n name: \"CantRenderPage\",\n title: \"Astro can't render the route.\",\n message: \"Astro cannot find any content to render for this route. There is no file or redirect associated with this route.\",\n hint: \"If you expect to find a route here, this may be an Astro bug. Please file an issue/restart the dev server\"\n};\nconst UnhandledRejection = {\n name: \"UnhandledRejection\",\n title: \"Unhandled rejection\",\n message: (stack) => `Astro detected an unhandled rejection. Here's the stack trace:\n${stack}`,\n hint: \"Make sure your promises all have an `await` or a `.catch()` handler.\"\n};\nconst i18nNotEnabled = {\n name: \"i18nNotEnabled\",\n title: \"i18n Not Enabled\",\n message: \"The `astro:i18n` module can not be used without enabling i18n in your Astro config.\",\n hint: \"See https://docs.astro.build/en/guides/internationalization for a guide on setting up i18n.\"\n};\nconst i18nNoLocaleFoundInPath = {\n name: \"i18nNoLocaleFoundInPath\",\n title: \"The path doesn't contain any locale\",\n message: \"You tried to use an i18n utility on a path that doesn't contain any locale. You can use `pathHasLocale` first to determine if the path has a locale.\"\n};\nconst RouteNotFound = {\n name: \"RouteNotFound\",\n title: \"Route not found.\",\n message: `Astro could not find a route that matches the one you requested.`\n};\nconst EnvInvalidVariables = {\n name: \"EnvInvalidVariables\",\n title: \"Invalid Environment Variables\",\n message: (errors) => `The following environment variables defined in \\`env.schema\\` are invalid:\n\n${errors.map((err) => `- ${err}`).join(\"\\n\")}\n`\n};\nconst ServerOnlyModule = {\n name: \"ServerOnlyModule\",\n title: \"Module is only available server-side\",\n message: (name) => `The \"${name}\" module is only available server-side.`\n};\nconst RewriteWithBodyUsed = {\n name: \"RewriteWithBodyUsed\",\n title: \"Cannot use Astro.rewrite after the request body has been read\",\n message: \"Astro.rewrite() cannot be used if the request body has already been read. If you need to read the body, first clone the request.\"\n};\nconst ForbiddenRewrite = {\n name: \"ForbiddenRewrite\",\n title: \"Forbidden rewrite to a static route.\",\n message: (from, to, component) => `You tried to rewrite the on-demand route '${from}' with the static route '${to}', when using the 'server' output. \n\nThe static route '${to}' is rendered by the component\n'${component}', which is marked as prerendered. This is a forbidden operation because during the build the component '${component}' is compiled to an\nHTML file, which can't be retrieved at runtime by Astro.`,\n hint: (component) => `Add \\`export const prerender = false\\` to the component '${component}', or use a Astro.redirect().`\n};\nconst UnknownFilesystemError = {\n name: \"UnknownFilesystemError\",\n title: \"An unknown error occurred while reading or writing files to disk.\",\n hint: \"It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.\"\n};\nconst UnknownCSSError = {\n name: \"UnknownCSSError\",\n title: \"Unknown CSS Error.\"\n};\nconst CSSSyntaxError = {\n name: \"CSSSyntaxError\",\n title: \"CSS Syntax Error.\"\n};\nconst UnknownMarkdownError = {\n name: \"UnknownMarkdownError\",\n title: \"Unknown Markdown Error.\"\n};\nconst MarkdownFrontmatterParseError = {\n name: \"MarkdownFrontmatterParseError\",\n title: \"Failed to parse Markdown frontmatter.\"\n};\nconst InvalidFrontmatterInjectionError = {\n name: \"InvalidFrontmatterInjectionError\",\n title: \"Invalid frontmatter injection.\",\n message: 'A remark or rehype plugin attempted to inject invalid frontmatter. Ensure \"astro.frontmatter\" is set to a valid JSON object that is not `null` or `undefined`.',\n hint: \"See the frontmatter injection docs https://docs.astro.build/en/guides/markdown-content/#modifying-frontmatter-programmatically for more information.\"\n};\nconst MdxIntegrationMissingError = {\n name: \"MdxIntegrationMissingError\",\n title: \"MDX integration missing.\",\n message: (file) => `Unable to render ${file}. Ensure that the \\`@astrojs/mdx\\` integration is installed.`,\n hint: \"See the MDX integration docs for installation and usage instructions: https://docs.astro.build/en/guides/integrations-guide/mdx/\"\n};\nconst UnknownConfigError = {\n name: \"UnknownConfigError\",\n title: \"Unknown configuration error.\"\n};\nconst ConfigNotFound = {\n name: \"ConfigNotFound\",\n title: \"Specified configuration file not found.\",\n message: (configFile) => `Unable to resolve \\`--config \"${configFile}\"\\`. Does the file exist?`\n};\nconst ConfigLegacyKey = {\n name: \"ConfigLegacyKey\",\n title: \"Legacy configuration detected.\",\n message: (legacyConfigKey) => `Legacy configuration detected: \\`${legacyConfigKey}\\`.`,\n hint: \"Please update your configuration to the new format.\\nSee https://astro.build/config for more information.\"\n};\nconst UnknownCLIError = {\n name: \"UnknownCLIError\",\n title: \"Unknown CLI Error.\"\n};\nconst GenerateContentTypesError = {\n name: \"GenerateContentTypesError\",\n title: \"Failed to generate content types.\",\n message: (errorMessage) => `\\`astro sync\\` command failed to generate content collection types: ${errorMessage}`,\n hint: (fileName) => `This error is often caused by a syntax error inside your content, or your content configuration file. Check your ${fileName ?? \"content config\"} file for typos.`\n};\nconst UnknownContentCollectionError = {\n name: \"UnknownContentCollectionError\",\n title: \"Unknown Content Collection Error.\"\n};\nconst RenderUndefinedEntryError = {\n name: \"RenderUndefinedEntryError\",\n title: \"Attempted to render an undefined content collection entry.\",\n hint: \"Check if the entry is undefined before passing it to `render()`\"\n};\nconst GetEntryDeprecationError = {\n name: \"GetEntryDeprecationError\",\n title: \"Invalid use of `getDataEntryById` or `getEntryBySlug` function.\",\n message: (collection, method) => `The \\`${method}\\` function is deprecated and cannot be used to query the \"${collection}\" collection. Use \\`getEntry\\` instead.`,\n hint: \"Use the `getEntry` or `getCollection` functions to query content layer collections.\"\n};\nconst InvalidContentEntryFrontmatterError = {\n name: \"InvalidContentEntryFrontmatterError\",\n title: \"Content entry frontmatter does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(\n entryId\n )}** frontmatter does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst InvalidContentEntryDataError = {\n name: \"InvalidContentEntryDataError\",\n title: \"Content entry data does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(entryId)}** data does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst ContentEntryDataError = {\n name: \"ContentEntryDataError\",\n title: \"Content entry data does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(entryId)}** data does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst ContentLoaderInvalidDataError = {\n name: \"ContentLoaderInvalidDataError\",\n title: \"Content entry is missing an ID\",\n message(collection, extra) {\n return `**${String(collection)}** entry is missing an ID.\n${extra}`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content loaders.\"\n};\nconst InvalidContentEntrySlugError = {\n name: \"InvalidContentEntrySlugError\",\n title: \"Invalid content entry slug.\",\n message(collection, entryId) {\n return `${String(collection)} \\u2192 ${String(\n entryId\n )} has an invalid slug. \\`slug\\` must be a string.`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst ContentSchemaContainsSlugError = {\n name: \"ContentSchemaContainsSlugError\",\n title: \"Content Schema should not contain `slug`.\",\n message: (collectionName) => `A content collection schema should not contain \\`slug\\` since it is reserved for slug generation. Remove this from your ${collectionName} collection schema.`,\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst MixedContentDataCollectionError = {\n name: \"MixedContentDataCollectionError\",\n title: \"Content and data cannot be in same collection.\",\n message: (collectionName) => `**${collectionName}** contains a mix of content and data entries. All entries must be of the same type.`,\n hint: \"Store data entries in a new collection separate from your content collection.\"\n};\nconst ContentCollectionTypeMismatchError = {\n name: \"ContentCollectionTypeMismatchError\",\n title: \"Collection contains entries of a different type.\",\n message: (collection, expectedType, actualType) => `${collection} contains ${expectedType} entries, but is configured as a ${actualType} collection.`\n};\nconst DataCollectionEntryParseError = {\n name: \"DataCollectionEntryParseError\",\n title: \"Data collection entry failed to parse.\",\n message(entryId, errorMessage) {\n return `**${entryId}** failed to parse: ${errorMessage}`;\n },\n hint: \"Ensure your data entry is an object with valid JSON (for `.json` entries) or YAML (for `.yaml` entries).\"\n};\nconst DuplicateContentEntrySlugError = {\n name: \"DuplicateContentEntrySlugError\",\n title: \"Duplicate content entry slug.\",\n message(collection, slug, preExisting, alsoFound) {\n return `**${collection}** contains multiple entries with the same slug: \\`${slug}\\`. Slugs must be unique.\n\nEntries: \n- ${preExisting}\n- ${alsoFound}`;\n }\n};\nconst UnsupportedConfigTransformError = {\n name: \"UnsupportedConfigTransformError\",\n title: \"Unsupported transform in content config.\",\n message: (parseError) => `\\`transform()\\` functions in your content config must return valid JSON, or data types compatible with the devalue library (including Dates, Maps, and Sets).\nFull error: ${parseError}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionsWithoutServerOutputError = {\n name: \"ActionsWithoutServerOutputError\",\n title: \"Actions must be used with server output.\",\n message: \"A server is required to create callable backend functions. To deploy routes to a server, add an adapter to your Astro config and configure your route for on-demand rendering\",\n hint: \"Add an adapter and enable on-demand rendering: https://5-0-0-beta.docs.astro.build/en/guides/on-demand-rendering/\"\n};\nconst ActionsReturnedInvalidDataError = {\n name: \"ActionsReturnedInvalidDataError\",\n title: \"Action handler returned invalid data.\",\n message: (error) => `Action handler returned invalid data. Handlers should return serializable data types like objects, arrays, strings, and numbers. Parse error: ${error}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionNotFoundError = {\n name: \"ActionNotFoundError\",\n title: \"Action not found.\",\n message: (actionName) => `The server received a request for an action named \\`${actionName}\\` but could not find a match. If you renamed an action, check that you've updated your \\`actions/index\\` file and your calling code to match.`,\n hint: \"You can run `astro check` to detect type errors caused by mismatched action names.\"\n};\nconst ActionCalledFromServerError = {\n name: \"ActionCalledFromServerError\",\n title: \"Action unexpected called from the server.\",\n message: \"Action called from a server page or endpoint without using `Astro.callAction()`. This wrapper must be used to call actions from server code.\",\n hint: \"See the `Astro.callAction()` reference for usage examples: https://docs.astro.build/en/reference/api-reference/#astrocallaction\"\n};\nconst UnknownError = { name: \"UnknownError\", title: \"Unknown Error.\" };\nexport {\n ActionCalledFromServerError,\n ActionNotFoundError,\n ActionsReturnedInvalidDataError,\n ActionsWithoutServerOutputError,\n AdapterSupportOutputMismatch,\n AstroGlobNoMatch,\n AstroGlobUsedOutside,\n AstroResponseHeadersReassigned,\n CSSSyntaxError,\n CantRenderPage,\n ClientAddressNotAvailable,\n ConfigLegacyKey,\n ConfigNotFound,\n ContentCollectionTypeMismatchError,\n ContentEntryDataError,\n ContentLoaderInvalidDataError,\n ContentSchemaContainsSlugError,\n CouldNotTransformImage,\n DataCollectionEntryParseError,\n DuplicateContentEntrySlugError,\n EndpointDidNotReturnAResponse,\n EnvInvalidVariables,\n ExpectedImage,\n ExpectedImageOptions,\n ExpectedNotESMImage,\n FailedToFetchRemoteImageDimensions,\n FailedToFindPageMapSSR,\n FailedToLoadModuleSSR,\n ForbiddenRewrite,\n GenerateContentTypesError,\n GetEntryDeprecationError,\n GetStaticPathsExpectedParams,\n GetStaticPathsInvalidRouteParam,\n GetStaticPathsRequired,\n ImageMissingAlt,\n ImageNotFound,\n IncompatibleDescriptorOptions,\n IncorrectStrategyForI18n,\n InvalidComponentArgs,\n InvalidContentEntryDataError,\n InvalidContentEntryFrontmatterError,\n InvalidContentEntrySlugError,\n InvalidDynamicRoute,\n InvalidFrontmatterInjectionError,\n InvalidGetStaticPathParam,\n InvalidGetStaticPathsEntry,\n InvalidGetStaticPathsReturn,\n InvalidGlob,\n InvalidImageService,\n InvalidPrerenderExport,\n LocalImageUsedWrongly,\n LocalsNotAnObject,\n LocalsReassigned,\n MarkdownFrontmatterParseError,\n MdxIntegrationMissingError,\n MiddlewareCantBeLoaded,\n MiddlewareNoDataOrNextCalled,\n MiddlewareNotAResponse,\n MissingImageDimension,\n MissingIndexForInternationalization,\n MissingLocale,\n MissingMediaQueryDirective,\n MissingMiddlewareForInternationalization,\n MissingSharp,\n MixedContentDataCollectionError,\n NoAdapterInstalled,\n NoAdapterInstalledServerIslands,\n NoClientEntrypoint,\n NoClientOnlyHint,\n NoImageMetadata,\n NoMatchingImport,\n NoMatchingRenderer,\n NoMatchingStaticPathFound,\n NoPrerenderedRoutesWithDomains,\n OnlyResponseCanBeReturned,\n PageNumberParamNotFound,\n PrerenderClientAddressNotAvailable,\n PrerenderDynamicEndpointPathCollide,\n RedirectWithNoLocation,\n RenderUndefinedEntryError,\n ReservedSlotName,\n ResponseSentError,\n RewriteWithBodyUsed,\n RouteNotFound,\n ServerOnlyModule,\n StaticClientAddressNotAvailable,\n UnhandledRejection,\n UnknownCLIError,\n UnknownCSSError,\n UnknownCompilerError,\n UnknownConfigError,\n UnknownContentCollectionError,\n UnknownError,\n UnknownFilesystemError,\n UnknownMarkdownError,\n UnknownViteError,\n UnsupportedConfigTransformError,\n UnsupportedImageConversion,\n UnsupportedImageFormat,\n i18nNoLocaleFoundInPath,\n i18nNotEnabled\n};\n","function positionAt(offset, text) {\n const lineOffsets = getLineOffsets(text);\n offset = Math.max(0, Math.min(text.length, offset));\n let low = 0;\n let high = lineOffsets.length;\n if (high === 0) {\n return {\n line: 0,\n column: offset\n };\n }\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const lineOffset = lineOffsets[mid];\n if (lineOffset === offset) {\n return {\n line: mid,\n column: 0\n };\n } else if (offset > lineOffset) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = low - 1;\n return { line, column: offset - lineOffsets[line] };\n}\nfunction getLineOffsets(text) {\n const lineOffsets = [];\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n const ch = text.charAt(i);\n isLineStart = ch === \"\\r\" || ch === \"\\n\";\n if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n return lineOffsets;\n}\nfunction isYAMLException(err) {\n return err instanceof Error && err.name === \"YAMLException\";\n}\nfunction formatYAMLException(e) {\n return {\n name: e.name,\n id: e.mark.name,\n loc: { file: e.mark.name, line: e.mark.line + 1, column: e.mark.column },\n message: e.reason,\n stack: e.stack ?? \"\"\n };\n}\nfunction createSafeError(err) {\n if (err instanceof Error || err?.name && err.message) {\n return err;\n } else {\n const error = new Error(JSON.stringify(err));\n error.hint = `To get as much information as possible from your errors, make sure to throw Error objects instead of \\`${typeof err}\\`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error for more information.`;\n return error;\n }\n}\nfunction normalizeLF(code) {\n return code.replace(/\\r\\n|\\r(?!\\n)|\\n/g, \"\\n\");\n}\nexport {\n createSafeError,\n formatYAMLException,\n isYAMLException,\n normalizeLF,\n positionAt\n};\n","import { normalizeLF } from \"./utils.js\";\nfunction codeFrame(src, loc) {\n if (!loc || loc.line === void 0 || loc.column === void 0) {\n return \"\";\n }\n const lines = normalizeLF(src).split(\"\\n\").map((ln) => ln.replace(/\\t/g, \" \"));\n const visibleLines = [];\n for (let n = -2; n <= 2; n++) {\n if (lines[loc.line + n]) visibleLines.push(loc.line + n);\n }\n let gutterWidth = 0;\n for (const lineNo of visibleLines) {\n let w = `> ${lineNo}`;\n if (w.length > gutterWidth) gutterWidth = w.length;\n }\n let output = \"\";\n for (const lineNo of visibleLines) {\n const isFocusedLine = lineNo === loc.line - 1;\n output += isFocusedLine ? \"> \" : \" \";\n output += `${lineNo + 1} | ${lines[lineNo]}\n`;\n if (isFocusedLine)\n output += `${Array.from({ length: gutterWidth }).join(\" \")} | ${Array.from({\n length: loc.column\n }).join(\" \")}^\n`;\n }\n return output;\n}\nexport {\n codeFrame\n};\n","import { codeFrame } from \"./printer.js\";\nfunction isAstroError(e) {\n return e instanceof AstroError;\n}\nclass AstroError extends Error {\n loc;\n title;\n hint;\n frame;\n type = \"AstroError\";\n constructor(props, options) {\n const { name, title, message, stack, location, hint, frame } = props;\n super(message, options);\n this.title = title;\n this.name = name;\n if (message) this.message = message;\n this.stack = stack ? stack : this.stack;\n this.loc = location;\n this.hint = hint;\n this.frame = frame;\n }\n setLocation(location) {\n this.loc = location;\n }\n setName(name) {\n this.name = name;\n }\n setMessage(message) {\n this.message = message;\n }\n setHint(hint) {\n this.hint = hint;\n }\n setFrame(source, location) {\n this.frame = codeFrame(source, location);\n }\n static is(err) {\n return err.type === \"AstroError\";\n }\n}\nclass CompilerError extends AstroError {\n type = \"CompilerError\";\n constructor(props, options) {\n super(props, options);\n }\n static is(err) {\n return err.type === \"CompilerError\";\n }\n}\nclass CSSError extends AstroError {\n type = \"CSSError\";\n static is(err) {\n return err.type === \"CSSError\";\n }\n}\nclass MarkdownError extends AstroError {\n type = \"MarkdownError\";\n static is(err) {\n return err.type === \"MarkdownError\";\n }\n}\nclass InternalError extends AstroError {\n type = \"InternalError\";\n static is(err) {\n return err.type === \"InternalError\";\n }\n}\nclass AggregateError extends AstroError {\n type = \"AggregateError\";\n errors;\n // Despite being a collection of errors, AggregateError still needs to have a main error attached to it\n // This is because Vite expects every thrown errors handled during HMR to be, well, Error and have a message\n constructor(props, options) {\n super(props, options);\n this.errors = props.errors;\n }\n static is(err) {\n return err.type === \"AggregateError\";\n }\n}\nconst astroConfigZodErrors = /* @__PURE__ */ new WeakSet();\nfunction isAstroConfigZodError(error) {\n return astroConfigZodErrors.has(error);\n}\nfunction trackAstroConfigZodError(error) {\n astroConfigZodErrors.add(error);\n}\nclass AstroUserError extends Error {\n type = \"AstroUserError\";\n /**\n * A message that explains to the user how they can fix the error.\n */\n hint;\n name = \"AstroUserError\";\n constructor(message, hint) {\n super();\n this.message = message;\n this.hint = hint;\n }\n static is(err) {\n return err.type === \"AstroUserError\";\n }\n}\nexport {\n AggregateError,\n AstroError,\n AstroUserError,\n CSSError,\n CompilerError,\n InternalError,\n MarkdownError,\n isAstroConfigZodError,\n isAstroError,\n trackAstroConfigZodError\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction validateArgs(args) {\n if (args.length !== 3) return false;\n if (!args[0] || typeof args[0] !== \"object\") return false;\n return true;\n}\nfunction baseCreateComponent(cb, moduleId, propagation) {\n const name = moduleId?.split(\"/\").pop()?.replace(\".astro\", \"\") ?? \"\";\n const fn = (...args) => {\n if (!validateArgs(args)) {\n throw new AstroError({\n ...AstroErrorData.InvalidComponentArgs,\n message: AstroErrorData.InvalidComponentArgs.message(name)\n });\n }\n return cb(...args);\n };\n Object.defineProperty(fn, \"name\", { value: name, writable: false });\n fn.isAstroComponentFactory = true;\n fn.moduleId = moduleId;\n fn.propagation = propagation;\n return fn;\n}\nfunction createComponentWithOptions(opts) {\n const cb = baseCreateComponent(opts.factory, opts.moduleId, opts.propagation);\n return cb;\n}\nfunction createComponent(arg1, moduleId, propagation) {\n if (typeof arg1 === \"function\") {\n return baseCreateComponent(arg1, moduleId, propagation);\n } else {\n return createComponentWithOptions(arg1);\n }\n}\nexport {\n createComponent\n};\n","const ASTRO_VERSION = \"5.0.0-beta.10\";\nconst REROUTE_DIRECTIVE_HEADER = \"X-Astro-Reroute\";\nconst REWRITE_DIRECTIVE_HEADER_KEY = \"X-Astro-Rewrite\";\nconst REWRITE_DIRECTIVE_HEADER_VALUE = \"yes\";\nconst NOOP_MIDDLEWARE_HEADER = \"X-Astro-Noop\";\nconst ROUTE_TYPE_HEADER = \"X-Astro-Route-Type\";\nconst DEFAULT_404_COMPONENT = \"astro-default-404.astro\";\nconst DEFAULT_500_COMPONENT = \"astro-default-500.astro\";\nconst REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308, 300, 304];\nconst REROUTABLE_STATUS_CODES = [404, 500];\nconst clientAddressSymbol = Symbol.for(\"astro.clientAddress\");\nconst clientLocalsSymbol = Symbol.for(\"astro.locals\");\nconst originPathnameSymbol = Symbol.for(\"astro.originPathname\");\nconst responseSentSymbol = Symbol.for(\"astro.responseSent\");\nconst SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [\n \".markdown\",\n \".mdown\",\n \".mkdn\",\n \".mkd\",\n \".mdwn\",\n \".md\"\n];\nconst MIDDLEWARE_PATH_SEGMENT_NAME = \"middleware\";\nexport {\n ASTRO_VERSION,\n DEFAULT_404_COMPONENT,\n DEFAULT_500_COMPONENT,\n MIDDLEWARE_PATH_SEGMENT_NAME,\n NOOP_MIDDLEWARE_HEADER,\n REDIRECT_STATUS_CODES,\n REROUTABLE_STATUS_CODES,\n REROUTE_DIRECTIVE_HEADER,\n REWRITE_DIRECTIVE_HEADER_KEY,\n REWRITE_DIRECTIVE_HEADER_VALUE,\n ROUTE_TYPE_HEADER,\n SUPPORTED_MARKDOWN_FILE_EXTENSIONS,\n clientAddressSymbol,\n clientLocalsSymbol,\n originPathnameSymbol,\n responseSentSymbol\n};\n","import { ASTRO_VERSION } from \"../../core/constants.js\";\nimport { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction createAstroGlobFn() {\n const globHandler = (importMetaGlobResult) => {\n console.warn(`Astro.glob is deprecated and will be removed in a future major version of Astro.\nUse import.meta.glob instead: https://vitejs.dev/guide/features.html#glob-import`);\n if (typeof importMetaGlobResult === \"string\") {\n throw new AstroError({\n ...AstroErrorData.AstroGlobUsedOutside,\n message: AstroErrorData.AstroGlobUsedOutside.message(JSON.stringify(importMetaGlobResult))\n });\n }\n let allEntries = [...Object.values(importMetaGlobResult)];\n if (allEntries.length === 0) {\n throw new AstroError({\n ...AstroErrorData.AstroGlobNoMatch,\n message: AstroErrorData.AstroGlobNoMatch.message(JSON.stringify(importMetaGlobResult))\n });\n }\n return Promise.all(allEntries.map((fn) => fn()));\n };\n return globHandler;\n}\nfunction createAstro(site) {\n return {\n // TODO: this is no longer necessary for `Astro.site`\n // but it somehow allows working around caching issues in content collections for some tests\n site: site ? new URL(site) : void 0,\n generator: `Astro v${ASTRO_VERSION}`,\n glob: createAstroGlobFn()\n };\n}\nexport {\n createAstro\n};\n","function isPromise(value) {\n return !!value && typeof value === \"object\" && \"then\" in value && typeof value.then === \"function\";\n}\nasync function* streamAsyncIterator(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nexport {\n isPromise,\n streamAsyncIterator\n};\n","import { escape } from \"html-escaper\";\nimport { streamAsyncIterator } from \"./util.js\";\nconst escapeHTML = escape;\nclass HTMLBytes extends Uint8Array {\n}\nObject.defineProperty(HTMLBytes.prototype, Symbol.toStringTag, {\n get() {\n return \"HTMLBytes\";\n }\n});\nclass HTMLString extends String {\n get [Symbol.toStringTag]() {\n return \"HTMLString\";\n }\n}\nconst markHTMLString = (value) => {\n if (value instanceof HTMLString) {\n return value;\n }\n if (typeof value === \"string\") {\n return new HTMLString(value);\n }\n return value;\n};\nfunction isHTMLString(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLString]\";\n}\nfunction markHTMLBytes(bytes) {\n return new HTMLBytes(bytes);\n}\nfunction isHTMLBytes(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLBytes]\";\n}\nfunction hasGetReader(obj) {\n return typeof obj.getReader === \"function\";\n}\nasync function* unescapeChunksAsync(iterable) {\n if (hasGetReader(iterable)) {\n for await (const chunk of streamAsyncIterator(iterable)) {\n yield unescapeHTML(chunk);\n }\n } else {\n for await (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n }\n}\nfunction* unescapeChunks(iterable) {\n for (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n}\nfunction unescapeHTML(str) {\n if (!!str && typeof str === \"object\") {\n if (str instanceof Uint8Array) {\n return markHTMLBytes(str);\n } else if (str instanceof Response && str.body) {\n const body = str.body;\n return unescapeChunksAsync(body);\n } else if (typeof str.then === \"function\") {\n return Promise.resolve(str).then((value) => {\n return unescapeHTML(value);\n });\n } else if (str[Symbol.for(\"astro:slot-string\")]) {\n return str;\n } else if (Symbol.iterator in str) {\n return unescapeChunks(str);\n } else if (Symbol.asyncIterator in str || hasGetReader(str)) {\n return unescapeChunksAsync(str);\n }\n }\n return markHTMLString(str);\n}\nexport {\n HTMLBytes,\n HTMLString,\n escapeHTML,\n isHTMLBytes,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n};\n","const RenderInstructionSymbol = Symbol.for(\"astro:render\");\nfunction createRenderInstruction(instruction) {\n return Object.defineProperty(instruction, RenderInstructionSymbol, {\n value: true\n });\n}\nfunction isRenderInstruction(chunk) {\n return chunk && typeof chunk === \"object\" && chunk[RenderInstructionSymbol];\n}\nexport {\n createRenderInstruction,\n isRenderInstruction\n};\n","const PROP_TYPE = {\n Value: 0,\n JSON: 1,\n // Actually means Array\n RegExp: 2,\n Date: 3,\n Map: 4,\n Set: 5,\n BigInt: 6,\n URL: 7,\n Uint8Array: 8,\n Uint16Array: 9,\n Uint32Array: 10,\n Infinity: 11\n};\nfunction serializeArray(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = value.map((v) => {\n return convertToSerializedForm(v, metadata, parents);\n });\n parents.delete(value);\n return serialized;\n}\nfunction serializeObject(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n return [k, convertToSerializedForm(v, metadata, parents)];\n })\n );\n parents.delete(value);\n return serialized;\n}\nfunction convertToSerializedForm(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n const tag = Object.prototype.toString.call(value);\n switch (tag) {\n case \"[object Date]\": {\n return [PROP_TYPE.Date, value.toISOString()];\n }\n case \"[object RegExp]\": {\n return [PROP_TYPE.RegExp, value.source];\n }\n case \"[object Map]\": {\n return [PROP_TYPE.Map, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object Set]\": {\n return [PROP_TYPE.Set, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object BigInt]\": {\n return [PROP_TYPE.BigInt, value.toString()];\n }\n case \"[object URL]\": {\n return [PROP_TYPE.URL, value.toString()];\n }\n case \"[object Array]\": {\n return [PROP_TYPE.JSON, serializeArray(value, metadata, parents)];\n }\n case \"[object Uint8Array]\": {\n return [PROP_TYPE.Uint8Array, Array.from(value)];\n }\n case \"[object Uint16Array]\": {\n return [PROP_TYPE.Uint16Array, Array.from(value)];\n }\n case \"[object Uint32Array]\": {\n return [PROP_TYPE.Uint32Array, Array.from(value)];\n }\n default: {\n if (value !== null && typeof value === \"object\") {\n return [PROP_TYPE.Value, serializeObject(value, metadata, parents)];\n }\n if (value === Infinity) {\n return [PROP_TYPE.Infinity, 1];\n }\n if (value === -Infinity) {\n return [PROP_TYPE.Infinity, -1];\n }\n if (value === void 0) {\n return [PROP_TYPE.Value];\n }\n return [PROP_TYPE.Value, value];\n }\n }\n}\nfunction serializeProps(props, metadata) {\n const serialized = JSON.stringify(serializeObject(props, metadata));\n return serialized;\n}\nexport {\n serializeProps\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nimport { escapeHTML } from \"./escape.js\";\nimport { serializeProps } from \"./serialize.js\";\nconst transitionDirectivesToCopyOnIsland = Object.freeze([\n \"data-astro-transition-scope\",\n \"data-astro-transition-persist\",\n \"data-astro-transition-persist-props\"\n]);\nfunction extractDirectives(inputProps, clientDirectives) {\n let extracted = {\n isPage: false,\n hydration: null,\n props: {},\n propsWithoutTransitionAttributes: {}\n };\n for (const [key, value] of Object.entries(inputProps)) {\n if (key.startsWith(\"server:\")) {\n if (key === \"server:root\") {\n extracted.isPage = true;\n }\n }\n if (key.startsWith(\"client:\")) {\n if (!extracted.hydration) {\n extracted.hydration = {\n directive: \"\",\n value: \"\",\n componentUrl: \"\",\n componentExport: { value: \"\" }\n };\n }\n switch (key) {\n case \"client:component-path\": {\n extracted.hydration.componentUrl = value;\n break;\n }\n case \"client:component-export\": {\n extracted.hydration.componentExport.value = value;\n break;\n }\n case \"client:component-hydration\": {\n break;\n }\n case \"client:display-name\": {\n break;\n }\n default: {\n extracted.hydration.directive = key.split(\":\")[1];\n extracted.hydration.value = value;\n if (!clientDirectives.has(extracted.hydration.directive)) {\n const hydrationMethods = Array.from(clientDirectives.keys()).map((d) => `client:${d}`).join(\", \");\n throw new Error(\n `Error: invalid hydration directive \"${key}\". Supported hydration methods: ${hydrationMethods}`\n );\n }\n if (extracted.hydration.directive === \"media\" && typeof extracted.hydration.value !== \"string\") {\n throw new AstroError(AstroErrorData.MissingMediaQueryDirective);\n }\n break;\n }\n }\n } else {\n extracted.props[key] = value;\n if (!transitionDirectivesToCopyOnIsland.includes(key)) {\n extracted.propsWithoutTransitionAttributes[key] = value;\n }\n }\n }\n for (const sym of Object.getOwnPropertySymbols(inputProps)) {\n extracted.props[sym] = inputProps[sym];\n extracted.propsWithoutTransitionAttributes[sym] = inputProps[sym];\n }\n return extracted;\n}\nasync function generateHydrateScript(scriptOptions, metadata) {\n const { renderer, result, astroId, props, attrs } = scriptOptions;\n const { hydrate, componentUrl, componentExport } = metadata;\n if (!componentExport.value) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingImport,\n message: AstroErrorData.NoMatchingImport.message(metadata.displayName)\n });\n }\n const island = {\n children: \"\",\n props: {\n // This is for HMR, probably can avoid it in prod\n uid: astroId\n }\n };\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n island.props[key] = escapeHTML(value);\n }\n }\n island.props[\"component-url\"] = await result.resolve(decodeURI(componentUrl));\n if (renderer.clientEntrypoint) {\n island.props[\"component-export\"] = componentExport.value;\n island.props[\"renderer-url\"] = await result.resolve(\n decodeURI(renderer.clientEntrypoint.toString())\n );\n island.props[\"props\"] = escapeHTML(serializeProps(props, metadata));\n }\n island.props[\"ssr\"] = \"\";\n island.props[\"client\"] = hydrate;\n let beforeHydrationUrl = await result.resolve(\"astro:scripts/before-hydration.js\");\n if (beforeHydrationUrl.length) {\n island.props[\"before-hydration-url\"] = beforeHydrationUrl;\n }\n island.props[\"opts\"] = escapeHTML(\n JSON.stringify({\n name: metadata.displayName,\n value: metadata.hydrateArgs || \"\"\n })\n );\n transitionDirectivesToCopyOnIsland.forEach((name) => {\n if (typeof props[name] !== \"undefined\") {\n island.props[name] = props[name];\n }\n });\n return island;\n}\nexport {\n extractDirectives,\n generateHydrateScript\n};\n","/**\n * shortdash - https://github.com/bibig/node-shorthash\n *\n * @license\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Bibig \n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nconst dictionary = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY\";\nconst binary = dictionary.length;\nfunction bitwise(str) {\n let hash = 0;\n if (str.length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n hash = (hash << 5) - hash + ch;\n hash = hash & hash;\n }\n return hash;\n}\nfunction shorthash(text) {\n let num;\n let result = \"\";\n let integer = bitwise(text);\n const sign = integer < 0 ? \"Z\" : \"\";\n integer = Math.abs(integer);\n while (integer >= binary) {\n num = integer % binary;\n integer = Math.floor(integer / binary);\n result = dictionary[num] + result;\n }\n if (integer > 0) {\n result = dictionary[integer] + result;\n }\n return sign + result;\n}\nexport {\n shorthash\n};\n","function isAstroComponentFactory(obj) {\n return obj == null ? false : obj.isAstroComponentFactory === true;\n}\nfunction isAPropagatingComponent(result, factory) {\n let hint = factory.propagation || \"none\";\n if (factory.moduleId && result.componentMetadata.has(factory.moduleId) && hint === \"none\") {\n hint = result.componentMetadata.get(factory.moduleId).propagation;\n }\n return hint === \"in-tree\" || hint === \"self\";\n}\nexport {\n isAPropagatingComponent,\n isAstroComponentFactory\n};\n","const headAndContentSym = Symbol.for(\"astro.headAndContent\");\nfunction isHeadAndContent(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[headAndContentSym];\n}\nfunction createHeadAndContent(head, content) {\n return {\n [headAndContentSym]: true,\n head,\n content\n };\n}\nexport {\n createHeadAndContent,\n isHeadAndContent\n};\n","var astro_island_prebuilt_dev_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var l=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>y(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[h,e]=t;return h in i?i[h](e):void 0},a=t=>t.map(o),y=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([h,e])=>[h,o(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,\"Component\");l(this,\"hydrator\");l(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},p=this.querySelectorAll(\"template[data-astro-template]\");for(let r of p){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let u;try{u=this.hasAttribute(\"props\")?y(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let d,m=this.hydrator(this);d=performance.now(),await m(this.Component,u,n,{client:this.getAttribute(\"client\")}),d&&this.setAttribute(\"client-render-time\",(performance.now()-d).toString()),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});l(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[p,{default:u}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),d=this.getAttribute(\"component-export\")||\"default\";if(!d.includes(\".\"))this.Component=p[d];else{this.Component=p;for(let m of d.split(\".\"))this.Component=this.Component[m]}return this.hydrator=u,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}l(f,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",f)}})();`;\nexport {\n astro_island_prebuilt_dev_default as default\n};\n","var astro_island_prebuilt_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,\"Component\");d(this,\"hydrator\");d(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},h=this.querySelectorAll(\"template[data-astro-template]\");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let p;try{p=this.hasAttribute(\"props\")?m(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute(\"client\")}),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});d(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[h,{default:p}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),u=this.getAttribute(\"component-export\")||\"default\";if(!u.includes(\".\"))this.Component=h[u];else{this.Component=h;for(let f of u.split(\".\"))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",y)}})();`;\nexport {\n astro_island_prebuilt_default as default\n};\n","import islandScriptDev from \"./astro-island.prebuilt-dev.js\";\nimport islandScript from \"./astro-island.prebuilt.js\";\nconst ISLAND_STYLES = ``;\nfunction determineIfNeedsHydrationScript(result) {\n if (result._metadata.hasHydrationScript) {\n return false;\n }\n return result._metadata.hasHydrationScript = true;\n}\nfunction determinesIfNeedsDirectiveScript(result, directive) {\n if (result._metadata.hasDirectives.has(directive)) {\n return false;\n }\n result._metadata.hasDirectives.add(directive);\n return true;\n}\nfunction getDirectiveScriptText(result, directive) {\n const clientDirectives = result.clientDirectives;\n const clientDirective = clientDirectives.get(directive);\n if (!clientDirective) {\n throw new Error(`Unknown directive: ${directive}`);\n }\n return clientDirective;\n}\nfunction getPrescripts(result, type, directive) {\n switch (type) {\n case \"both\":\n return `${ISLAND_STYLES}`;\n case \"directive\":\n return ``;\n case null:\n break;\n }\n return \"\";\n}\nexport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n};\n","import { clsx } from \"clsx\";\nimport { HTMLString, markHTMLString } from \"../escape.js\";\nconst voidElementNames = /^(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i;\nconst htmlBooleanAttributes = /^(?:allowfullscreen|async|autofocus|autoplay|checked|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|selected|itemscope)$/i;\nconst AMPERSAND_REGEX = /&/g;\nconst DOUBLE_QUOTE_REGEX = /\"/g;\nconst STATIC_DIRECTIVES = /* @__PURE__ */ new Set([\"set:html\", \"set:text\"]);\nconst toIdent = (k) => k.trim().replace(/(?!^)\\b\\w|\\s+|\\W+/g, (match, index) => {\n if (/\\W/.test(match)) return \"\";\n return index === 0 ? match : match.toUpperCase();\n});\nconst toAttributeString = (value, shouldEscape = true) => shouldEscape ? String(value).replace(AMPERSAND_REGEX, \"&\").replace(DOUBLE_QUOTE_REGEX, \""\") : value;\nconst kebab = (k) => k.toLowerCase() === k ? k : k.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\nconst toStyleString = (obj) => Object.entries(obj).filter(([_, v]) => typeof v === \"string\" && v.trim() || typeof v === \"number\").map(([k, v]) => {\n if (k[0] !== \"-\" && k[1] !== \"-\") return `${kebab(k)}:${v}`;\n return `${k}:${v}`;\n}).join(\";\");\nfunction defineScriptVars(vars) {\n let output = \"\";\n for (const [key, value] of Object.entries(vars)) {\n output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(\n /<\\/script>/g,\n \"\\\\x3C/script>\"\n )};\n`;\n }\n return markHTMLString(output);\n}\nfunction formatList(values) {\n if (values.length === 1) {\n return values[0];\n }\n return `${values.slice(0, -1).join(\", \")} or ${values[values.length - 1]}`;\n}\nfunction addAttribute(value, key, shouldEscape = true) {\n if (value == null) {\n return \"\";\n }\n if (STATIC_DIRECTIVES.has(key)) {\n console.warn(`[astro] The \"${key}\" directive cannot be applied dynamically at runtime. It will not be rendered as an attribute.\n\nMake sure to use the static attribute syntax (\\`${key}={value}\\`) instead of the dynamic spread syntax (\\`{...{ \"${key}\": value }}\\`).`);\n return \"\";\n }\n if (key === \"class:list\") {\n const listValue = toAttributeString(clsx(value), shouldEscape);\n if (listValue === \"\") {\n return \"\";\n }\n return markHTMLString(` ${key.slice(0, -5)}=\"${listValue}\"`);\n }\n if (key === \"style\" && !(value instanceof HTMLString)) {\n if (Array.isArray(value) && value.length === 2) {\n return markHTMLString(\n ` ${key}=\"${toAttributeString(`${toStyleString(value[0])};${value[1]}`, shouldEscape)}\"`\n );\n }\n if (typeof value === \"object\") {\n return markHTMLString(` ${key}=\"${toAttributeString(toStyleString(value), shouldEscape)}\"`);\n }\n }\n if (key === \"className\") {\n return markHTMLString(` class=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n if (typeof value === \"string\" && value.includes(\"&\") && isHttpUrl(value)) {\n return markHTMLString(` ${key}=\"${toAttributeString(value, false)}\"`);\n }\n if (htmlBooleanAttributes.test(key)) {\n return markHTMLString(value ? ` ${key}` : \"\");\n }\n if (value === \"\") {\n return markHTMLString(` ${key}`);\n }\n return markHTMLString(` ${key}=\"${toAttributeString(value, shouldEscape)}\"`);\n}\nfunction internalSpreadAttributes(values, shouldEscape = true) {\n let output = \"\";\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute(value, key, shouldEscape);\n }\n return markHTMLString(output);\n}\nfunction renderElement(name, { props: _props, children = \"\" }, shouldEscape = true) {\n const { lang: _, \"data-astro-id\": astroId, \"define:vars\": defineVars, ...props } = _props;\n if (defineVars) {\n if (name === \"style\") {\n delete props[\"is:global\"];\n delete props[\"is:scoped\"];\n }\n if (name === \"script\") {\n delete props.hoist;\n children = defineScriptVars(defineVars) + \"\\n\" + children;\n }\n }\n if ((children == null || children == \"\") && voidElementNames.test(name)) {\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>`;\n }\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>${children}`;\n}\nconst noop = () => {\n};\nclass BufferedRenderer {\n chunks = [];\n renderPromise;\n destination;\n constructor(bufferRenderFunction) {\n this.renderPromise = bufferRenderFunction(this);\n Promise.resolve(this.renderPromise).catch(noop);\n }\n write(chunk) {\n if (this.destination) {\n this.destination.write(chunk);\n } else {\n this.chunks.push(chunk);\n }\n }\n async renderToFinalDestination(destination) {\n for (const chunk of this.chunks) {\n destination.write(chunk);\n }\n this.destination = destination;\n await this.renderPromise;\n }\n}\nfunction renderToBufferDestination(bufferRenderFunction) {\n const renderer = new BufferedRenderer(bufferRenderFunction);\n return renderer;\n}\nconst isNode = typeof process !== \"undefined\" && Object.prototype.toString.call(process) === \"[object process]\";\nconst isDeno = typeof Deno !== \"undefined\";\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n promise,\n resolve,\n reject\n };\n}\nconst VALID_PROTOCOLS = [\"http:\", \"https:\"];\nfunction isHttpUrl(url) {\n try {\n const parsedUrl = new URL(url);\n return VALID_PROTOCOLS.includes(parsedUrl.protocol);\n } catch {\n return false;\n }\n}\nexport {\n addAttribute,\n defineScriptVars,\n formatList,\n internalSpreadAttributes,\n isDeno,\n isNode,\n promiseWithResolvers,\n renderElement,\n renderToBufferDestination,\n toAttributeString,\n toStyleString,\n voidElementNames\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { createRenderInstruction } from \"./instruction.js\";\nimport { renderElement } from \"./util.js\";\nconst uniqueElements = (item, index, all) => {\n const props = JSON.stringify(item.props);\n const children = item.children;\n return index === all.findIndex((i) => JSON.stringify(i.props) === props && i.children == children);\n};\nfunction renderAllHeadContent(result) {\n result._metadata.hasRenderedHead = true;\n const styles = Array.from(result.styles).filter(uniqueElements).map(\n (style) => style.props.rel === \"stylesheet\" ? renderElement(\"link\", style) : renderElement(\"style\", style)\n );\n result.styles.clear();\n const scripts = Array.from(result.scripts).filter(uniqueElements).map((script) => {\n return renderElement(\"script\", script, false);\n });\n const links = Array.from(result.links).filter(uniqueElements).map((link) => renderElement(\"link\", link, false));\n let content = styles.join(\"\\n\") + links.join(\"\\n\") + scripts.join(\"\\n\");\n if (result._metadata.extraHead.length > 0) {\n for (const part of result._metadata.extraHead) {\n content += part;\n }\n }\n return markHTMLString(content);\n}\nfunction renderHead() {\n return createRenderInstruction({ type: \"head\" });\n}\nfunction maybeRenderHead() {\n return createRenderInstruction({ type: \"maybe-head\" });\n}\nexport {\n maybeRenderHead,\n renderAllHeadContent,\n renderHead\n};\n","import { markHTMLString } from \"../../escape.js\";\nimport { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { renderToBufferDestination } from \"../util.js\";\nconst renderTemplateResultSym = Symbol.for(\"astro.renderTemplateResult\");\nclass RenderTemplateResult {\n [renderTemplateResultSym] = true;\n htmlParts;\n expressions;\n error;\n constructor(htmlParts, expressions) {\n this.htmlParts = htmlParts;\n this.error = void 0;\n this.expressions = expressions.map((expression) => {\n if (isPromise(expression)) {\n return Promise.resolve(expression).catch((err) => {\n if (!this.error) {\n this.error = err;\n throw err;\n }\n });\n }\n return expression;\n });\n }\n async render(destination) {\n const expRenders = this.expressions.map((exp) => {\n return renderToBufferDestination((bufferDestination) => {\n if (exp || exp === 0) {\n return renderChild(bufferDestination, exp);\n }\n });\n });\n for (let i = 0; i < this.htmlParts.length; i++) {\n const html = this.htmlParts[i];\n const expRender = expRenders[i];\n destination.write(markHTMLString(html));\n if (expRender) {\n await expRender.renderToFinalDestination(destination);\n }\n }\n }\n}\nfunction isRenderTemplateResult(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[renderTemplateResultSym];\n}\nfunction renderTemplate(htmlParts, ...expressions) {\n return new RenderTemplateResult(htmlParts, expressions);\n}\nexport {\n RenderTemplateResult,\n isRenderTemplateResult,\n renderTemplate\n};\n","import { renderTemplate } from \"./astro/render-template.js\";\nimport { HTMLString, markHTMLString, unescapeHTML } from \"../escape.js\";\nimport { renderChild } from \"./any.js\";\nimport { chunkToString } from \"./common.js\";\nconst slotString = Symbol.for(\"astro:slot-string\");\nclass SlotString extends HTMLString {\n instructions;\n [slotString];\n constructor(content, instructions) {\n super(content);\n this.instructions = instructions;\n this[slotString] = true;\n }\n}\nfunction isSlotString(str) {\n return !!str[slotString];\n}\nfunction renderSlot(result, slotted, fallback) {\n if (!slotted && fallback) {\n return renderSlot(result, fallback);\n }\n return {\n async render(destination) {\n await renderChild(destination, typeof slotted === \"function\" ? slotted(result) : slotted);\n }\n };\n}\nasync function renderSlotToString(result, slotted, fallback) {\n let content = \"\";\n let instructions = null;\n const temporaryDestination = {\n write(chunk) {\n if (chunk instanceof SlotString) {\n content += chunk;\n if (chunk.instructions) {\n instructions ??= [];\n instructions.push(...chunk.instructions);\n }\n } else if (chunk instanceof Response) return;\n else if (typeof chunk === \"object\" && \"type\" in chunk && typeof chunk.type === \"string\") {\n if (instructions === null) {\n instructions = [];\n }\n instructions.push(chunk);\n } else {\n content += chunkToString(result, chunk);\n }\n }\n };\n const renderInstance = renderSlot(result, slotted, fallback);\n await renderInstance.render(temporaryDestination);\n return markHTMLString(new SlotString(content, instructions));\n}\nasync function renderSlots(result, slots = {}) {\n let slotInstructions = null;\n let children = {};\n if (slots) {\n await Promise.all(\n Object.entries(slots).map(\n ([key, value]) => renderSlotToString(result, value).then((output) => {\n if (output.instructions) {\n if (slotInstructions === null) {\n slotInstructions = [];\n }\n slotInstructions.push(...output.instructions);\n }\n children[key] = output;\n })\n )\n );\n }\n return { slotInstructions, children };\n}\nfunction createSlotValueFromString(content) {\n return function() {\n return renderTemplate`${unescapeHTML(content)}`;\n };\n}\nexport {\n SlotString,\n createSlotValueFromString,\n isSlotString,\n renderSlot,\n renderSlotToString,\n renderSlots\n};\n","import { markHTMLString } from \"../escape.js\";\nimport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n} from \"../scripts.js\";\nimport { renderAllHeadContent } from \"./head.js\";\nimport { isRenderInstruction } from \"./instruction.js\";\nimport { isSlotString } from \"./slot.js\";\nconst Fragment = Symbol.for(\"astro:fragment\");\nconst Renderer = Symbol.for(\"astro:renderer\");\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction stringifyChunk(result, chunk) {\n if (isRenderInstruction(chunk)) {\n const instruction = chunk;\n switch (instruction.type) {\n case \"directive\": {\n const { hydration } = instruction;\n let needsHydrationScript = hydration && determineIfNeedsHydrationScript(result);\n let needsDirectiveScript = hydration && determinesIfNeedsDirectiveScript(result, hydration.directive);\n let prescriptType = needsHydrationScript ? \"both\" : needsDirectiveScript ? \"directive\" : null;\n if (prescriptType) {\n let prescripts = getPrescripts(result, prescriptType, hydration.directive);\n return markHTMLString(prescripts);\n } else {\n return \"\";\n }\n }\n case \"head\": {\n if (result._metadata.hasRenderedHead || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"maybe-head\": {\n if (result._metadata.hasRenderedHead || result._metadata.headInTree || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"renderer-hydration-script\": {\n const { rendererSpecificHydrationScripts } = result._metadata;\n const { rendererName } = instruction;\n if (!rendererSpecificHydrationScripts.has(rendererName)) {\n rendererSpecificHydrationScripts.add(rendererName);\n return instruction.render();\n }\n return \"\";\n }\n default: {\n throw new Error(`Unknown chunk type: ${chunk.type}`);\n }\n }\n } else if (chunk instanceof Response) {\n return \"\";\n } else if (isSlotString(chunk)) {\n let out = \"\";\n const c = chunk;\n if (c.instructions) {\n for (const instr of c.instructions) {\n out += stringifyChunk(result, instr);\n }\n }\n out += chunk.toString();\n return out;\n }\n return chunk.toString();\n}\nfunction chunkToString(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return decoder.decode(chunk);\n } else {\n return stringifyChunk(result, chunk);\n }\n}\nfunction chunkToByteArray(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return chunk;\n } else {\n const stringified = stringifyChunk(result, chunk);\n return encoder.encode(stringified.toString());\n }\n}\nfunction isRenderInstance(obj) {\n return !!obj && typeof obj === \"object\" && \"render\" in obj && typeof obj.render === \"function\";\n}\nexport {\n Fragment,\n Renderer,\n chunkToByteArray,\n chunkToString,\n decoder,\n encoder,\n isRenderInstance\n};\n","import { escapeHTML, isHTMLString, markHTMLString } from \"../escape.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentInstance, isRenderTemplateResult } from \"./astro/index.js\";\nimport { isRenderInstance } from \"./common.js\";\nimport { SlotString } from \"./slot.js\";\nimport { renderToBufferDestination } from \"./util.js\";\nasync function renderChild(destination, child) {\n if (isPromise(child)) {\n child = await child;\n }\n if (child instanceof SlotString) {\n destination.write(child);\n } else if (isHTMLString(child)) {\n destination.write(child);\n } else if (Array.isArray(child)) {\n const childRenders = child.map((c) => {\n return renderToBufferDestination((bufferDestination) => {\n return renderChild(bufferDestination, c);\n });\n });\n for (const childRender of childRenders) {\n if (!childRender) continue;\n await childRender.renderToFinalDestination(destination);\n }\n } else if (typeof child === \"function\") {\n await renderChild(destination, child());\n } else if (typeof child === \"string\") {\n destination.write(markHTMLString(escapeHTML(child)));\n } else if (!child && child !== 0) {\n } else if (isRenderInstance(child)) {\n await child.render(destination);\n } else if (isRenderTemplateResult(child)) {\n await child.render(destination);\n } else if (isAstroComponentInstance(child)) {\n await child.render(destination);\n } else if (ArrayBuffer.isView(child)) {\n destination.write(child);\n } else if (typeof child === \"object\" && (Symbol.asyncIterator in child || Symbol.iterator in child)) {\n for await (const value of child) {\n await renderChild(destination, value);\n }\n } else {\n destination.write(child);\n }\n}\nexport {\n renderChild\n};\n","import { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { isAPropagatingComponent } from \"./factory.js\";\nimport { isHeadAndContent } from \"./head-and-content.js\";\nconst astroComponentInstanceSym = Symbol.for(\"astro.componentInstance\");\nclass AstroComponentInstance {\n [astroComponentInstanceSym] = true;\n result;\n props;\n slotValues;\n factory;\n returnValue;\n constructor(result, props, slots, factory) {\n this.result = result;\n this.props = props;\n this.factory = factory;\n this.slotValues = {};\n for (const name in slots) {\n let didRender = false;\n let value = slots[name](result);\n this.slotValues[name] = () => {\n if (!didRender) {\n didRender = true;\n return value;\n }\n return slots[name](result);\n };\n }\n }\n async init(result) {\n if (this.returnValue !== void 0) return this.returnValue;\n this.returnValue = this.factory(result, this.props, this.slotValues);\n if (isPromise(this.returnValue)) {\n this.returnValue.then((resolved) => {\n this.returnValue = resolved;\n }).catch(() => {\n });\n }\n return this.returnValue;\n }\n async render(destination) {\n const returnValue = await this.init(this.result);\n if (isHeadAndContent(returnValue)) {\n await returnValue.content.render(destination);\n } else {\n await renderChild(destination, returnValue);\n }\n }\n}\nfunction validateComponentProps(props, displayName) {\n if (props != null) {\n for (const prop of Object.keys(props)) {\n if (prop.startsWith(\"client:\")) {\n console.warn(\n `You are attempting to render <${displayName} ${prop} />, but ${displayName} is an Astro component. Astro components do not render in the client and should not have a hydration directive. Please use a framework component for client rendering.`\n );\n }\n }\n }\n}\nfunction createAstroComponentInstance(result, displayName, factory, props, slots = {}) {\n validateComponentProps(props, displayName);\n const instance = new AstroComponentInstance(result, props, slots, factory);\n if (isAPropagatingComponent(result, factory)) {\n result._metadata.propagators.add(instance);\n }\n return instance;\n}\nfunction isAstroComponentInstance(obj) {\n return typeof obj === \"object\" && obj !== null && !!obj[astroComponentInstanceSym];\n}\nexport {\n AstroComponentInstance,\n createAstroComponentInstance,\n isAstroComponentInstance\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { renderSlotToString } from \"./slot.js\";\nimport { toAttributeString } from \"./util.js\";\nfunction componentIsHTMLElement(Component) {\n return typeof HTMLElement !== \"undefined\" && HTMLElement.isPrototypeOf(Component);\n}\nasync function renderHTMLElement(result, constructor, props, slots) {\n const name = getHTMLElementName(constructor);\n let attrHTML = \"\";\n for (const attr in props) {\n attrHTML += ` ${attr}=\"${toAttributeString(await props[attr])}\"`;\n }\n return markHTMLString(\n `<${name}${attrHTML}>${await renderSlotToString(result, slots?.default)}`\n );\n}\nfunction getHTMLElementName(constructor) {\n const definedName = customElements.getName(constructor);\n if (definedName) return definedName;\n const assignedName = constructor.name.replace(/^HTML|Element$/g, \"\").replace(/[A-Z]/g, \"-$&\").toLowerCase().replace(/^-/, \"html-\");\n return assignedName;\n}\nexport {\n componentIsHTMLElement,\n renderHTMLElement\n};\n","import { decodeBase64, decodeHex, encodeBase64, encodeHexUpperCase } from \"@oslojs/encoding\";\nconst ALGORITHM = \"AES-GCM\";\nasync function createKey() {\n const key = await crypto.subtle.generateKey(\n {\n name: ALGORITHM,\n length: 256\n },\n true,\n [\"encrypt\", \"decrypt\"]\n );\n return key;\n}\nconst ENVIRONMENT_KEY_NAME = \"ASTRO_KEY\";\nfunction getEncodedEnvironmentKey() {\n return process.env[ENVIRONMENT_KEY_NAME] || \"\";\n}\nfunction hasEnvironmentKey() {\n return getEncodedEnvironmentKey() !== \"\";\n}\nasync function getEnvironmentKey() {\n if (!hasEnvironmentKey()) {\n throw new Error(\n `There is no environment key defined. If you see this error there is a bug in Astro.`\n );\n }\n const encodedKey = getEncodedEnvironmentKey();\n return decodeKey(encodedKey);\n}\nasync function importKey(bytes) {\n const key = await crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n return key;\n}\nasync function encodeKey(key) {\n const exported = await crypto.subtle.exportKey(\"raw\", key);\n const encodedKey = encodeBase64(new Uint8Array(exported));\n return encodedKey;\n}\nasync function decodeKey(encoded) {\n const bytes = decodeBase64(encoded);\n return crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n}\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst IV_LENGTH = 24;\nasync function encryptString(key, raw) {\n const iv = crypto.getRandomValues(new Uint8Array(IV_LENGTH / 2));\n const data = encoder.encode(raw);\n const buffer = await crypto.subtle.encrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n data\n );\n return encodeHexUpperCase(iv) + encodeBase64(new Uint8Array(buffer));\n}\nasync function decryptString(key, encoded) {\n const iv = decodeHex(encoded.slice(0, IV_LENGTH));\n const dataArray = decodeBase64(encoded.slice(IV_LENGTH));\n const decryptedBuffer = await crypto.subtle.decrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n dataArray\n );\n const decryptedString = decoder.decode(decryptedBuffer);\n return decryptedString;\n}\nexport {\n createKey,\n decodeKey,\n decryptString,\n encodeKey,\n encryptString,\n getEncodedEnvironmentKey,\n getEnvironmentKey,\n hasEnvironmentKey,\n importKey\n};\n","import { encryptString } from \"../../../core/encryption.js\";\nimport { renderChild } from \"./any.js\";\nimport { renderSlotToString } from \"./slot.js\";\nconst internalProps = /* @__PURE__ */ new Set([\n \"server:component-path\",\n \"server:component-export\",\n \"server:component-directive\",\n \"server:defer\"\n]);\nfunction containsServerDirective(props) {\n return \"server:component-directive\" in props;\n}\nfunction safeJsonStringify(obj) {\n return JSON.stringify(obj).replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\").replace(//g, \"\\\\u003e\").replace(/\\//g, \"\\\\u002f\");\n}\nfunction createSearchParams(componentExport, encryptedProps, slots) {\n const params = new URLSearchParams();\n params.set(\"e\", componentExport);\n params.set(\"p\", encryptedProps);\n params.set(\"s\", slots);\n return params;\n}\nfunction isWithinURLLimit(pathname, params) {\n const url = pathname + \"?\" + params.toString();\n const chars = url.length;\n return chars < 2048;\n}\nfunction renderServerIsland(result, _displayName, props, slots) {\n return {\n async render(destination) {\n const componentPath = props[\"server:component-path\"];\n const componentExport = props[\"server:component-export\"];\n const componentId = result.serverIslandNameMap.get(componentPath);\n if (!componentId) {\n throw new Error(`Could not find server component name`);\n }\n for (const key2 of Object.keys(props)) {\n if (internalProps.has(key2)) {\n delete props[key2];\n }\n }\n destination.write(\"\");\n const renderedSlots = {};\n for (const name in slots) {\n if (name !== \"fallback\") {\n const content = await renderSlotToString(result, slots[name]);\n renderedSlots[name] = content.toString();\n } else {\n await renderChild(destination, slots.fallback(result));\n }\n }\n const key = await result.key;\n const propsEncrypted = await encryptString(key, JSON.stringify(props));\n const hostId = crypto.randomUUID();\n const slash = result.base.endsWith(\"/\") ? \"\" : \"/\";\n let serverIslandUrl = `${result.base}${slash}_server-islands/${componentId}${result.trailingSlash === \"always\" ? \"/\" : \"\"}`;\n const potentialSearchParams = createSearchParams(\n componentExport,\n propsEncrypted,\n safeJsonStringify(renderedSlots)\n );\n const useGETRequest = isWithinURLLimit(serverIslandUrl, potentialSearchParams);\n if (useGETRequest) {\n serverIslandUrl += \"?\" + potentialSearchParams.toString();\n destination.write(\n ``\n );\n }\n destination.write(``);\n }\n };\n}\nexport {\n containsServerDirective,\n renderServerIsland\n};\n","import { createRenderInstruction } from \"./instruction.js\";\nimport { clsx } from \"clsx\";\nimport { AstroError, AstroErrorData } from \"../../../core/errors/index.js\";\nimport { markHTMLString } from \"../escape.js\";\nimport { extractDirectives, generateHydrateScript } from \"../hydration.js\";\nimport { serializeProps } from \"../serialize.js\";\nimport { shorthash } from \"../shorthash.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentFactory } from \"./astro/factory.js\";\nimport { renderTemplate } from \"./astro/index.js\";\nimport { createAstroComponentInstance } from \"./astro/instance.js\";\nimport {\n Fragment,\n Renderer,\n chunkToString\n} from \"./common.js\";\nimport { componentIsHTMLElement, renderHTMLElement } from \"./dom.js\";\nimport { maybeRenderHead } from \"./head.js\";\nimport { containsServerDirective, renderServerIsland } from \"./server-islands.js\";\nimport { renderSlotToString, renderSlots } from \"./slot.js\";\nimport { formatList, internalSpreadAttributes, renderElement, voidElementNames } from \"./util.js\";\nconst needsHeadRenderingSymbol = Symbol.for(\"astro.needsHeadRendering\");\nconst rendererAliases = /* @__PURE__ */ new Map([[\"solid\", \"solid-js\"]]);\nconst clientOnlyValues = /* @__PURE__ */ new Set([\"solid-js\", \"react\", \"preact\", \"vue\", \"svelte\"]);\nfunction guessRenderers(componentUrl) {\n const extname = componentUrl?.split(\".\").pop();\n switch (extname) {\n case \"svelte\":\n return [\"@astrojs/svelte\"];\n case \"vue\":\n return [\"@astrojs/vue\"];\n case \"jsx\":\n case \"tsx\":\n return [\"@astrojs/react\", \"@astrojs/preact\", \"@astrojs/solid-js\", \"@astrojs/vue (jsx)\"];\n case void 0:\n default:\n return [\n \"@astrojs/react\",\n \"@astrojs/preact\",\n \"@astrojs/solid-js\",\n \"@astrojs/vue\",\n \"@astrojs/svelte\"\n ];\n }\n}\nfunction isFragmentComponent(Component) {\n return Component === Fragment;\n}\nfunction isHTMLComponent(Component) {\n return Component && Component[\"astro:html\"] === true;\n}\nconst ASTRO_SLOT_EXP = /<\\/?astro-slot\\b[^>]*>/g;\nconst ASTRO_STATIC_SLOT_EXP = /<\\/?astro-static-slot\\b[^>]*>/g;\nfunction removeStaticAstroSlot(html, supportsAstroStaticSlot = true) {\n const exp = supportsAstroStaticSlot ? ASTRO_STATIC_SLOT_EXP : ASTRO_SLOT_EXP;\n return html.replace(exp, \"\");\n}\nasync function renderFrameworkComponent(result, displayName, Component, _props, slots = {}) {\n if (!Component && \"client:only\" in _props === false) {\n throw new Error(\n `Unable to render ${displayName} because it is ${Component}!\nDid you forget to import the component or is it possible there is a typo?`\n );\n }\n const { renderers, clientDirectives } = result;\n const metadata = {\n astroStaticSlot: true,\n displayName\n };\n const { hydration, isPage, props, propsWithoutTransitionAttributes } = extractDirectives(\n _props,\n clientDirectives\n );\n let html = \"\";\n let attrs = void 0;\n if (hydration) {\n metadata.hydrate = hydration.directive;\n metadata.hydrateArgs = hydration.value;\n metadata.componentExport = hydration.componentExport;\n metadata.componentUrl = hydration.componentUrl;\n }\n const probableRendererNames = guessRenderers(metadata.componentUrl);\n const validRenderers = renderers.filter((r) => r.name !== \"astro:jsx\");\n const { children, slotInstructions } = await renderSlots(result, slots);\n let renderer;\n if (metadata.hydrate !== \"only\") {\n let isTagged = false;\n try {\n isTagged = Component && Component[Renderer];\n } catch {\n }\n if (isTagged) {\n const rendererName = Component[Renderer];\n renderer = renderers.find(({ name }) => name === rendererName);\n }\n if (!renderer) {\n let error;\n for (const r of renderers) {\n try {\n if (await r.ssr.check.call({ result }, Component, props, children)) {\n renderer = r;\n break;\n }\n } catch (e) {\n error ??= e;\n }\n }\n if (!renderer && error) {\n throw error;\n }\n }\n if (!renderer && typeof HTMLElement === \"function\" && componentIsHTMLElement(Component)) {\n const output = await renderHTMLElement(\n result,\n Component,\n _props,\n slots\n );\n return {\n render(destination) {\n destination.write(output);\n }\n };\n }\n } else {\n if (metadata.hydrateArgs) {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n renderer = renderers.find(\n ({ name }) => name === `@astrojs/${rendererName}` || name === rendererName\n );\n }\n }\n if (!renderer && validRenderers.length === 1) {\n renderer = validRenderers[0];\n }\n if (!renderer) {\n const extname = metadata.componentUrl?.split(\".\").pop();\n renderer = renderers.find(({ name }) => name === `@astrojs/${extname}` || name === extname);\n }\n }\n let componentServerRenderEndTime;\n if (!renderer) {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n const plural = validRenderers.length > 1;\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else {\n throw new AstroError({\n ...AstroErrorData.NoClientOnlyHint,\n message: AstroErrorData.NoClientOnlyHint.message(metadata.displayName),\n hint: AstroErrorData.NoClientOnlyHint.hint(\n probableRendererNames.map((r) => r.replace(\"@astrojs/\", \"\")).join(\"|\")\n )\n });\n }\n } else if (typeof Component !== \"string\") {\n const matchingRenderers = validRenderers.filter(\n (r) => probableRendererNames.includes(r.name)\n );\n const plural = validRenderers.length > 1;\n if (matchingRenderers.length === 0) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else if (matchingRenderers.length === 1) {\n renderer = matchingRenderers[0];\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n } else {\n throw new Error(`Unable to render ${metadata.displayName}!\n\nThis component likely uses ${formatList(probableRendererNames)},\nbut Astro encountered an error during server-side rendering.\n\nPlease ensure that ${metadata.displayName}:\n1. Does not unconditionally access browser-specific globals like \\`window\\` or \\`document\\`.\n If this is unavoidable, use the \\`client:only\\` hydration directive.\n2. Does not conditionally return \\`null\\` or \\`undefined\\` when rendered on the server.\n\nIf you're still stuck, please open an issue on GitHub or join us at https://astro.build/chat.`);\n }\n }\n } else {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (!clientOnlyValues.has(rendererName)) {\n console.warn(\n `The client:only directive for ${metadata.displayName} is not recognized. The renderer ${renderer.name} will be used. If you intended to use a different renderer, please provide a valid client:only directive.`\n );\n }\n html = await renderSlotToString(result, slots?.fallback);\n } else {\n const componentRenderStartTime = performance.now();\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n if (process.env.NODE_ENV === \"development\")\n componentServerRenderEndTime = performance.now() - componentRenderStartTime;\n }\n }\n if (!html && typeof Component === \"string\") {\n const Tag = sanitizeElementName(Component);\n const childSlots = Object.values(children).join(\"\");\n const renderTemplateResult = renderTemplate`<${Tag}${internalSpreadAttributes(\n props\n )}${markHTMLString(\n childSlots === \"\" && voidElementNames.test(Tag) ? `/>` : `>${childSlots}`\n )}`;\n html = \"\";\n const destination = {\n write(chunk) {\n if (chunk instanceof Response) return;\n html += chunkToString(result, chunk);\n }\n };\n await renderTemplateResult.render(destination);\n }\n if (!hydration) {\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n if (isPage || renderer?.name === \"astro:jsx\") {\n destination.write(html);\n } else if (html && html.length > 0) {\n destination.write(\n markHTMLString(removeStaticAstroSlot(html, renderer?.ssr?.supportsAstroStaticSlot))\n );\n }\n }\n };\n }\n const astroId = shorthash(\n `\n${html}\n${serializeProps(\n props,\n metadata\n )}`\n );\n const island = await generateHydrateScript(\n { renderer, result, astroId, props, attrs },\n metadata\n );\n if (componentServerRenderEndTime && process.env.NODE_ENV === \"development\")\n island.props[\"server-render-time\"] = componentServerRenderEndTime;\n let unrenderedSlots = [];\n if (html) {\n if (Object.keys(children).length > 0) {\n for (const key of Object.keys(children)) {\n let tagName = renderer?.ssr?.supportsAstroStaticSlot ? !!metadata.hydrate ? \"astro-slot\" : \"astro-static-slot\" : \"astro-slot\";\n let expectedHTML = key === \"default\" ? `<${tagName}>` : `<${tagName} name=\"${key}\">`;\n if (!html.includes(expectedHTML)) {\n unrenderedSlots.push(key);\n }\n }\n }\n } else {\n unrenderedSlots = Object.keys(children);\n }\n const template = unrenderedSlots.length > 0 ? unrenderedSlots.map(\n (key) => ``\n ).join(\"\") : \"\";\n island.children = `${html ?? \"\"}${template}`;\n if (island.children) {\n island.props[\"await-children\"] = \"\";\n island.children += ``;\n }\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n destination.write(createRenderInstruction({ type: \"directive\", hydration }));\n if (hydration.directive !== \"only\" && renderer?.ssr.renderHydrationScript) {\n destination.write(\n createRenderInstruction({\n type: \"renderer-hydration-script\",\n rendererName: renderer.name,\n render: renderer.ssr.renderHydrationScript\n })\n );\n }\n const renderedElement = renderElement(\"astro-island\", island, false);\n destination.write(markHTMLString(renderedElement));\n }\n };\n}\nfunction sanitizeElementName(tag) {\n const unsafe = /[&<>'\"\\s]+/;\n if (!unsafe.test(tag)) return tag;\n return tag.trim().split(unsafe)[0].trim();\n}\nasync function renderFragmentComponent(result, slots = {}) {\n const children = await renderSlotToString(result, slots?.default);\n return {\n render(destination) {\n if (children == null) return;\n destination.write(children);\n }\n };\n}\nasync function renderHTMLComponent(result, Component, _props, slots = {}) {\n const { slotInstructions, children } = await renderSlots(result, slots);\n const html = Component({ slots: children });\n const hydrationHtml = slotInstructions ? slotInstructions.map((instr) => chunkToString(result, instr)).join(\"\") : \"\";\n return {\n render(destination) {\n destination.write(markHTMLString(hydrationHtml + html));\n }\n };\n}\nfunction renderAstroComponent(result, displayName, Component, props, slots = {}) {\n if (containsServerDirective(props)) {\n return renderServerIsland(result, displayName, props, slots);\n }\n const instance = createAstroComponentInstance(result, displayName, Component, props, slots);\n return {\n async render(destination) {\n await instance.render(destination);\n }\n };\n}\nasync function renderComponent(result, displayName, Component, props, slots = {}) {\n if (isPromise(Component)) {\n Component = await Component.catch(handleCancellation);\n }\n if (isFragmentComponent(Component)) {\n return await renderFragmentComponent(result, slots).catch(handleCancellation);\n }\n props = normalizeProps(props);\n if (isHTMLComponent(Component)) {\n return await renderHTMLComponent(result, Component, props, slots).catch(handleCancellation);\n }\n if (isAstroComponentFactory(Component)) {\n return renderAstroComponent(result, displayName, Component, props, slots);\n }\n return await renderFrameworkComponent(result, displayName, Component, props, slots).catch(\n handleCancellation\n );\n function handleCancellation(e) {\n if (result.cancelled)\n return {\n render() {\n }\n };\n throw e;\n }\n}\nfunction normalizeProps(props) {\n if (props[\"class:list\"] !== void 0) {\n const value = props[\"class:list\"];\n delete props[\"class:list\"];\n props[\"class\"] = clsx(props[\"class\"], value);\n if (props[\"class\"] === \"\") {\n delete props[\"class\"];\n }\n }\n return props;\n}\nasync function renderComponentToString(result, displayName, Component, props, slots = {}, isPage = false, route) {\n let str = \"\";\n let renderedFirstPageChunk = false;\n let head = \"\";\n if (isPage && !result.partial && nonAstroPageNeedsHeadInjection(Component)) {\n head += chunkToString(result, maybeRenderHead());\n }\n try {\n const destination = {\n write(chunk) {\n if (isPage && !result.partial && !renderedFirstPageChunk) {\n renderedFirstPageChunk = true;\n if (!/\" : \"\\n\";\n str += doctype + head;\n }\n }\n if (chunk instanceof Response) return;\n str += chunkToString(result, chunk);\n }\n };\n const renderInstance = await renderComponent(result, displayName, Component, props, slots);\n await renderInstance.render(destination);\n } catch (e) {\n if (AstroError.is(e) && !e.loc) {\n e.setLocation({\n file: route?.component\n });\n }\n throw e;\n }\n return str;\n}\nfunction nonAstroPageNeedsHeadInjection(pageComponent) {\n return !!pageComponent?.[needsHeadRenderingSymbol];\n}\nexport {\n renderComponent,\n renderComponentToString\n};\n","import { markHTMLString } from \"../escape.js\";\nasync function renderScript(result, id) {\n if (result._metadata.renderedScripts.has(id)) return;\n result._metadata.renderedScripts.add(id);\n const inlined = result.inlinedScripts.get(id);\n if (inlined != null) {\n if (inlined) {\n return markHTMLString(``);\n } else {\n return \"\";\n }\n }\n const resolved = await result.resolve(id);\n return markHTMLString(``);\n}\nexport {\n renderScript\n};\n","import cssesc from \"cssesc\";\nimport { fade, slide } from \"../../transitions/index.js\";\nimport { markHTMLString } from \"./escape.js\";\nconst transitionNameMap = /* @__PURE__ */ new WeakMap();\nfunction incrementTransitionNumber(result) {\n let num = 1;\n if (transitionNameMap.has(result)) {\n num = transitionNameMap.get(result) + 1;\n }\n transitionNameMap.set(result, num);\n return num;\n}\nfunction createTransitionScope(result, hash) {\n const num = incrementTransitionNumber(result);\n return `astro-${hash}-${num}`;\n}\nconst getAnimations = (name) => {\n if (name === \"fade\") return fade();\n if (name === \"slide\") return slide();\n if (typeof name === \"object\") return name;\n};\nconst addPairs = (animations, stylesheet) => {\n for (const [direction, images] of Object.entries(animations)) {\n for (const [image, rules] of Object.entries(images)) {\n stylesheet.addAnimationPair(direction, image, rules);\n }\n }\n};\nconst reEncodeValidChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nconst reEncodeInValidStart = \"-0123456789_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nfunction reEncode(s) {\n let result = \"\";\n let codepoint;\n for (let i = 0; i < s.length; i += (codepoint ?? 0) > 65535 ? 2 : 1) {\n codepoint = s.codePointAt(i);\n if (codepoint !== void 0) {\n result += codepoint < 128 ? codepoint === 95 ? \"__\" : reEncodeValidChars[codepoint] ?? \"_\" + codepoint.toString(16).padStart(2, \"0\") : String.fromCodePoint(codepoint);\n }\n }\n return reEncodeInValidStart[result.codePointAt(0) ?? 0] ? \"_\" + result : result;\n}\nfunction renderTransition(result, hash, animationName, transitionName) {\n if (typeof (transitionName ?? \"\") !== \"string\") {\n throw new Error(`Invalid transition name {${transitionName}}`);\n }\n if (!animationName) animationName = \"fade\";\n const scope = createTransitionScope(result, hash);\n const name = transitionName ? cssesc(reEncode(transitionName), { isIdentifier: true }) : scope;\n const sheet = new ViewTransitionStyleSheet(scope, name);\n const animations = getAnimations(animationName);\n if (animations) {\n addPairs(animations, sheet);\n } else if (animationName === \"none\") {\n sheet.addFallback(\"old\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"old\", \"animation: none; opacity: 0; mix-blend-mode: normal;\");\n sheet.addAnimationRaw(\"new\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"group\", \"animation: none\");\n }\n result._metadata.extraHead.push(markHTMLString(``));\n return scope;\n}\nfunction createAnimationScope(transitionName, animations) {\n const hash = Math.random().toString(36).slice(2, 8);\n const scope = `astro-${hash}`;\n const sheet = new ViewTransitionStyleSheet(scope, transitionName);\n addPairs(animations, sheet);\n return { scope, styles: sheet.toString().replaceAll('\"', \"\") };\n}\nclass ViewTransitionStyleSheet {\n constructor(scope, name) {\n this.scope = scope;\n this.name = name;\n }\n modern = [];\n fallback = [];\n toString() {\n const { scope, name } = this;\n const [modern, fallback] = [this.modern, this.fallback].map((rules) => rules.join(\"\"));\n return [\n `[data-astro-transition-scope=\"${scope}\"] { view-transition-name: ${name}; }`,\n this.layer(modern),\n fallback\n ].join(\"\");\n }\n layer(cssText) {\n return cssText ? `@layer astro { ${cssText} }` : \"\";\n }\n addRule(target, cssText) {\n this[target].push(cssText);\n }\n addAnimationRaw(image, animation) {\n this.addModern(image, animation);\n this.addFallback(image, animation);\n }\n addModern(image, animation) {\n const { name } = this;\n this.addRule(\"modern\", `::view-transition-${image}(${name}) { ${animation} }`);\n }\n addFallback(image, animation) {\n const { scope } = this;\n this.addRule(\n \"fallback\",\n // Two selectors here, the second in case there is an animation on the root.\n `[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n addAnimationPair(direction, image, rules) {\n const { scope, name } = this;\n const animation = stringifyAnimation(rules);\n const prefix = direction === \"backwards\" ? `[data-astro-transition=back]` : direction === \"forwards\" ? \"\" : `[data-astro-transition=${direction}]`;\n this.addRule(\"modern\", `${prefix}::view-transition-${image}(${name}) { ${animation} }`);\n this.addRule(\n \"fallback\",\n `${prefix}[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t${prefix}[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n}\nfunction addAnimationProperty(builder, prop, value) {\n let arr = builder[prop];\n if (Array.isArray(arr)) {\n arr.push(value.toString());\n } else {\n builder[prop] = [value.toString()];\n }\n}\nfunction animationBuilder() {\n return {\n toString() {\n let out = \"\";\n for (let k in this) {\n let value = this[k];\n if (Array.isArray(value)) {\n out += `\n\t${k}: ${value.join(\", \")};`;\n }\n }\n return out;\n }\n };\n}\nfunction stringifyAnimation(anim) {\n if (Array.isArray(anim)) {\n return stringifyAnimations(anim);\n } else {\n return stringifyAnimations([anim]);\n }\n}\nfunction stringifyAnimations(anims) {\n const builder = animationBuilder();\n for (const anim of anims) {\n if (anim.duration) {\n addAnimationProperty(builder, \"animation-duration\", toTimeValue(anim.duration));\n }\n if (anim.easing) {\n addAnimationProperty(builder, \"animation-timing-function\", anim.easing);\n }\n if (anim.direction) {\n addAnimationProperty(builder, \"animation-direction\", anim.direction);\n }\n if (anim.delay) {\n addAnimationProperty(builder, \"animation-delay\", anim.delay);\n }\n if (anim.fillMode) {\n addAnimationProperty(builder, \"animation-fill-mode\", anim.fillMode);\n }\n addAnimationProperty(builder, \"animation-name\", anim.name);\n }\n return builder.toString();\n}\nfunction toTimeValue(num) {\n return typeof num === \"number\" ? num + \"ms\" : num;\n}\nexport {\n createAnimationScope,\n createTransitionScope,\n renderTransition\n};\n","import { createComponent } from \"./astro-component.js\";\nimport { createAstro } from \"./astro-global.js\";\nimport { renderEndpoint } from \"./endpoint.js\";\nimport {\n escapeHTML,\n HTMLBytes,\n HTMLString,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n} from \"./escape.js\";\nimport { renderJSX } from \"./jsx.js\";\nimport {\n addAttribute,\n createHeadAndContent,\n defineScriptVars,\n Fragment,\n maybeRenderHead,\n renderTemplate,\n renderComponent,\n Renderer,\n renderHead,\n renderHTMLElement,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate as renderTemplate2,\n renderToString,\n renderUniqueStylesheet,\n voidElementNames\n} from \"./render/index.js\";\nimport { createTransitionScope, renderTransition } from \"./transition.js\";\nimport { markHTMLString as markHTMLString2 } from \"./escape.js\";\nimport { Renderer as Renderer2, addAttribute as addAttribute2 } from \"./render/index.js\";\nfunction mergeSlots(...slotted) {\n const slots = {};\n for (const slot of slotted) {\n if (!slot) continue;\n if (typeof slot === \"object\") {\n Object.assign(slots, slot);\n } else if (typeof slot === \"function\") {\n Object.assign(slots, mergeSlots(slot()));\n }\n }\n return slots;\n}\nfunction __astro_tag_component__(Component, rendererName) {\n if (!Component) return;\n if (typeof Component !== \"function\") return;\n Object.defineProperty(Component, Renderer2, {\n value: rendererName,\n enumerable: false,\n writable: false\n });\n}\nfunction spreadAttributes(values = {}, _name, { class: scopedClassName } = {}) {\n let output = \"\";\n if (scopedClassName) {\n if (typeof values.class !== \"undefined\") {\n values.class += ` ${scopedClassName}`;\n } else if (typeof values[\"class:list\"] !== \"undefined\") {\n values[\"class:list\"] = [values[\"class:list\"], scopedClassName];\n } else {\n values.class = scopedClassName;\n }\n }\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute2(value, key, true);\n }\n return markHTMLString2(output);\n}\nfunction defineStyleVars(defs) {\n let output = \"\";\n let arr = !Array.isArray(defs) ? [defs] : defs;\n for (const vars of arr) {\n for (const [key, value] of Object.entries(vars)) {\n if (value || value === 0) {\n output += `--${key}: ${value};`;\n }\n }\n }\n return markHTMLString2(output);\n}\nexport {\n Fragment,\n HTMLBytes,\n HTMLString,\n Renderer,\n __astro_tag_component__,\n addAttribute,\n createAstro,\n createComponent,\n createHeadAndContent,\n createTransitionScope,\n defineScriptVars,\n defineStyleVars,\n escapeHTML,\n isHTMLString,\n markHTMLString,\n maybeRenderHead,\n mergeSlots,\n renderTemplate as render,\n renderComponent,\n renderEndpoint,\n renderHTMLElement,\n renderHead,\n renderJSX,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate2 as renderTemplate,\n renderToString,\n renderTransition,\n renderUniqueStylesheet,\n spreadAttributes,\n unescapeHTML,\n voidElementNames\n};\n"],"names":["AstroErrorData.InvalidComponentArgs","AstroErrorData.AstroGlobUsedOutside","AstroErrorData.AstroGlobNoMatch","AstroErrorData.MissingMediaQueryDirective","AstroErrorData.NoMatchingImport","islandScriptDev","islandScript","AstroErrorData.NoMatchingRenderer","AstroErrorData.NoClientOnlyHint","addAttribute2","markHTMLString2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]} \ No newline at end of file diff --git a/Target/chunks/astro_BYXcfF7P.mjs.map b/Target/chunks/astro_BYXcfF7P.mjs.map new file mode 100644 index 00000000..90a49f59 --- /dev/null +++ b/Target/chunks/astro_BYXcfF7P.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"astro_BYXcfF7P.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"} \ No newline at end of file diff --git a/Target/chunks/astro_DE5DHthN.mjs.map b/Target/chunks/astro_DE5DHthN.mjs.map deleted file mode 100644 index 63fee5e9..00000000 --- a/Target/chunks/astro_DE5DHthN.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astro_DE5DHthN.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"} \ No newline at end of file diff --git a/Target/chunks/personal-data-protection-policy_CJy20CLV.mjs.map b/Target/chunks/personal-data-protection-policy_Cm83fkZQ.mjs.map similarity index 99% rename from Target/chunks/personal-data-protection-policy_CJy20CLV.mjs.map rename to Target/chunks/personal-data-protection-policy_Cm83fkZQ.mjs.map index fc2ddbb3..fe3447ed 100644 --- a/Target/chunks/personal-data-protection-policy_CJy20CLV.mjs.map +++ b/Target/chunks/personal-data-protection-policy_Cm83fkZQ.mjs.map @@ -1 +1 @@ -{"version":3,"file":"personal-data-protection-policy_CJy20CLV.mjs","sources":["../../Source/Content/en/personal-data-protection-policy.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

PERSONAL DATA PROTECTION POLICY

\\n

Effective date: 05.25.2018 / May 25th 2018
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

We at PlayForm ltd. are committed to processing personal data securely and\\nrespecting privacy of the concerned individuals.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Version No. and date of the last update:

v. 1.0.

\\n

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.
\\n

Scope and Definitions

\\n
    \\n
  1. \\n

    Scope. This Personal Data Protection\\nPolicy (the “Policy”) describes PlayForm ltd. internal rules for\\npersonal data processing and protection. The Policy applies to PlayForm\\nltd., including PlayForm ltd. employees and contractors (“we”, “us”,\\n“our”, “PlayForm”). The management of each entity is ultimately\\nresponsible for the implementation of this policy, as well as to ensure, at\\nentity level, there are adequate and effective procedures in place for its\\nimplementation and ongoing monitoring of its adherence. For the purposes of\\nthis Policy, employees and contractors are jointly referred to as the\\n“employees”.

    \\n
  2. \\n
  3. \\n

    Privacy Manager. Privacy Manager is an\\nemployee of PlayForm responsible for personal data protection compliance\\nwithin PlayForm (the “Privacy Manager”). The Privacy Manager is in\\ncharge of performing the obligations imposed by this Policy and supervising\\nother employees, who subject to this Policy, regarding their adherence to\\nthis Policy. The Privacy Manager must be involved in all projects at an\\nearly stage in order to take personal data protection aspects into account\\nas early as the planning phase.
    \\nThe designated Privacy Manager at PlayForm ltd. is Nikola Hristov\\nNikola@PlayForm.LTD.

    \\n
  4. \\n
  5. \\n

    Definitions.

    \\n
  6. \\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

\\n

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.
\\n

Data Processing Principles

\\n
    \\n
  1. \\n

    PlayForm’s processing activities must be in line with the principles\\nspecified in this Section. The Privacy Manager must make sure that\\nPlayForm’s compliance documentation, as well as data processing activities,\\nare compliant with the data protection principles.

    \\n
  2. \\n
  3. \\n

    We must process the Personal Data in accordance with the following\\nprinciples:

    \\n
      \\n
    1. \\n

      Lawfully, fairly and in a transparent manner (lawfulness, fairness and\\ntransparency). We shall always have a legal ground for the processing\\n(described in Section 3 of this Policy), collect the amount of data\\nadequate to the purpose and legal grounds, and we make sure the Data\\nSubjects are aware of the processing;

      \\n
    2. \\n
    3. \\n

      Collected for specified, explicit and legitimate purposes and not\\nfurther processed in a manner that is incompatible with those purposes\\n(purpose limitation). We must not process the Personal Data for the\\npurposes not specified in our compliance documentation without obtaining\\nspecific approval of the Privacy Manager;

      \\n
    4. \\n
    5. \\n

      Adequate, relevant and limited to what is necessary for the purposes for\\nwhich they are processed (data minimization). We always make sure\\nthe data we collect is not excessive and limited by the strict\\nnecessity;

      \\n
    6. \\n
    7. \\n

      Accurate and, where necessary, kept up to date (accuracy). We\\nendeavor to delete inaccurate or false data about Data Subjects and make\\nsure we update the data. Data Subjects can ask us for a correction of\\nthe Personal Data;

      \\n
    8. \\n
    9. \\n

      Kept in a form which permits identification of Data Subjects for no\\nlonger than is necessary for the purposes for which the Personal Data\\nare processed (storage period limitation). The storage periods must\\nbe limited as prescribed by Data Protection Laws and this Policy; and

      \\n
    10. \\n
    11. \\n

      Process in a manner that ensures appropriate security of the Personal\\nData, including protection against unauthorized or unlawful processing\\nand accidental loss, destruction or damage, using appropriate technical\\nor organizational measures (confidentiality, integrity, and\\navailability).

      \\n
    12. \\n
    \\n
  4. \\n
  5. \\n

    Accountability.

    \\n
      \\n
    1. \\n

      We shall be able to demonstrate our compliance with Data Protection Laws\\n(accountability principle). In particular, we must ensure and\\ndocument all relevant procedures, efforts, internal and external\\nconsultations on personal data protection including:

      \\n
        \\n
      • \\n

        the fact of appointing a person responsible for PlayForm’s data\\nprotection compliance;

        \\n
      • \\n
      • \\n

        where necessary, a record of a Data Processing Impact Assessment;

        \\n
      • \\n
      • \\n

        developed and implemented notices, policies, and procedures, such as\\nPrivacy Notice, this policy or Data Breach response procedure;

        \\n
      • \\n
      • \\n

        the fact of staff training on compliance with Data Protection laws;\\nand

        \\n
      • \\n
      • \\n

        assessment, implementation, and testing organizational and technical\\ndata protection measures.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      The Privacy Manager must maintain PlayForm’s Records of processing\\nactivities, which is an accountability document that describes personal\\ndata processing activities of PlayForm, prepared in accordance with Art.\\n30 of the GDPR (the “Records of processing activities”). The Records\\nof processing activities must maintain, at least, the following\\ninformation about each processing activity:

      \\n
        \\n
      • \\n

        contact details of PlayForm, the EU Representative, and, where\\napplicable, of the Data Protection Officer;

        \\n
      • \\n
      • \\n

        name of the activity, its purposes and legal basis along with, where\\napplicable, the legitimate interests of PlayForm;

        \\n
      • \\n
      • \\n

        data subjects and personal data categories concerned;

        \\n
      • \\n
      • \\n

        data retention periods;

        \\n
      • \\n
      • \\n

        general description of applicable security measures;

        \\n
      • \\n
      • \\n

        recipients, including joint controllers, processors, and contractors\\ninvolved, as well as the fact of the international data transfer\\nwith the safeguards applied to the transfer;

        \\n
      • \\n
      • \\n

        where applicable, a reference to the Data Processing Impact\\nAssessment;

        \\n
      • \\n
      • \\n

        where applicable, a reference to the record of the data breach\\noccurred involving the personal data;

        \\n
      • \\n
      • \\n

        if PlayForm acts as a data processor, the information to be provided\\nincludes the names and contact details of controllers, name and\\ncontact details of controller’s representative (if applicable),\\ncategories of processing (activities), names of third countries or\\ninternational organizations that personal data are transferred to\\n(if applicable), safeguards for exceptional transfers of personal\\ndata to third countries or international organizations (if\\napplicable), and general description of technical and organizational\\nsecurity measures.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  6. \\n
\\n

Legal Grounds and Purposes

\\n
    \\n
  1. \\n

    Legal grounds.

    \\n
      \\n
    1. \\n

      Each processing activity must have one of the lawful grounds specified\\nin this Section to process the Personal Data. If we do not have any of\\nthe described, we cannot collect or further process the Personal Data.

      \\n
    2. \\n
    3. \\n

      If PlayForm is intended to use personal data for other purposes than\\nthose specified in the Records of processing activities, the Privacy\\nManager must evaluate, determine, and, if necessary, collect/record the\\nappropriate legal basis for it.

      \\n
    4. \\n
    5. \\n

      Performance of the contract. Where PlayForm has a contract with the\\nData Subject, e.g., website’s Terms of Use or the employment contract,\\nand the contract requires the provision of personal data from the Data\\nSubject, the applicable legal ground will be the performance of the\\ncontract.

      \\n
    6. \\n
    7. \\n

      Consent. To process the personal data based on the consent, we must\\nobtain the consent before the Processing and keep the evidence of the\\nconsent with the records of Data Subject’s Personal Data. The Privacy\\nManager must make sure that the consent collected from Data Subjects\\nmeet the requirements of Data Protection Laws and this Policy. In\\nparticular, the Privacy Manager must make sure that:

      \\n
        \\n
      • \\n

        the Data Subject must be free to give or refuse to give consent.

        \\n
      • \\n
      • \\n

        the consent is in the form of an active indication from the Data\\nSubject, i.e., the consent checkbox must not be pre-ticked for the\\nuser.

        \\n
      • \\n
      • \\n

        the request for the consent clearly articulates the purposes of the\\nprocessing, and other information specified in Subsection 6.2 is\\navailable to the Data Subject.

        \\n
      • \\n
      • \\n

        the Data Subject must be free to give one’s consent or to revoke it.

        \\n
      • \\n
      \\n
    8. \\n
    9. \\n

      Legitimate interests. We have the right to use personal data in our\\n‘legitimate interests’. The interests can include the purposes that are\\njustified by the nature of our business activities, such as the\\nmarketing analysis of personal data. For PlayForm to use legitimate\\ninterests as a legal ground for the processing, the Privacy Manager must\\nmake sure that:

      \\n
        \\n
      • \\n

        the legitimate interest in the processing is clearly defined and\\nrecorded in the Records of processing activities;

        \\n
      • \\n
      • \\n

        any envisaged risks to Data Subject rights and interests are\\nspotted. The examples of the risks can be found in Subsection 7.2.;

        \\n
      • \\n
      • \\n

        the Data Subjects have reasonable expectations about the processing,\\nand additional protective measures to address the risks are taken;

        \\n
      • \\n
      • \\n

        subject to the conditions of Subsection 6.7 (Right to object against\\nthe processing), the Data Subject is provided with the opportunity\\nto opt-out from the processing for the described legitimate\\ninterests.
        \\nIf at least one of the above conditions is not met by PlayForm, the\\nPrivacy Manager must choose and propose a different legal ground for\\nthe processing, such as consent.

        \\n
      • \\n
      \\n
    10. \\n
    11. \\n

      Legal Compliance and Public Interest. Besides the grounds specified\\nafore, we might be requested by the laws of the European Union or laws\\nof the EU Member State to process Personal Data of our Users. For\\nexample, we can be required to collect, analyze, and monitor the\\ninformation of Users to comply with financial or labor laws.
      \\nWhenever we have such an obligation, we must make sure that:

      \\n
        \\n
      • \\n

        we process personal data strictly in accordance with relevant legal\\nrequirements;

        \\n
      • \\n
      • \\n

        we do not use or store the collected Personal Data for other\\npurposes than legal compliance; and

        \\n
      • \\n
      • \\n

        the Data Subjects are properly and timely informed about our\\nobligations, scope, and conditions of personal data processing.

        \\n
      • \\n
      \\n
    12. \\n
    \\n
  2. \\n
\\n

Important: Where PlayForm has the law requirements of another country to process\\npersonal data, the Privacy Manager must propose using another legal ground for\\nthe processing under Data Protection Laws, such as legitimate interests or\\nconsent.

\\n

Access to Personal Data

\\n
    \\n
  1. \\n

    Access to Personal Data.

    \\n
      \\n
    1. \\n

      The employees must have access to the personal data on a “need-to-know”\\nbasis. The data can be accessed only if it is strictly necessary to\\nperform one of the activities specified in the Records of processing\\nactivities. The employees and contractors shall have access to the\\nPersonal Data only if they have the necessary credentials for it.

      \\n
    2. \\n
    3. \\n

      Heads of the departments within PlayForm are responsible for their\\nemployees’ access and processing of personal data. The heads must\\nmaintain the list of employees that are entitled to access and process\\npersonal data. The Privacy Manager shall have the right to review the\\nlist and, where necessary, request the amendments to meet the\\nrequirements of this Policy.

      \\n
    4. \\n
    5. \\n

      Heads of the departments within PlayForm must ensure that the employees\\nunder their supervision are aware of the Data Protection Laws and comply\\nwith the rules set in this Policy. To make sure our employees are able\\nto comply with the data protection requirements, we must provide them\\nwith adequate data protection training.

      \\n
    6. \\n
    7. \\n

      All employees accessing personal data shall keep strict confidentiality\\nregarding the data they access. The employees that access personal data\\nmust use only those means (software, premises, etc.) for the processing\\nthat were prescribed by PlayForm. The data must not be disclosed or\\notherwise made available out of the management instructions.

      \\n
    8. \\n
    9. \\n

      The employees within their competence must assist PlayForm’s\\nrepresentatives, including the Privacy Manager, in any efforts regarding\\ncompliance with Data Protection Laws and/or this Policy.

      \\n
    10. \\n
    11. \\n

      When an employee detects or believes there is suspicious activity, data\\nbreach, non-compliance with Data Protection Laws and/or this Policy, or\\na DSR was not routed to the competent department within PlayForm, the\\nemployee must report such activity to the Privacy Manager.

      \\n
    12. \\n
    13. \\n

      Employees that are unsure about whether they can legitimately process or\\ndisclose Personal Data must seek advice from the Privacy Manager before\\ntaking any action.

      \\n
    14. \\n
    15. \\n

      Any occasional access to personal data for activities not specified in\\nthe Records of processing activities is prohibited. If there is a strict\\nnecessity for immediate access, the Privacy Manager must approve the\\naccess first.

      \\n
    16. \\n
    \\n
  2. \\n
\\n

Third Parties

\\n
    \\n
  1. \\n

    Before sharing personal data with any person outside of PlayForm, the\\nPrivacy Manager must ensure that this Third Party has an adequate data\\nprotection level and provide sufficient data protection guarantees in\\naccordance with Data Protection Laws, including, but not limited to the\\nprocessorship requirements (Art. 28 of the GDPR) and international transfers\\ncompliance (Section 5 of the GDPR). Where necessary, the Privacy Manager\\nmust make sure that PlayForm enters into the appropriate data protection\\ncontract with the third party.

    \\n
  2. \\n
  3. \\n

    An employee can share personal data with third parties only if and to the\\nextent that was directly prescribed by the manager and specified in the\\nRecords of processing activities.

    \\n
  4. \\n
  5. \\n

    If we are required to delete, change, or stop the processing of the Personal\\nData, we must ensure that the Third Parties, with whom we shared the\\nPersonal Data, will fulfill these obligations accordingly.

    \\n
  6. \\n
  7. \\n

    Whenever PlayForm is engaged as a data processor on behalf of another\\nentity, the Privacy Manager must make sure PlayForm complies with the\\nprocessorship obligation. In particular, the appropriate data processing\\nagreement in accordance with the Data Protection Laws must be in place. The\\nPrivacy Manager must supervise the compliance with data processing\\ninstructions from the controller, including regarding the scope of\\nprocessing activities, involvement of sub-processors, international\\ntransfers, storage, and further disposal of processed personal data. The\\npersonal data processed under the processor role must not be processed for\\nany other purposes than specified in the relevant instructions, agreement or\\nother legal act regulating the relationships with the controller.

    \\n
  8. \\n
\\n

International Transfers

\\n
    \\n
  1. \\n

    If we have the employees, contractors, corporate affiliates, or Data\\nProcessors outside of the EEA, and we transfer Personal Data to them for the\\nprocessing, the Privacy Manager must make sure PlayForm takes all necessary\\nand appropriate safeguards in accordance with Data Protection Laws.

    \\n
  2. \\n
  3. \\n

    The Privacy Manager must assess the safeguards available and propose to the\\nPlayForm’s management the appropriate safeguard for each international\\ntransfer. The following regimes apply to the transfers of Personal Data\\noutside of the EU:

    \\n
      \\n
    • \\n

      where the European Commission decides that the country has an adequate\\nlevel of personal data protection, the transfer does not require taking\\nadditional safeguards. The full list of adequate jurisdictions can be\\nfound on the relevant page of the European Commission’s website1.

      \\n
    • \\n
    • \\n

      to transfer Personal Data to our contractors or partners (Data\\nProcessors or Controllers) in other third countries, we must conclude\\nStandard Contractual Clauses with that party. The draft version along\\nwith the guidance can be found on the relevant page of the European\\nCommission’s website2;

      \\n
    • \\n
    • \\n

      if we have a corporate affiliate or an entity in other countries, we may\\nchoose to adopt Binding Corporate Rules in accordance with Article 47 of\\nthe GDPR or an approved code of conduct pursuant to Article 40 of the\\nGDPR;

      \\n
    • \\n
    • \\n

      we also can transfer Personal Data to entities that have an approved\\ncertification in accordance with Article 42 of the GDPR, which certifies\\nan appropriate level of company’s data protection.

      \\n
    • \\n
    \\n
  4. \\n
\\n
    \\n
  1. \\n

    As a part of the information obligations, PlayForm must inform the Data\\nSubjects that their Personal Data is being transferred to other countries,\\nas well as provide them with the information about the safeguards used for\\nthe transfer. The information obligation is to be performed in accordance\\nwith Subsection 6.2.

    \\n
  2. \\n
  3. \\n

    In the exceptional cases (the “Derogation”), where we cannot apply the\\nsafeguards mentioned afore and we need to transfer Personal Data, we must\\ntake an explicit consent (active statement) from the Data Subject or it must\\nbe strictly necessary for the performance of the contract between us and the\\nData Subject, or other derogation conditions apply in accordance with the\\nData Protection Laws. The Privacy Manager must pre-approve any Derogation\\ntransfers and document the approved Derogations, as well as the rationale\\nfor them.

    \\n
  4. \\n
\\n

Rights of Data Subjects

\\n
    \\n
  1. \\n

    Our Responsibilities.

    \\n
      \\n
    1. \\n

      Privacy Manager is ultimately responsible for handing all DSR received\\nby PlayForm. In the case of receiving any outstanding or unusual DSR,\\nthe employee must seek advice from the Privacy Manager before taking any\\naction.

      \\n
    2. \\n
    3. \\n

      DSR Team within PlayForm is responsible for handling DSRs from PlayForm\\nUsers on a daily basis. The Human Resources department is responsible\\nfor handling the DSR from PlayForm employees.

      \\n
    4. \\n
    5. \\n

      All DSRs from the Users must be addressed at and answered from the\\nfollowing e-mail address: DSR@PlayForm.LTD. DSR from the employees can\\nbe addressed directly to the HR manager or at DSR@PlayForm.LTD.

      \\n
    6. \\n
    7. \\n

      The responsible employee must answer to the DSR within one (1) month\\nfrom receiving the request. If complying with the DSR takes more than\\none month in time, the responsible employee must seek advice from the\\nPrivacy Manager and, where necessary, inform the Data Subject about the\\nprolongation of the response term for up to two (2) additional months.

      \\n
    8. \\n
    9. \\n

      The responsible employee must analyze the received DSR for the following\\ncriteria:

      \\n
        \\n
      • \\n

        Data Subject identification. Before considering the DSR content,\\nthe responsible employee must make sure the Data Subject is the same\\nperson he/she claims to be. For this purpose, the connection between\\nthe personal data records and the data subject must be established.

        \\n
      • \\n
      • \\n

        Personal data. The responsible employee must check whether\\nPlayForm has access to the personal data requested. If PlayForm does\\nnot have the personal data under the control, the responsible\\nemployee must inform the Data Subject, and, if possible, instruct on\\nthe further steps on how to access the data in question;

        \\n
      • \\n
      • \\n

        Content of the request. Depending on the content of the DSR, the\\nresponsible employee must define the type of the request and check\\nwhether it meets the conditions prescribed by this Policy and Data\\nProtection Laws. The types of requests and the respective conditions\\nfor each of them can be consulted in Subsections 6.3-6.9. If the\\nrequest does not meet the described criteria, the responsible\\nemployee must refuse to comply with the DSR and inform the Data\\nSubject about the reasons for refusing;

        \\n
      • \\n
      • \\n

        Free of charge. Generally, all requests of Data Subjects and\\nexercises of their rights are free of charge. If the responsible\\nemployee finds that the Data Subject exercises the rights in an\\nexcessive or unfound way (e.g., intended to harm or interrupt\\nPlayForm’s business activities), the employee must seek the advice\\nfrom the Privacy Manager, and, upon receiving of the latter, may\\neither charge the Data Subject a reasonable fee or refuse to comply\\nwith the request;

        \\n
      • \\n
      • \\n

        Documenting. Whenever PlayForm receives the DSR, the Privacy\\nManager must make sure that the data and time, Data Subject, type of\\nthe request and the decision made regarding it are well documented.\\nIn the case of refusing to comply with the request, the reasons for\\nrefusing must be documented as well;

        \\n
      • \\n
      • \\n

        Recipients. When addressing the DSR, the Privacy Manager must\\nmake sure that all concerned recipients were informed the necessary\\nactions were taken.

        \\n
      • \\n
      \\n
    10. \\n
    \\n
  2. \\n
  3. \\n

    The right to be informed.

    \\n
      \\n
    1. \\n

      PlayForm must notify each Data Subject about the collection and further\\nprocessing of the Personal Data.

      \\n
    2. \\n
    3. \\n

      The information to be provided includes: the name and contact details of\\nPlayForm; generic purposes of and the lawful basis for the data\\ncollection and further processing; categories of Personal Data\\ncollected; recipients/categories of recipients; retention periods;\\ninformation about data subject rights, including the right to complain\\nto the competent Supervisory Authority; the consequences of the cases\\nwhere the data is necessary for the contract performance and the Data\\nSubject does not provide the required data; details of the safeguards\\nwhere personal data is transferred outside the EEA; and any third-party\\nsource of the personal data, without specification for the particular\\ncase (except if we receive the direct request from the Data Subject).

      \\n
    4. \\n
    5. \\n

      The Users must be informed by the Privacy Policy accessible at\\nPlayForm’s website and provided during the user registration. The\\nemployees and contractors must be informed by a standalone employee\\nprivacy statement, which explains the details described in p. 6.2.2 in a\\ncase-based manner, describing the particular purposes and activities.

      \\n
    6. \\n
    7. \\n

      PlayForm must inform Data Subjects about data processing, including any\\nnew processing activity introduced at PlayForm within the following\\nterm:

      \\n
        \\n
      • \\n

        if personal data is collected from the data subject directly, the\\ndata subject must be informed at the time we collect Personal Data\\nfrom the Data Subjects by showing the Data Subject our privacy\\nstatement;

        \\n
      • \\n
      • \\n

        if the personal data is collected from other sources: (a) within one\\nmonth from collecting it; (b) if the personal data are to be used\\nfor communication with the data subject, at the latest at the time\\nof the first communication to that data subject; or (c) if a\\ndisclosure to another recipient is envisaged, at the latest when the\\npersonal data are first disclosed.

        \\n
      • \\n
      • \\n

        upon the request of the Data Subject; and

        \\n
      • \\n
      • \\n

        within one (1) month after any change of our personal data\\npractices, change of the controller of Personal Data or after\\nsignificant changes in our privacy statements.

        \\n
      • \\n
      \\n
    8. \\n
    \\n
  4. \\n
  5. \\n

    The right to access the information.

    \\n
      \\n
    1. \\n

      The Data Subject must be provided only with those personal data records\\nspecified in the request. If the Data Subject requests access to all\\npersonal data concerning her or him, the employee must seek advice from\\nthe Privacy Manager first, to make sure all personal data of the Data\\nSubject is mapped and provided.

      \\n
    2. \\n
    3. \\n

      A Data Subject has the right to:

      \\n
        \\n
      • \\n

        learn if we process the Data Subject’s Personal Data;

        \\n
      • \\n
      • \\n

        obtain disclosure regarding aspects of the processing, including\\ndetailed and case-specific information on purposes, categories of\\nPersonal Data, recipients/categories of recipients, retention\\nperiods, information about one’s rights, details of the relevant\\nsafeguards where personal data is transferred outside the EEA, and\\nany third-party source of the personal data; and

        \\n
      • \\n
      • \\n

        obtain a copy of the Personal Data undergoing processing upon the\\nrequest.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  6. \\n
  7. \\n

    The right to verify the Data Subject’s information\\nand seek its rectification. The information we collect can\\nbe/become inaccurate or out-of-date (e.g., mistakes in nationality, date of\\nbirth, info on debts, economic activities). If we reveal that the Personal\\nData is inaccurate or the Data Subject requests us to do so, we must ensure\\nthat we correct all mistakes and update the relevant information.

    \\n
  8. \\n
  9. \\n

    The right to restrict processing.

    \\n
      \\n
    1. \\n

      The restriction of processing allows Data Subjects to temporarily stop\\nthe use of their information to prevent the possible harm caused by such\\nuse.

      \\n
    2. \\n
    3. \\n

      This right applies when the Data Subject:

      \\n
        \\n
      • \\n

        contests the accuracy of the Personal Data;

        \\n
      • \\n
      • \\n

        believes that we process the Personal Data unlawfully; and

        \\n
      • \\n
      • \\n

        objects against the processing and wants us not to process Personal\\nData while we are considering the request.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      In the case of receiving the restriction request, we must not process\\nPersonal Data in question for any other purpose than storing it or for\\nlegal compliance purposes until the circumstances of restriction cease\\nto exist.

      \\n
    6. \\n
    \\n
  10. \\n
  11. \\n

    The right to withdraw the consent. For\\nthe activities that require consent, the Data Subject can revoke their\\nconsent at any time. If the Data Subject revokes the consent, we must record\\nthe changes and must not process the Personal Data for consent-based\\npurposes. The withdrawal of consent does not affect the lawfulness of the\\nprocessing done before the withdrawal.

    \\n
  12. \\n
  13. \\n

    The right to object against the\\nprocessing.

    \\n
      \\n
    1. \\n

      If we process the information in our legitimate interests, e.g., for\\ndirect marketing emails or for our marketing research purposes, the Data\\nSubject can object against the processing.

      \\n
    2. \\n
    3. \\n

      In the case of receiving the objection request case, we must consider\\nData Subject’s request and, where we do not have compelling interests,\\nstop the processing for the specified purposes. If the personal data is\\nstill to be processed for other purposes, the Privacy Manager must make\\nsure that the database has a record that the data cannot be further\\nprocessed for the objected activities.

      \\n
    4. \\n
    5. \\n

      The objection request can be refused only if the personal data in\\nquestion is used for scientific/historical research or statistical\\npurposes and was appropriately protected, i.e., by anonymization or\\npseudonymization techniques.

      \\n
    6. \\n
    \\n
  14. \\n
  15. \\n

    Right to erasure/to be forgotten.

    \\n
      \\n
    1. \\n

      The Data Subjects have the right to request us to erase their Personal\\nData if one of the following conditions are met:

      \\n
        \\n
      • \\n

        Personal Data is no longer necessary for the purposes of collection.\\nFor example, a user has provided personal data for a one-time\\nactivity, such as data validation or participation in a contest, and\\nthe purpose is already fulfilled;

        \\n
      • \\n
      • \\n

        the Data Subject revokes one’s consent or objects to the processing\\n(where applicable) and there is no other legal ground for the\\nprocessing; or

        \\n
      • \\n
      • \\n

        we process the Personal Data unlawfully or its erasure is required\\nby the applicable legislation of the European Union or one of the\\nMember countries of the European Union.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      Conditions, under which we have the right to refuse the erasure:

      \\n
        \\n
      • \\n

        Personal Data is processed for scientific/historical research or\\nstatistical purposes and is appropriately protected, i.e.,\\npseudonymized or anonymized;

        \\n
      • \\n
      • \\n

        Personal Data is still necessary for legal compliance (e.g.,\\nfinancial or labor laws compliance).

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      Only those personal data records must be deleted that were specified in\\nthe request. If the Data Subject requests the deletion of all personal\\ndata concerning her or him, the employee must seek advice from the\\nPrivacy Manager first, to make sure all the data about the Data Subject\\nis mapped and can be deleted.

      \\n
    6. \\n
    7. \\n

      If the User still has an account with us and requests the erasure of\\ninformation necessary for maintaining the account, we must inform the\\nUser that the erasure will affect user experience or can lead to the\\nclosure of the account.

      \\n
    8. \\n
    \\n
  16. \\n
  17. \\n

    Data portability.

    \\n
      \\n
    1. \\n

      Data Subjects can ask us to transfer all the Personal Data and/or its\\npart in a machine-readable format to a third party. This right applies\\nin two cases:

      \\n
        \\n
      • \\n

        personal data was collected for the purpose of provision of our\\nservices (performance of the contract); or

        \\n
      • \\n
      • \\n

        collected based on consent.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      To determine whether one of the p.6.9.1 conditions are met, the employee\\nmust seek advice from the Privacy Manager and check the applicable legal\\nbasis in the Records of processing activities. If the answer is\\nnegative, the request can be refused by PlayForm, and the Privacy\\nManager must decide whether to comply with the request on a voluntary\\nbasis.

      \\n
    4. \\n
    5. \\n

      To comply with the request, the responsible employee must consolidate\\nrequested Personal Data and send the data in the format we are usually\\nworking with to the requested organization. The Data Subject must\\nprovide the necessary contact details of the organization.

      \\n
    6. \\n
    \\n
  18. \\n
\\n

New Data Processing Activities

\\n
    \\n
  1. \\n

    Notification to Privacy Manager.

    \\n
      \\n
    1. \\n

      Before introducing any new activity that involves the processing of\\npersonal data, an employee responsible for its implementation must\\ninform the Privacy Manager.

      \\n
    2. \\n
    3. \\n

      Upon receiving information about a new activity, Privacy Manager must:

      \\n
        \\n
      • \\n

        determine whether the data processing impact assessment (DPIA)\\nand/or the consultation with the Supervisory Authority is necessary.\\nIf the answer is positive, the Privacy Manager must make sure the\\nDPIA is conducted and/or the Supervisory Authority is consulted in\\naccordance with the requirements of this Section and Data Protection\\nLaws;

        \\n
      • \\n
      • \\n

        determine the legal basis for the processing and, where necessary,\\ntake further action for its fixation;

        \\n
      • \\n
      • \\n

        make sure the processing activity is done in accordance with this\\nPolicy, other PlayForm’s policies, as well as the Data Protection\\nLaws;

        \\n
      • \\n
      • \\n

        add the processing activity to the Records of processing activities;

        \\n
      • \\n
      • \\n

        amend the privacy information statements and, where necessary,\\ninform the concerned Data Subject accordingly.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  2. \\n
  3. \\n

    Data Processing Impact Assessment.

    \\n
      \\n
    1. \\n

      To make sure that our current or prospective processing activities do\\nnot/will not violate the Data Subjects’ rights, PlayForm must, where\\nrequired by Data Protection Laws, conduct the Data Processing Impact\\nAssessment (DPIA), a risk-based assessment of the processing and search\\nfor the measures to mitigate the risks. The Privacy Manager must make\\nsure the DPIA is conducted in accordance with this Section.

      \\n
    2. \\n
    3. \\n

      The Privacy Manager, where necessary, involving the competent employees\\nand/or external advisors, must conduct a DPIA if at least one of the\\nfollowing conditions are met:

      \\n
        \\n
      • \\n

        the processing involves the use of new technologies, such as the\\nArtificial Intelligence, use of connected and autonomous devices,\\netc. that creates certain legal, economic or similar effects to the\\nData Subject;

        \\n
      • \\n
      • \\n

        we systematically assess and evaluate personal aspects of the Data\\nSubjects based on automated profiling, assigning the personal\\nscore/rate, and create legal or similar effects for the Data Subject\\nby this activity;

        \\n
      • \\n
      • \\n

        we process on a large-scale sensitive data, which includes Personal\\nData relating to criminal convictions and offences, the data about\\nvulnerable data subjects, the personal data revealing racial or\\nethnic origin, political opinions, religious or philosophical\\nbeliefs, or trade union membership, and the processing of genetic\\ndata, biometric data for the purpose of uniquely identifying a\\nnatural person, data concerning health or data concerning a natural\\nperson’s sex life or sexual orientation;

        \\n
      • \\n
      • \\n

        we collect or process Personal Data from a publicly accessible area\\nor public sources on a large scale, or combine or match two\\ndifferent data sets; and

        \\n
      • \\n
      • \\n

        the Supervisory Authority in its public list requires conducting a\\nDPIA for a certain type of activity we are involved in. The list of\\nprocessing activities requiring conducting DPIA can be found on the\\nwebsite of each Supervisory Authority.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      The assessment shall contain at least the following details:

      \\n
        \\n
      • \\n

        a systematic description of the processing operations and the\\npurposes of the processing, including, where applicable, the\\nlegitimate interest pursued by us. The description must include the\\nenvisaged data categories and data subjects concerned, the scale of\\nprocessing activities, such as its frequency, volume, envisaged\\nnumber of records, etc.; recipients of the data, retention periods\\nand, where applicable, international transfers;

        \\n
      • \\n
      • \\n

        an assessment of the necessity and proportionality of the processing\\noperations in relation to the purposes. The DPIA must explain\\nwhether the activity is necessary for the purpose and whether the\\npurpose can be achieved by less intrusive methods;

        \\n
      • \\n
      • \\n

        an assessment of the risks to the rights and freedoms of data\\nsubjects, including the rights of Data Subjects regarding their\\nPersonal Data.

        \\n
      • \\n
      • \\n

        The examples of risks are the processing which could lead to\\nphysical, material or non-material damage, in particular: where the\\nprocessing may give rise to discrimination, identity theft or fraud,\\nfinancial loss, damage to the reputation, loss of confidentiality of\\npersonal data protected by professional secrecy, unauthorized\\nreversal of pseudonymization, or any other significant economic or\\nsocial disadvantage; where data subjects might be deprived of their\\nrights and freedoms or prevented from exercising control over their\\npersonal data; where personal data are processed which reveal racial\\nor ethnic origin, political opinions, religion or philosophical\\nbeliefs, trade union membership, and the processing of genetic data,\\ndata concerning health or data concerning sex life or criminal\\nconvictions and offences or related security measures; where\\npersonal aspects are evaluated, in particular analyzing or\\npredicting aspects concerning performance at work, economic\\nsituation, health, personal preferences or interests, reliability or\\nbehavior, location or movements, in order to create or use personal\\nprofiles; where personal data of vulnerable natural persons, in\\nparticular of children, are processed; or where processing involves\\na large amount of personal data and affects a large number of data\\nsubjects; and

        \\n
      • \\n
      • \\n

        the measures to address the risks, including safeguards, security\\nmeasures, and mechanisms to ensure the protection of personal data\\nand to demonstrate compliance with this Regulation.

        \\n
      • \\n
      \\n
    6. \\n
    7. \\n

      Where the DPIA did not provide how to effectively address the risks, the\\nPrivacy Manager must initiate the consultation with the competent\\nSupervisory Authority to receive help with searching for the solution.\\nIn this case, PlayForm must not conduct the activity before the\\nSupervisory Authority approves the processing activity in question.

      \\n
    8. \\n
    \\n
  4. \\n
\\n

Data Retention

\\n
    \\n
  1. \\n

    General Rule.

    \\n
      \\n
    1. \\n

      The Privacy Manager must make sure that PlayForm clearly defined the\\ndata storage periods and/or criteria for determining the storage periods\\nfor each processing activity it has. The periods for each processing\\nactivity must be specified in the Records of processing activities.

      \\n
    2. \\n
    3. \\n

      Each department within PlayForm must comply with the data storage\\nperiods in accordance with the retention schedule provided in Records of\\nprocessing activities. The Privacy Manager must supervise each\\ndepartment and make sure they comply with this requirement.

      \\n
    4. \\n
    5. \\n

      After the storage period ends, the personal data must be removed from\\nthe disposal of the department responsible for the processing or, in\\ncases where the data is not needed for any other purposes, destroyed\\ncompletely, including from back-up copies and other media.

      \\n
    6. \\n
    7. \\n

      Whenever the storage period for a processing activity has ended, but the\\npersonal data processed is necessary for other processing purposes, the\\ndepartment manager must make sure that the personal data is not used for\\nthe ceased processing activity, and the responsible employees do not\\nhave the access to it unless required for any other activity.

      \\n
    8. \\n
    \\n
  2. \\n
  3. \\n

    Exemptions. The rules specified in\\nSubsection 8.1 have the following exceptions:

    \\n
      \\n
    1. \\n

      Business needs. Data retention periods can be prolonged, but no\\nlonger than 60 days, in the case that the data deletion will interrupt\\nor harm our ongoing business. The Privacy Manager must approve any\\nunforeseen prolongation;

      \\n
    2. \\n
    3. \\n

      Technical impossibility. Some information is technically impossible\\nor disproportionally difficult to delete. For example, deletion of the\\ninformation may lead to breach of system integrity, or it is impossible\\nto delete the information from the backup copies. In such a case, the\\ninformation can be further stored, subject to the approval by the\\nPrivacy Manager and making respective amendments to the Records of\\nprocessing activities; and

      \\n
    4. \\n
    5. \\n

      Anonymization. The Personal Data can be further processed for any\\npurposes (e.g., marketing) if we fully anonymize these data after the\\nretention period is expired. This means that all personal identifiers\\nand connections to them will be deleted from the data. To consider\\nPersonal Data anonymous, it must be impossible to reidentify the Data\\nSubject from the data set.

      \\n
    6. \\n
    \\n
  4. \\n
\\n

Security

\\n
    \\n
  1. \\n

    Each department within PlayForm shall take all appropriate technical and\\norganizational measures that protect against unauthorized, unlawful, and/or\\naccidental access, destruction, modification, blocking, copying,\\ndistribution, as well as from other illegal actions of unauthorized persons\\nregarding the personal data under their responsibility.

    \\n
  2. \\n
  3. \\n

    The employee responsible for the supervision after the security of personal\\ndata within PlayForm shall be DSR Officer. This person implements the\\nguidelines and other specifications on data protection and information\\nsecurity in his area of responsibility. He/she advises PlayForm management\\non the planning and implementation of information security in PlayForm, and\\nmust be involved in all projects at an early stage in order to take\\nsecurity-related aspects into account as early as the planning phase.

    \\n
  4. \\n
\\n

Data Breach Response Procedure

\\n
    \\n
  1. \\n

    Response Team.

    \\n
      \\n
    1. \\n

      In case of revealing the Data Breach, CEO of PlayForm shall urgently\\nform the Data Breach Response Team (the “Response Team”), which will\\nhandle the Data Breach, notify the appropriate persons, and mitigate its\\nrisks.

      \\n
    2. \\n
    3. \\n

      The Response Team must be а multi-disciplinary group headed by CEO of\\nPlayForm and comprised of the Privacy Manager, privacy laws specialist\\n(whether internal or external), and knowledgeable and skilled\\ninformation security specialists within PlayForm or outsourcing\\nprofessionals, if necessary. The team must ensure that all employees and\\nengaged contractors/processors adhere to this Policy and provide an\\nimmediate, effective, and skillful response to any suspected/alleged or\\nactual Data Breach affecting PlayForm.

      \\n
    4. \\n
    5. \\n

      The potential members of the Response Team must be prepared to respond\\nto а Data Breach. The Response Team shall perform all the\\nresponsibilities of PlayForm mentioned in this Policy. The duties of the\\nResponse Team are:

      \\n
        \\n
      • \\n

        to communicate the Data Breach to the competent Supervisory\\nAuthority(-ies);

        \\n
      • \\n
      • \\n

        in case of high risk to the rights and freedoms of Data Subjects, to\\ncommunicate the Data Breach to the Data Subject;

        \\n
      • \\n
      • \\n

        if PlayForm obtain data from any third party as a processor, and a\\nData Breach involves obtained data, to inform the third parties\\nabout the Data Breach;

        \\n
      • \\n
      • \\n

        to communicate PlayForm’s contractors or any other third parties\\nthat process the Personal Data involved in the Data Breach; and

        \\n
      • \\n
      • \\n

        to take all appropriate technical and organizational measures to\\ncease the Data Breach and mitigate its consequences;

        \\n
      • \\n
      • \\n

        to record the fact of the Data Breach in the Records of processing\\nactivities and file an internal data breach report that describes\\nthe event.

        \\n
      • \\n
      \\n
    6. \\n
    7. \\n

      The Response Team shall perform its duties until all the necessary\\nmeasures required by this Policy are taken.

      \\n
    8. \\n
    \\n
  2. \\n
  3. \\n

    Notification to Supervisory Authority.

    \\n
      \\n
    1. \\n

      PlayForm shall inform the Competent Supervisory Authority about the Data\\nBreach without undue delay and, where it is possible, not later than 72\\nhours after having become aware of the Data Breach.

      \\n
    2. \\n
    3. \\n

      The Competent Supervisory Authority shall be determined by the residence\\nof the Data Subjects, whose information was involved in the Data Breach.\\nIf the Data Breach concerns the Personal Data of Data Subjects from more\\nthan one country, PlayForm shall inform all Competent Supervisory\\nAuthorities.

      \\n
    4. \\n
    5. \\n

      To address the notification to the authority, the Response Team should\\nuse Annex 1 to this Policy. Annex 1 contains all the necessary contact\\ninformation of the EU supervisory authorities. If the Data Breach\\nconcerns Data Subjects from other than the EU countries, the Response\\nTeam shall ask a competent privacy specialist for advice.

      \\n
    6. \\n
    7. \\n

      The notification to the Competent Supervisory Authority shall contain,\\nat least, following information:

      \\n
        \\n
      • \\n

        the nature of the Data Breach including where possible, the\\ncategories and an approximate number of Data Subjects and Personal\\nData records concerned;

        \\n
      • \\n
      • \\n

        the name and contact details of the Response Team, Privacy Manager\\nor, if not applicable, of the CEO;

        \\n
      • \\n
      • \\n

        the likely consequences of the Data Breach. Explain PlayForm’s point\\nof view on the purposes and possible further risks of the Data\\nBreach. E.g., the Personal Data may be stolen for the further\\nsale, fraud activities or blackmailing the concerned Data\\nSubjects; and

        \\n
      • \\n
      • \\n

        the measures taken or proposed to be taken by PlayForm to\\naddress the Data Breach, including, where appropriate, measures to\\nmitigate its possible adverse effects.

        \\n
      • \\n
      \\n
    8. \\n
    9. \\n

      To file a notification, the Response Team should use PlayForm’s Data\\nBreach Notification Form to the Supervisory Authority.

      \\n
    10. \\n
    \\n
  4. \\n
  5. \\n

    Notifications to Data Subjects.

    \\n
      \\n
    1. \\n

      When the Data Breach is likely to result in a high risk to the rights\\nand freedoms of Data Subjects (e.g., stealing of funds, assets,\\nproprietary information), we must also communicate the Data Breach to\\nthe concerned Data Subjects without undue delay. The Privacy Manager\\nmust determine if there is a high risk based on the risk factors\\nspecified in Subsection 7.2.3 of this Policy.

      \\n
    2. \\n
    3. \\n

      The notification shall contain the following information:

      \\n
        \\n
      • \\n

        description of the Data Breach - what happened and what led to the\\nData Breach, such as a security breach, employee’s negligence,\\nerror in the system work. If the Response Team decided not to\\ndisclose the causes of the Data Breach, then this clause must not be\\nmentioned;

        \\n
      • \\n
      • \\n

        the measures taken by PlayForm regarding the Data Breach, including\\nsecurity measures, internal investigations, and supervisory\\nauthority notice;

        \\n
      • \\n
      • \\n

        recommendations for the concerned Data Subjects how to mitigate\\nrisks and possible consequences, such as guidelines on how to\\nrestore access to an account, preventing measures (change of a\\npassword); and

        \\n
      • \\n
      • \\n

        the contact information of the Response Team or one of its members.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      The notification to the Data Subjects should be carried out by the\\nemail letter or, where it is impossible to use the email, by other\\navailable means of communication.

      \\n
    6. \\n
    7. \\n

      Exemptions. We do not have to send the notification to the Data\\nSubjects if any of the following conditions are met:

      \\n
        \\n
      • \\n

        PlayForm has implemented appropriate technical and organizational\\nprotection measures, and those measures were applied to the Personal\\nData affected by the Data Breach, in particular, those that leave\\nthe Personal Data inaccessible to any person who is not authorized\\nto access it, such as encryption;

        \\n
      • \\n
      • \\n

        PlayForm has taken subsequent measures which ensure that the high\\nrisk to the rights and freedoms of Data Subjects referred to in this\\nsection is no longer likely to materialize; or

        \\n
      • \\n
      • \\n

        it would involve a disproportionate effort to communicate with every\\nconcerned Data Subject. In such a case, there shall instead be a\\npublic communication or similar measure whereby the Data Subjects\\nare informed in an equally effective manner.

        \\n
      • \\n
      \\n
    8. \\n
    \\n
  6. \\n
\\n

In the case we apply one of the exemptions, we must document the\\ncircumstances, reason for not informing, and actions taken to meet one of the\\nexemptions.

\\n
    \\n
  1. \\n

    Communication with Third Parties.

    \\n
      \\n
    1. \\n

      In the case a Data Breach concerns the Personal Data shared with us or\\nprocessed by us on behalf of a Third Party, we must also notify the\\nThird Party about it within 24 hours. If we process the Personal Data as\\na Data Processor, the notification of the Third Party does not exempt us\\nfrom the duty to mitigate the Data Breach consequences, but we must not\\ninform the Competent Supervisory Authority and Data Subjects.

      \\n
    2. \\n
    3. \\n

      In case of receiving the notification about the Data Breach from the\\nData Processor or other Third Parties that have access to the Personal\\nData, CEO of PlayForm shall, in accordance with this Section:

      \\n
        \\n
      • \\n

        form the Response Team;

        \\n
      • \\n
      • \\n

        request the Third Party to send the information mentioned in\\nSubsections 10.2-3 of this Policy;

        \\n
      • \\n
      • \\n

        where necessary, inform the Competent Supervisory Authority(-ies)\\nand Data Subjects; and

        \\n
      • \\n
      • \\n

        perform other steps of the Data Breach response procedure.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  2. \\n
\\n

List of Persons Briefed on Personal Data Protection Policy

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Full Name

Status

Date

Nikola Hristov Briefed05.25.2018
\\n

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

\\n

European National Data Protection Authorities

\\n

Austria

\\n

Österreichische Datenschutzbehörde
\\nHohenstaufengasse 3
\\n1010 Wien
\\nTel. +43 1 531 15 202525
\\nFax +43 1 531 15 202690
\\nE-mail: dsb@dsb.gv.at
\\nWebSite: https://www.dsb.gv.at

\\n

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische\\nDatenschutzbehörde

\\n

Belgium

\\n

Commission de la protection de la vie privée
\\nCommissie voor de bescherming van de persoonlijke levenssfeer
\\nRue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
\\nTel. +32 2 274 48 00
\\nFax +32 2 274 48 35
\\nE-mail: commission@privacycommission.be
\\nWebSite: https://www.privacycommission.be

\\n

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy\\ncommission

\\n

Bulgaria

\\n

Commission for Personal Data Protection
\\n2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
\\nTel. +359 2 915 3580
\\nFax +359 2 915 3525
\\nE-mail: kzld@cpdp.bg
\\nWebSite: https://www.cpdp.bg

\\n

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for\\nPersonal Data Protection
\\nArt 29 WP Alternate Member: Ms. Mariya MATEVA

\\n

Croatia

\\n

Croatian Personal Data Protection Agency
\\nMartićeva 14
\\n10000 Zagreb
\\nTel. +385 1 4609 000
\\nFax +385 1 4609 099
\\nE-mail: azop@azop.hr or info@azop.hr
\\nWebSite: https://www.azop.hr

\\n

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection\\nAgency

\\n

Cyprus

\\n

Commissioner for Personal Data Protection
\\n1 Iasonos Street,
\\n1082 Nicosia
\\nP.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
\\nFax +357 22 304 565
\\nE-mail: commissioner@dataprotection.gov.cy
\\nWebSite: https://www.dataprotection.gov.cy

\\n

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
\\nArt 29 WP Alternate Member: Mr. Constantinos GEORGIADES

\\n

Czech Republic

\\n

The Office for Personal Data Protection
\\nUrad pro ochranu osobnich udaju Pplk. Sochora 27
\\n170 00 Prague 7
\\nTel. +420 234 665 111
\\nFax +420 234 665 444
\\nE-mail: posta@uoou.cz
\\nWebSite: https://www.uoou.cz

\\n

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data\\nProtection
\\nArt 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the\\nOffice

\\n

Denmark

\\n

Datatilsynet
\\nBorgergade 28, 5
\\n1300 Copenhagen K
\\nTel. +45 33 1932 00
\\nFax +45 33 19 32 18
\\nE-mail: dt@datatilsynet.dk
\\nWebSite: https://www.datatilsynet.dk

\\n

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection\\nAgency (Datatilsynet)
\\nArt 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International\\nDivision at the Danish Data Protection Agency (Datatilsynet)

\\n

Estonia

\\n

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
\\nVäike-Ameerika 19
\\n10129 Tallinn
\\nTel. +372 6274 135
\\nFax +372 6274 137
\\nE-mail: info@aki.ee
\\nWebSite: https://www.aki.ee/en

\\n

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection\\nInspectorate
\\nArt 29 WP Alternate Member: Ms. Maarja Kirss

\\n

Finland

\\n

Office of the Data Protection Ombudsman
\\nP.O. Box 315
\\nFIN-00181 Helsinki Tel. +358 10 3666 700
\\nFax +358 10 3666 735
\\nE-mail: tietosuoja@om.fi
\\nWebSite: https://www.tietosuoja.fi/en

\\n

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection\\nAuthority
\\nArt 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

\\n

France

\\n

Commission Nationale de l’Informatique et des Libertés - CNIL
\\n8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
\\nTel. +33 1 53 73 22 22
\\nFax +33 1 53 73 22 00
\\nWebSite: https://www.cnil.fr

\\n

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
\\nArt 29 WP Alternate Member: Ms. Florence RAYNAL

\\n

Germany

\\n

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
\\nHusarenstraße 30
\\n53117 Bonn
\\nTel. +49 228 997799 0; +49 228 81995 0
\\nFax +49 228 997799 550; +49 228 81995 550
\\nE-mail: poststelle@bfdi.bund.de
\\nWebSite: https://www.bfdi.bund.de

\\n

The competence for complaints is split among different data protection\\nsupervisory authorities in Germany.

\\n

Competent authorities can be identified according to the list provided under

\\n

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

\\n

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of\\nInformation
\\nArt 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the\\nfederal states

\\n

Greece

\\n

Hellenic Data Protection Authority
\\nKifisias Av. 1-3, PC 11523 Ampelokipi Athens
\\nTel. +30 210 6475 600
\\nFax +30 210 6475 628
\\nE-mail: contact@dpa.gr
\\nWebSite: https://www.dpa.gr

\\n

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
\\nArt 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

\\n

Hungary

\\n

National Authority for Data Protection and Freedom of Information
\\nSzilágyi Erzsébet fasor 22/C H-1125 Budapest
\\nTel. +36 1 3911 400
\\nE-mail: peterfalvi.attila@naih.hu
\\nWebSite: https://www.naih.hu

\\n

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for\\nData Protection and Freedom of Information
\\nArt 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National\\nAuthority for Data Protection and Freedom of Information

\\n

Ireland

\\n

Data Protection Commissioner
\\nCanal House Station Road Portarlington Co. Laois
\\nLo-Call: 1890 25 22 31
\\nTel. +353 57 868 4800
\\nFax +353 57 868 4757
\\nE-mail: info@dataprotection.ie
\\nWebSite: https://www.dataprotection.ie

\\n

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
\\nArt 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale\\nSUNDERLAND, Deputy Commissioner

\\n

Italy

\\n

Garante per la protezione dei dati personali
\\nPiazza di Monte Citorio, 121 00186 Roma
\\nTel. +39 06 69677 1
\\nFax +39 06 69677 785
\\nE-mail: garante@garanteprivacy.it
\\nWebSite: https://www.garanteprivacy.it

\\n

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei\\ndati personali
\\nArt 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per\\nla protezione dei dati personali

\\n

Latvia

\\n

Data State Inspectorate Director: Ms. Daiga Avdejanova
\\nBlaumana str. 11/13-15
\\n1011 Riga
\\nTel. +371 6722 3131
\\nFax +371 6722 3556
\\nE-mail: info@dvi.gov.lv
\\nWebSite: https://www.dvi.gov.lv

\\n

Art 29 WP Alternate Member: Ms. Aiga BALODE

\\n

Lithuania

\\n

State Data Protection
\\nŽygimantų str. 11-6a 011042 Vilnius
\\nTel. + 370 5 279 14 45
\\nFax +370 5 261 94 94
\\nE-mail: ada@ada.lt
\\nWebSite: https://www.ada.lt

\\n

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data\\nProtection Inspectorate
\\nArt 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of\\nComplaints Investigation and International Cooperation Division

\\n

Luxembourg

\\n

Commission Nationale pour la Protection des Données
\\n1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
\\nFax +352 2610 60 29
\\nE-mail: info@cnpd.lu
\\nWebSite: https://www.cnpd.lu

\\n

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour\\nla Protection des Données
\\nArt 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

\\n

Malta

\\n

Office of the Data Protection Commissioner
\\nData Protection Commissioner: Mr. Joseph Ebejer
\\n2, Airways House
\\nHigh Street, Sliema SLM 1549 Tel. +356 2328 7100
\\nFax +356 2328 7198
\\nE-mail: commissioner.dataprotection@gov.mt
\\nWebSite: https://idpc.org.mt

\\n

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection\\nCommissioner
\\nArt 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme\\nImplementation

\\n

Netherlands

\\n

Autoriteit Persoonsgegevens
\\nPrins Clauslaan 60
\\nP.O. Box 93374
\\n2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
\\nFax +31 70 888 8501
\\nE-mail: info@autoriteitpersoonsgegevens.nl
\\nWebSite: https://autoriteitpersoonsgegevens.nl/nl

\\n

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

\\n

Poland

\\n

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
\\nul. Stawki 2
\\n00-193 Warsaw
\\nTel. +48 22 53 10 440
\\nFax +48 22 53 10 441
\\nE-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
\\nWebSite: https://www.giodo.gov.pl

\\n

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection\\nof Personal Data

\\n

Portugal

\\n

Comissão Nacional de Protecção de Dados - CNPD
\\nR. de São. Bento, 148-3° 1200-821 Lisboa
\\nTel. +351 21 392 84 00
\\nFax +351 21 397 68 32
\\nE-mail: geral@cnpd.pt
\\nWebSite: https://www.cnpd.pt

\\n

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção\\nde Dados
\\nArt 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

\\n

Romania

\\n

The National Supervisory Authority for Personal Data Processing President: Mrs.\\nAncuţa Gianina Opre
\\nB-dul Magheru 28-30
\\nSector 1, BUCUREŞTI
\\nTel. +40 21 252 5599
\\nFax +40 21 252 5757
\\nE-mail: anspdcp@dataprotection.ro
\\nWebSite: https://www.dataprotection.ro

\\n

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory\\nAuthority for Personal Data Processing
\\nArt 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and\\nCommunication Department

\\n

Slovakia

\\n

Office for Personal Data Protection of the Slovak Republic
\\nHraničná 12
\\n820 07 Bratislava 27
\\nTel.: + 421 2 32 31 32 14
\\nFax: + 421 2 32 31 32 34
\\nE-mail: statny.dozor@pdp.gov.sk
\\nWebSite: https://dataprotection.gov.sk

\\n

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data\\nProtection of the Slovak Republic
\\nArt 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

\\n

Slovenia

\\n

Information Commissioner
\\nMs. Mojca Prelesnik Zaloška 59
\\n1000 Ljubljana
\\nTel. +386 1 230 9730
\\nFax +386 1 230 9778
\\nE-mail: gp.ip@ip-rs.si
\\nWebSite: https://www.ip-rs.si

\\n

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic\\nof Slovenia

\\n

Spain

\\n

Agencia de Protección de Datos
\\nC/Jorge Juan, 6
\\n28001 Madrid
\\nTel. +34 91399 6200
\\nFax +34 91455 5699
\\nE-mail: internacional@agpd.es
\\nWebSite: https://www.agpd.es

\\n

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data\\nProtection Agency
\\nArt 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

\\n

Sweden

\\n

Datainspektionen
\\nDrottninggatan 29 5th Floor
\\nBox 8114
\\n20 Stockholm
\\nTel. +46 8 657 6100
\\nFax +46 8 652 8652
\\nE-mail: datainspektionen@datainspektionen.se
\\nWebSite: https://www.datainspektionen.se

\\n

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data\\nInspection Board
\\nArt 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

\\n

United Kingdom

\\n

The Information Commissioner’s Office
\\nWater Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
\\nE-mail: international.team@ico.org.uk
\\nWebSite: https://ico.org.uk

\\n

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
\\nArt 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

\\n

EUROPEAN FREE TRADE AREA (EFTA)

\\n

Iceland

\\n

Icelandic Data Protection Agency
\\nRauðarárstíg 10
\\nReykjavík
\\nTel. +354 510 9600; Fax +354 510 9606
\\nE-mail: postur@personuvernd.is
\\nWebSite: https://www.personuvernd.is

\\n

Liechtenstein

\\n

Data Protection Office
\\nKirchstrasse 8, P.O. Box 684
\\n9490 Vaduz
\\nPrincipality of Liechtenstein Tel. +423 236 6090
\\nE-mail: info.dss@llv.li
\\nWebSite: https://www.datenschutzstelle.li

\\n

Norway

\\n

Datatilsynet
\\nData Protection Authority: Mr. Bjørn Erik THORN
\\nThe Data Inspectorate
\\nP.O. Box 8177 Dep 0034 Oslo
\\nTel. +47 22 39 69 00; Fax +47 22 42 23 50
\\nE-mail: postkasse@datatilsynet.no
\\nWebSite: https://www.datatilsynet.no

\\n

Switzerland

\\n

Data Protection and Information Commissioner of Switzerland
\\nEidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian\\nLobsiger
\\nFeldeggweg 1
\\n3003 Bern
\\nTel. +41 58 462 43 95; Fax +41 58 462 99 96
\\nE-mail: contact20@edoeb.admin.ch
\\nWebSite: https://www.edoeb.admin.ch

\\n

Footnotes

\\n
    \\n
  1. \\n

    https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

    \\n
  2. \\n
  3. \\n

    https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

    \\n
  4. \\n
\\n
\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Personal Data Protection Policy\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/personal-data-protection-policy.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [PERSONAL DATA PROTECTION POLICY]\\n - [Scope and Definitions]\\n - [Data Processing Principles]\\n - [Legal Grounds and Purposes ]\\n - [Access to Personal Data]\\n - [Third Parties]\\n - [International Transfers]\\n - [Rights of Data Subjects]\\n - [New Data Processing Activities]\\n - [Data Retention]\\n - [Security]\\n - [Data Breach Response Procedure]\\n - [ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY]\\n\\n[personal data protection policy]: #personal-data-protection-policy\\n[scope and definitions]: #scope-and-definitions\\n[data processing principles]: #data-processing-principles\\n[legal grounds and purposes]: #legal-grounds-and-purposes\\n[access to personal data]: #access-to-personal-data\\n[third parties]: #third-parties\\n[international transfers]: #international-transfers\\n[rights of data subjects]: #rights-of-data-subjects\\n[new data processing activities]: #new-data-processing-activities\\n[data retention]: #data-retention\\n[security]: #security\\n[data breach response procedure]: #data-breach-response-procedure\\n[annex 1 to the personal data protection policy]:\\n\\t#annex-1-to-the-personal-data-protection-policy\\n\\n# PERSONAL DATA PROTECTION POLICY\\n\\nEffective date: 05.25.2018 / May 25th 2018\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\nWe at PlayForm ltd. are committed to processing personal data securely and\\nrespecting privacy of the concerned individuals.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Version No. and date of the last update:

v. 1.0.

\\n

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.
\\n\\n## Scope and Definitions\\n\\n1. **Scope.** This Personal Data Protection\\n Policy (the “**Policy**”) describes PlayForm ltd. internal rules for\\n personal data processing and protection. The Policy applies to PlayForm\\n ltd., including PlayForm ltd. employees and contractors (“**we**”, “**us**”,\\n “**our**”, “**PlayForm**”). The management of each entity is ultimately\\n responsible for the implementation of this policy, as well as to ensure, at\\n entity level, there are adequate and effective procedures in place for its\\n implementation and ongoing monitoring of its adherence. For the purposes of\\n this Policy, employees and contractors are jointly referred to as the\\n “**employees**”.\\n\\n2. **Privacy Manager.** Privacy Manager is an\\n employee of PlayForm responsible for personal data protection compliance\\n within PlayForm (the “**Privacy Manager**”). The Privacy Manager is in\\n charge of performing the obligations imposed by this Policy and supervising\\n other employees, who subject to this Policy, regarding their adherence to\\n this Policy. The Privacy Manager must be involved in all projects at an\\n early stage in order to take personal data protection aspects into account\\n as early as the planning phase.\\\\\\n The designated Privacy Manager at PlayForm ltd. is Nikola Hristov\\n .\\n\\n3. **Definitions.**\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

\\n

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.
\\n\\n## Data Processing Principles\\n\\n1. PlayForm’s processing activities must be in line with the principles\\n specified in this Section. The Privacy Manager must make sure that\\n PlayForm’s compliance documentation, as well as data processing activities,\\n are compliant with the data protection principles.\\n\\n2. We must process the Personal Data in accordance with the following\\n principles:\\n\\n 1. Lawfully, fairly and in a transparent manner (**lawfulness, fairness and\\n transparency**). We shall always have a legal ground for the processing\\n (described in Section 3 of this Policy), collect the amount of data\\n adequate to the purpose and legal grounds, and we make sure the Data\\n Subjects are aware of the processing;\\n\\n 2. Collected for specified, explicit and legitimate purposes and not\\n further processed in a manner that is incompatible with those purposes\\n (**purpose limitation**). We must not process the Personal Data for the\\n purposes not specified in our compliance documentation without obtaining\\n specific approval of the Privacy Manager;\\n\\n 3. Adequate, relevant and limited to what is necessary for the purposes for\\n which they are processed (**data minimization**). We always make sure\\n the data we collect is not excessive and limited by the strict\\n necessity;\\n\\n 4. Accurate and, where necessary, kept up to date (**accuracy**). We\\n endeavor to delete inaccurate or false data about Data Subjects and make\\n sure we update the data. Data Subjects can ask us for a correction of\\n the Personal Data;\\n\\n 5. Kept in a form which permits identification of Data Subjects for no\\n longer than is necessary for the purposes for which the Personal Data\\n are processed (**storage period limitation**). The storage periods must\\n be limited as prescribed by Data Protection Laws and this Policy; and\\n\\n 6. Process in a manner that ensures appropriate security of the Personal\\n Data, including protection against unauthorized or unlawful processing\\n and accidental loss, destruction or damage, using appropriate technical\\n or organizational measures (**confidentiality, integrity, and\\n availability**).\\n\\n3. **Accountability.**\\n\\n 1. We shall be able to demonstrate our compliance with Data Protection Laws\\n (**accountability principle**). In particular, we must ensure and\\n document all relevant procedures, efforts, internal and external\\n consultations on personal data protection including:\\n\\n - the fact of appointing a person responsible for PlayForm’s data\\n protection compliance;\\n\\n - where necessary, a record of a Data Processing Impact Assessment;\\n\\n - developed and implemented notices, policies, and procedures, such as\\n Privacy Notice, this policy or Data Breach response procedure;\\n\\n - the fact of staff training on compliance with Data Protection laws;\\n and\\n\\n - assessment, implementation, and testing organizational and technical\\n data protection measures.\\n\\n 2. The Privacy Manager must maintain PlayForm’s Records of processing\\n activities, which is an accountability document that describes personal\\n data processing activities of PlayForm, prepared in accordance with Art.\\n 30 of the GDPR (the “**Records of processing activities**”). The Records\\n of processing activities must maintain, at least, the following\\n information about each processing activity:\\n\\n - contact details of PlayForm, the EU Representative, and, where\\n applicable, of the Data Protection Officer;\\n\\n - name of the activity, its purposes and legal basis along with, where\\n applicable, the legitimate interests of PlayForm;\\n\\n - data subjects and personal data categories concerned;\\n\\n - data retention periods;\\n\\n - general description of applicable security measures;\\n\\n - recipients, including joint controllers, processors, and contractors\\n involved, as well as the fact of the international data transfer\\n with the safeguards applied to the transfer;\\n\\n - where applicable, a reference to the Data Processing Impact\\n Assessment;\\n\\n - where applicable, a reference to the record of the data breach\\n occurred involving the personal data;\\n\\n - if PlayForm acts as a data processor, the information to be provided\\n includes the names and contact details of controllers, name and\\n contact details of controller's representative (if applicable),\\n categories of processing (activities), names of third countries or\\n international organizations that personal data are transferred to\\n (if applicable), safeguards for exceptional transfers of personal\\n data to third countries or international organizations (if\\n applicable), and general description of technical and organizational\\n security measures.\\n\\n## Legal Grounds and Purposes\\n\\n1. **Legal grounds.**\\n\\n 1. Each processing activity must have one of the lawful grounds specified\\n in this Section to process the Personal Data. If we do not have any of\\n the described, we cannot collect or further process the Personal Data.\\n\\n 2. If PlayForm is intended to use personal data for other purposes than\\n those specified in the Records of processing activities, the Privacy\\n Manager must evaluate, determine, and, if necessary, collect/record the\\n appropriate legal basis for it.\\n\\n 3. **Performance of the contract**. Where PlayForm has a contract with the\\n Data Subject, e.g., website’s Terms of Use or the employment contract,\\n and the contract requires the provision of personal data from the Data\\n Subject, the applicable legal ground will be the performance of the\\n contract.\\n\\n 4. **Consent**. To process the personal data based on the consent, we must\\n obtain the consent before the Processing and keep the evidence of the\\n consent with the records of Data Subject’s Personal Data. The Privacy\\n Manager must make sure that the consent collected from Data Subjects\\n meet the requirements of Data Protection Laws and this Policy. In\\n particular, the Privacy Manager must make sure that:\\n\\n - the Data Subject must be free to give or refuse to give consent.\\n\\n - the consent is in the form of an active indication from the Data\\n Subject, i.e., the consent checkbox must not be pre-ticked for the\\n user.\\n\\n - the request for the consent clearly articulates the purposes of the\\n processing, and other information specified in Subsection 6.2 is\\n available to the Data Subject.\\n\\n - the Data Subject must be free to give one’s consent or to revoke it.\\n\\n 5. **Legitimate interests**. We have the right to use personal data in our\\n ‘legitimate interests’. The interests can include the purposes that are\\n justified by the nature of our business activities, such as the\\n marketing analysis of personal data. For PlayForm to use legitimate\\n interests as a legal ground for the processing, the Privacy Manager must\\n make sure that:\\n\\n - the legitimate interest in the processing is clearly defined and\\n recorded in the Records of processing activities;\\n\\n - any envisaged risks to Data Subject rights and interests are\\n spotted. The examples of the risks can be found in Subsection 7.2.;\\n\\n - the Data Subjects have reasonable expectations about the processing,\\n and additional protective measures to address the risks are taken;\\n\\n - subject to the conditions of Subsection 6.7 (Right to object against\\n the processing), the Data Subject is provided with the opportunity\\n to opt-out from the processing for the described legitimate\\n interests.\\\\\\n If at least one of the above conditions is not met by PlayForm, the\\n Privacy Manager must choose and propose a different legal ground for\\n the processing, such as consent.\\n\\n 6. **Legal Compliance and Public Interest**. Besides the grounds specified\\n afore, we might be requested by the laws of the European Union or laws\\n of the EU Member State to process Personal Data of our Users. For\\n example, we can be required to collect, analyze, and monitor the\\n information of Users to comply with financial or labor laws.\\\\\\n Whenever we have such an obligation, we must make sure that:\\n\\n - we process personal data strictly in accordance with relevant legal\\n requirements;\\n\\n - we do not use or store the collected Personal Data for other\\n purposes than legal compliance; and\\n\\n - the Data Subjects are properly and timely informed about our\\n obligations, scope, and conditions of personal data processing.\\n\\nImportant: Where PlayForm has the law requirements of another country to process\\npersonal data, the Privacy Manager must propose using another legal ground for\\nthe processing under Data Protection Laws, such as legitimate interests or\\nconsent.\\n\\n## Access to Personal Data\\n\\n1. **Access to Personal Data.**\\n\\n 1. The employees must have access to the personal data on a “need-to-know”\\n basis. The data can be accessed only if it is strictly necessary to\\n perform one of the activities specified in the Records of processing\\n activities. The employees and contractors shall have access to the\\n Personal Data only if they have the necessary credentials for it.\\n\\n 2. Heads of the departments within PlayForm are responsible for their\\n employees’ access and processing of personal data. The heads must\\n maintain the list of employees that are entitled to access and process\\n personal data. The Privacy Manager shall have the right to review the\\n list and, where necessary, request the amendments to meet the\\n requirements of this Policy.\\n\\n 3. Heads of the departments within PlayForm must ensure that the employees\\n under their supervision are aware of the Data Protection Laws and comply\\n with the rules set in this Policy. To make sure our employees are able\\n to comply with the data protection requirements, we must provide them\\n with adequate data protection training.\\n\\n 4. All employees accessing personal data shall keep strict confidentiality\\n regarding the data they access. The employees that access personal data\\n must use only those means (software, premises, etc.) for the processing\\n that were prescribed by PlayForm. The data must not be disclosed or\\n otherwise made available out of the management instructions.\\n\\n 5. The employees within their competence must assist PlayForm’s\\n representatives, including the Privacy Manager, in any efforts regarding\\n compliance with Data Protection Laws and/or this Policy.\\n\\n 6. When an employee detects or believes there is suspicious activity, data\\n breach, non-compliance with Data Protection Laws and/or this Policy, or\\n a DSR was not routed to the competent department within PlayForm, the\\n employee must report such activity to the Privacy Manager.\\n\\n 7. Employees that are unsure about whether they can legitimately process or\\n disclose Personal Data must seek advice from the Privacy Manager before\\n taking any action.\\n\\n 8. Any occasional access to personal data for activities not specified in\\n the Records of processing activities is prohibited. If there is a strict\\n necessity for immediate access, the Privacy Manager must approve the\\n access first.\\n\\n## Third Parties\\n\\n1. Before sharing personal data with any person outside of PlayForm, the\\n Privacy Manager must ensure that this Third Party has an adequate data\\n protection level and provide sufficient data protection guarantees in\\n accordance with Data Protection Laws, including, but not limited to the\\n processorship requirements (Art. 28 of the GDPR) and international transfers\\n compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager\\n must make sure that PlayForm enters into the appropriate data protection\\n contract with the third party.\\n\\n2. An employee can share personal data with third parties only if and to the\\n extent that was directly prescribed by the manager and specified in the\\n Records of processing activities.\\n\\n3. If we are required to delete, change, or stop the processing of the Personal\\n Data, we must ensure that the Third Parties, with whom we shared the\\n Personal Data, will fulfill these obligations accordingly.\\n\\n4. Whenever PlayForm is engaged as a data processor on behalf of another\\n entity, the Privacy Manager must make sure PlayForm complies with the\\n processorship obligation. In particular, the appropriate data processing\\n agreement in accordance with the Data Protection Laws must be in place. The\\n Privacy Manager must supervise the compliance with data processing\\n instructions from the controller, including regarding the scope of\\n processing activities, involvement of sub-processors, international\\n transfers, storage, and further disposal of processed personal data. The\\n personal data processed under the processor role must not be processed for\\n any other purposes than specified in the relevant instructions, agreement or\\n other legal act regulating the relationships with the controller.\\n\\n## International Transfers\\n\\n1. If we have the employees, contractors, corporate affiliates, or Data\\n Processors outside of the EEA, and we transfer Personal Data to them for the\\n processing, the Privacy Manager must make sure PlayForm takes all necessary\\n and appropriate safeguards in accordance with Data Protection Laws.\\n\\n2. The Privacy Manager must assess the safeguards available and propose to the\\n PlayForm’s management the appropriate safeguard for each international\\n transfer. The following regimes apply to the transfers of Personal Data\\n outside of the EU:\\n\\n - where the European Commission decides that the country has an adequate\\n level of personal data protection, the transfer does not require taking\\n additional safeguards. The full list of adequate jurisdictions can be\\n found on the relevant page of the European Commission’s website[^1].\\n\\n - to transfer Personal Data to our contractors or partners (Data\\n Processors or Controllers) in other third countries, we must conclude\\n Standard Contractual Clauses with that party. The draft version along\\n with the guidance can be found on the relevant page of the European\\n Commission’s website[^2];\\n\\n - if we have a corporate affiliate or an entity in other countries, we may\\n choose to adopt Binding Corporate Rules in accordance with Article 47 of\\n the GDPR or an approved code of conduct pursuant to Article 40 of the\\n GDPR;\\n\\n - we also can transfer Personal Data to entities that have an approved\\n certification in accordance with Article 42 of the GDPR, which certifies\\n an appropriate level of company’s data protection.\\n\\n[^1]:\\n https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;\\n\\n[^2]:\\n https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;\\n\\n3. As a part of the information obligations, PlayForm must inform the Data\\n Subjects that their Personal Data is being transferred to other countries,\\n as well as provide them with the information about the safeguards used for\\n the transfer. The information obligation is to be performed in accordance\\n with Subsection 6.2.\\n\\n4. In the exceptional cases (the “**Derogation**”), where we cannot apply the\\n safeguards mentioned afore and we need to transfer Personal Data, we must\\n take an explicit consent (active statement) from the Data Subject or it must\\n be strictly necessary for the performance of the contract between us and the\\n Data Subject, or other derogation conditions apply in accordance with the\\n Data Protection Laws. The Privacy Manager must pre-approve any Derogation\\n transfers and document the approved Derogations, as well as the rationale\\n for them.\\n\\n## Rights of Data Subjects\\n\\n1. **Our Responsibilities.**\\n\\n 1. Privacy Manager is ultimately responsible for handing all DSR received\\n by PlayForm. In the case of receiving any outstanding or unusual DSR,\\n the employee must seek advice from the Privacy Manager before taking any\\n action.\\n\\n 2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm\\n Users on a daily basis. The Human Resources department is responsible\\n for handling the DSR from PlayForm employees.\\n\\n 3. All DSRs from the Users must be addressed at and answered from the\\n following e-mail address: DSR@PlayForm.LTD. DSR from the employees can\\n be addressed directly to the HR manager or at DSR@PlayForm.LTD.\\n\\n 4. The responsible employee must answer to the DSR within one (1) month\\n from receiving the request. If complying with the DSR takes more than\\n one month in time, the responsible employee must seek advice from the\\n Privacy Manager and, where necessary, inform the Data Subject about the\\n prolongation of the response term for up to two (2) additional months.\\n\\n 5. The responsible employee must analyze the received DSR for the following\\n criteria:\\n\\n - **Data Subject identification**. Before considering the DSR content,\\n the responsible employee must make sure the Data Subject is the same\\n person he/she claims to be. For this purpose, the connection between\\n the personal data records and the data subject must be established.\\n\\n - **Personal data**. The responsible employee must check whether\\n PlayForm has access to the personal data requested. If PlayForm does\\n not have the personal data under the control, the responsible\\n employee must inform the Data Subject, and, if possible, instruct on\\n the further steps on how to access the data in question;\\n\\n - **Content of the request**. Depending on the content of the DSR, the\\n responsible employee must define the type of the request and check\\n whether it meets the conditions prescribed by this Policy and Data\\n Protection Laws. The types of requests and the respective conditions\\n for each of them can be consulted in Subsections 6.3-6.9. If the\\n request does not meet the described criteria, the responsible\\n employee must refuse to comply with the DSR and inform the Data\\n Subject about the reasons for refusing;\\n\\n - **Free of charge**. Generally, all requests of Data Subjects and\\n exercises of their rights are free of charge. If the responsible\\n employee finds that the Data Subject exercises the rights in an\\n excessive or unfound way (e.g., intended to harm or interrupt\\n PlayForm’s business activities), the employee must seek the advice\\n from the Privacy Manager, and, upon receiving of the latter, may\\n either charge the Data Subject a reasonable fee or refuse to comply\\n with the request;\\n\\n - **Documenting**. Whenever PlayForm receives the DSR, the Privacy\\n Manager must make sure that the data and time, Data Subject, type of\\n the request and the decision made regarding it are well documented.\\n In the case of refusing to comply with the request, the reasons for\\n refusing must be documented as well;\\n\\n - **Recipients**. When addressing the DSR, the Privacy Manager must\\n make sure that all concerned recipients were informed the necessary\\n actions were taken.\\n\\n2. **The right to be informed.**\\n\\n 1. PlayForm must notify each Data Subject about the collection and further\\n processing of the Personal Data.\\n\\n 2. The information to be provided includes: the name and contact details of\\n PlayForm; generic purposes of and the lawful basis for the data\\n collection and further processing; categories of Personal Data\\n collected; recipients/categories of recipients; retention periods;\\n information about data subject rights, including the right to complain\\n to the competent Supervisory Authority; the consequences of the cases\\n where the data is necessary for the contract performance and the Data\\n Subject does not provide the required data; details of the safeguards\\n where personal data is transferred outside the EEA; and any third-party\\n source of the personal data, without specification for the particular\\n case (except if we receive the direct request from the Data Subject).\\n\\n 3. The Users must be informed by the Privacy Policy accessible at\\n PlayForm’s website and provided during the user registration. The\\n employees and contractors must be informed by a standalone employee\\n privacy statement, which explains the details described in p. 6.2.2 in a\\n case-based manner, describing the particular purposes and activities.\\n\\n 4. PlayForm must inform Data Subjects about data processing, including any\\n new processing activity introduced at PlayForm within the following\\n term:\\n\\n - if personal data is collected from the data subject directly, the\\n data subject must be informed at the time we collect Personal Data\\n from the Data Subjects by showing the Data Subject our privacy\\n statement;\\n\\n - if the personal data is collected from other sources: (a) within one\\n month from collecting it; (b) if the personal data are to be used\\n for communication with the data subject, at the latest at the time\\n of the first communication to that data subject; or (c) if a\\n disclosure to another recipient is envisaged, at the latest when the\\n personal data are first disclosed.\\n\\n - upon the request of the Data Subject; and\\n\\n - within one (1) month after any change of our personal data\\n practices, change of the controller of Personal Data or after\\n significant changes in our privacy statements.\\n\\n3. **The right to access the information.**\\n\\n 1. The Data Subject must be provided only with those personal data records\\n specified in the request. If the Data Subject requests access to all\\n personal data concerning her or him, the employee must seek advice from\\n the Privacy Manager first, to make sure all personal data of the Data\\n Subject is mapped and provided.\\n\\n 2. A Data Subject has the right to:\\n\\n - learn if we process the Data Subject’s Personal Data;\\n\\n - obtain disclosure regarding aspects of the processing, including\\n detailed and case-specific information on purposes, categories of\\n Personal Data, recipients/categories of recipients, retention\\n periods, information about one’s rights, details of the relevant\\n safeguards where personal data is transferred outside the EEA, and\\n any third-party source of the personal data; and\\n\\n - obtain a copy of the Personal Data undergoing processing upon the\\n request.\\n\\n4. **The right to verify the Data Subject’s information\\n and seek its rectification.** The information we collect can\\n be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of\\n birth, info on debts, economic activities). If we reveal that the Personal\\n Data is inaccurate or the Data Subject requests us to do so, we must ensure\\n that we correct all mistakes and update the relevant information.\\n\\n5. **The right to restrict processing.**\\n\\n 1. The restriction of processing allows Data Subjects to temporarily stop\\n the use of their information to prevent the possible harm caused by such\\n use.\\n\\n 2. This right applies when the Data Subject:\\n\\n - contests the accuracy of the Personal Data;\\n\\n - believes that we process the Personal Data unlawfully; and\\n\\n - objects against the processing and wants us not to process Personal\\n Data while we are considering the request.\\n\\n 3. In the case of receiving the restriction request, we must not process\\n Personal Data in question for any other purpose than storing it or for\\n legal compliance purposes until the circumstances of restriction cease\\n to exist.\\n\\n6. **The right to withdraw the consent.** For\\n the activities that require consent, the Data Subject can revoke their\\n consent at any time. If the Data Subject revokes the consent, we must record\\n the changes and must not process the Personal Data for consent-based\\n purposes. The withdrawal of consent does not affect the lawfulness of the\\n processing done before the withdrawal.\\n\\n7. **The right to object against the\\n processing.**\\n\\n 1. If we process the information in our legitimate interests, e.g., for\\n direct marketing emails or for our marketing research purposes, the Data\\n Subject can object against the processing.\\n\\n 2. In the case of receiving the objection request case, we must consider\\n Data Subject’s request and, where we do not have compelling interests,\\n stop the processing for the specified purposes. If the personal data is\\n still to be processed for other purposes, the Privacy Manager must make\\n sure that the database has a record that the data cannot be further\\n processed for the objected activities.\\n\\n 3. The objection request can be refused only if the personal data in\\n question is used for scientific/historical research or statistical\\n purposes and was appropriately protected, i.e., by anonymization or\\n pseudonymization techniques.\\n\\n8. **Right to erasure/to be forgotten.**\\n\\n 1. The Data Subjects have the right to request us to erase their Personal\\n Data if one of the following conditions are met:\\n\\n - Personal Data is no longer necessary for the purposes of collection.\\n For example, a user has provided personal data for a one-time\\n activity, such as data validation or participation in a contest, and\\n the purpose is already fulfilled;\\n\\n - the Data Subject revokes one’s consent or objects to the processing\\n (where applicable) and there is no other legal ground for the\\n processing; or\\n\\n - we process the Personal Data unlawfully or its erasure is required\\n by the applicable legislation of the European Union or one of the\\n Member countries of the European Union.\\n\\n 2. Conditions, under which we have the right to refuse the erasure:\\n\\n - Personal Data is processed for scientific/historical research or\\n statistical purposes and is appropriately protected, i.e.,\\n pseudonymized or anonymized;\\n\\n - Personal Data is still necessary for legal compliance (e.g.,\\n financial or labor laws compliance).\\n\\n 3. Only those personal data records must be deleted that were specified in\\n the request. If the Data Subject requests the deletion of all personal\\n data concerning her or him, the employee must seek advice from the\\n Privacy Manager first, to make sure all the data about the Data Subject\\n is mapped and can be deleted.\\n\\n 4. If the User still has an account with us and requests the erasure of\\n information necessary for maintaining the account, we must inform the\\n User that the erasure will affect user experience or can lead to the\\n closure of the account.\\n\\n9. **Data portability.**\\n\\n 1. Data Subjects can ask us to transfer all the Personal Data and/or its\\n part in a machine-readable format to a third party. This right applies\\n in two cases:\\n\\n - personal data was collected for the purpose of provision of our\\n services (performance of the contract); or\\n\\n - collected based on consent.\\n\\n 2. To determine whether one of the p.6.9.1 conditions are met, the employee\\n must seek advice from the Privacy Manager and check the applicable legal\\n basis in the Records of processing activities. If the answer is\\n negative, the request can be refused by PlayForm, and the Privacy\\n Manager must decide whether to comply with the request on a voluntary\\n basis.\\n\\n 3. To comply with the request, the responsible employee must consolidate\\n requested Personal Data and send the data in the format we are usually\\n working with to the requested organization. The Data Subject must\\n provide the necessary contact details of the organization.\\n\\n## New Data Processing Activities\\n\\n1. **Notification to Privacy Manager.**\\n\\n 1. Before introducing any new activity that involves the processing of\\n personal data, an employee responsible for its implementation must\\n inform the Privacy Manager.\\n\\n 2. Upon receiving information about a new activity, Privacy Manager must:\\n\\n - determine whether the data processing impact assessment (DPIA)\\n and/or the consultation with the Supervisory Authority is necessary.\\n If the answer is positive, the Privacy Manager must make sure the\\n DPIA is conducted and/or the Supervisory Authority is consulted in\\n accordance with the requirements of this Section and Data Protection\\n Laws;\\n\\n - determine the legal basis for the processing and, where necessary,\\n take further action for its fixation;\\n\\n - make sure the processing activity is done in accordance with this\\n Policy, other PlayForm’s policies, as well as the Data Protection\\n Laws;\\n\\n - add the processing activity to the Records of processing activities;\\n\\n - amend the privacy information statements and, where necessary,\\n inform the concerned Data Subject accordingly.\\n\\n2. **Data Processing Impact Assessment.**\\n\\n 1. To make sure that our current or prospective processing activities do\\n not/will not violate the Data Subjects’ rights, PlayForm must, where\\n required by Data Protection Laws, conduct the Data Processing Impact\\n Assessment (DPIA), a risk-based assessment of the processing and search\\n for the measures to mitigate the risks. The Privacy Manager must make\\n sure the DPIA is conducted in accordance with this Section.\\n\\n 2. The Privacy Manager, where necessary, involving the competent employees\\n and/or external advisors, must conduct a DPIA if at least one of the\\n following conditions are met:\\n\\n - the processing involves the use of new technologies, such as the\\n Artificial Intelligence, use of connected and autonomous devices,\\n etc. that creates certain legal, economic or similar effects to the\\n Data Subject;\\n\\n - we systematically assess and evaluate personal aspects of the Data\\n Subjects based on automated profiling, assigning the personal\\n score/rate, and create legal or similar effects for the Data Subject\\n by this activity;\\n\\n - we process on a large-scale sensitive data, which includes Personal\\n Data relating to criminal convictions and offences, the data about\\n vulnerable data subjects, the personal data revealing racial or\\n ethnic origin, political opinions, religious or philosophical\\n beliefs, or trade union membership, and the processing of genetic\\n data, biometric data for the purpose of uniquely identifying a\\n natural person, data concerning health or data concerning a natural\\n person’s sex life or sexual orientation;\\n\\n - we collect or process Personal Data from a publicly accessible area\\n or public sources on a large scale, or combine or match two\\n different data sets; and\\n\\n - the Supervisory Authority in its public list requires conducting a\\n DPIA for a certain type of activity we are involved in. The list of\\n processing activities requiring conducting DPIA can be found on the\\n website of each Supervisory Authority.\\n\\n 3. The assessment shall contain at least the following details:\\n\\n - a systematic description of the processing operations and the\\n purposes of the processing, including, where applicable, the\\n legitimate interest pursued by us. The description must include the\\n envisaged data categories and data subjects concerned, the scale of\\n processing activities, such as its frequency, volume, envisaged\\n number of records, etc.; recipients of the data, retention periods\\n and, where applicable, international transfers;\\n\\n - an assessment of the necessity and proportionality of the processing\\n operations in relation to the purposes. The DPIA must explain\\n whether the activity is necessary for the purpose and whether the\\n purpose can be achieved by less intrusive methods;\\n\\n - an assessment of the risks to the rights and freedoms of data\\n subjects, including the rights of Data Subjects regarding their\\n Personal Data.\\n\\n - The examples of risks are the processing which could lead to\\n physical, material or non-material damage, in particular: where the\\n processing may give rise to discrimination, identity theft or fraud,\\n financial loss, damage to the reputation, loss of confidentiality of\\n personal data protected by professional secrecy, unauthorized\\n reversal of pseudonymization, or any other significant economic or\\n social disadvantage; where data subjects might be deprived of their\\n rights and freedoms or prevented from exercising control over their\\n personal data; where personal data are processed which reveal racial\\n or ethnic origin, political opinions, religion or philosophical\\n beliefs, trade union membership, and the processing of genetic data,\\n data concerning health or data concerning sex life or criminal\\n convictions and offences or related security measures; where\\n personal aspects are evaluated, in particular analyzing or\\n predicting aspects concerning performance at work, economic\\n situation, health, personal preferences or interests, reliability or\\n behavior, location or movements, in order to create or use personal\\n profiles; where personal data of vulnerable natural persons, in\\n particular of children, are processed; or where processing involves\\n a large amount of personal data and affects a large number of data\\n subjects; and\\n\\n - the measures to address the risks, including safeguards, security\\n measures, and mechanisms to ensure the protection of personal data\\n and to demonstrate compliance with this Regulation.\\n\\n 4. Where the DPIA did not provide how to effectively address the risks, the\\n Privacy Manager must initiate the consultation with the competent\\n Supervisory Authority to receive help with searching for the solution.\\n In this case, PlayForm must not conduct the activity before the\\n Supervisory Authority approves the processing activity in question.\\n\\n## Data Retention\\n\\n1. **General Rule.**\\n\\n 1. The Privacy Manager must make sure that PlayForm clearly defined the\\n data storage periods and/or criteria for determining the storage periods\\n for each processing activity it has. The periods for each processing\\n activity must be specified in the Records of processing activities.\\n\\n 2. Each department within PlayForm must comply with the data storage\\n periods in accordance with the retention schedule provided in Records of\\n processing activities. The Privacy Manager must supervise each\\n department and make sure they comply with this requirement.\\n\\n 3. After the storage period ends, the personal data must be removed from\\n the disposal of the department responsible for the processing or, in\\n cases where the data is not needed for any other purposes, destroyed\\n completely, including from back-up copies and other media.\\n\\n 4. Whenever the storage period for a processing activity has ended, but the\\n personal data processed is necessary for other processing purposes, the\\n department manager must make sure that the personal data is not used for\\n the ceased processing activity, and the responsible employees do not\\n have the access to it unless required for any other activity.\\n\\n2. **Exemptions.** The rules specified in\\n Subsection 8.1 have the following exceptions:\\n\\n 1. **Business needs**. Data retention periods can be prolonged, but no\\n longer than 60 days, in the case that the data deletion will interrupt\\n or harm our ongoing business. The Privacy Manager must approve any\\n unforeseen prolongation;\\n\\n 2. **Technical impossibility**. Some information is technically impossible\\n or disproportionally difficult to delete. For example, deletion of the\\n information may lead to breach of system integrity, or it is impossible\\n to delete the information from the backup copies. In such a case, the\\n information can be further stored, subject to the approval by the\\n Privacy Manager and making respective amendments to the Records of\\n processing activities; and\\n\\n 3. **Anonymization**. The Personal Data can be further processed for any\\n purposes (e.g., marketing) if we fully anonymize these data after the\\n retention period is expired. This means that all personal identifiers\\n and connections to them will be deleted from the data. To consider\\n Personal Data anonymous, it must be impossible to reidentify the Data\\n Subject from the data set.\\n\\n## Security\\n\\n1. Each department within PlayForm shall take all appropriate technical and\\n organizational measures that protect against unauthorized, unlawful, and/or\\n accidental access, destruction, modification, blocking, copying,\\n distribution, as well as from other illegal actions of unauthorized persons\\n regarding the personal data under their responsibility.\\n\\n2. The employee responsible for the supervision after the security of personal\\n data within PlayForm shall be DSR Officer. This person implements the\\n guidelines and other specifications on data protection and information\\n security in his area of responsibility. He/she advises PlayForm management\\n on the planning and implementation of information security in PlayForm, and\\n must be involved in all projects at an early stage in order to take\\n security-related aspects into account as early as the planning phase.\\n\\n## Data Breach Response Procedure\\n\\n1. **Response Team.**\\n\\n 1. In case of revealing the Data Breach, CEO of PlayForm shall urgently\\n form the Data Breach Response Team (the “**Response Team**”), which will\\n handle the Data Breach, notify the appropriate persons, and mitigate its\\n risks.\\n\\n 2. The Response Team must be а multi-disciplinary group headed by CEO of\\n PlayForm and comprised of the Privacy Manager, privacy laws specialist\\n (whether internal or external), and knowledgeable and skilled\\n information security specialists within PlayForm or outsourcing\\n professionals, if necessary. The team must ensure that all employees and\\n engaged contractors/processors adhere to this Policy and provide an\\n immediate, effective, and skillful response to any suspected/alleged or\\n actual Data Breach affecting PlayForm.\\n\\n 3. The potential members of the Response Team must be prepared to respond\\n to а Data Breach. The Response Team shall perform all the\\n responsibilities of PlayForm mentioned in this Policy. The duties of the\\n Response Team are:\\n\\n - to communicate the Data Breach to the competent Supervisory\\n Authority(-ies);\\n\\n - in case of high risk to the rights and freedoms of Data Subjects, to\\n communicate the Data Breach to the Data Subject;\\n\\n - if PlayForm obtain data from any third party as a processor, and a\\n Data Breach involves obtained data, to inform the third parties\\n about the Data Breach;\\n\\n - to communicate PlayForm’s contractors or any other third parties\\n that process the Personal Data involved in the Data Breach; and\\n\\n - to take all appropriate technical and organizational measures to\\n cease the Data Breach and mitigate its consequences;\\n\\n - to record the fact of the Data Breach in the Records of processing\\n activities and file an internal data breach report that describes\\n the event.\\n\\n 4. The Response Team shall perform its duties until all the necessary\\n measures required by this Policy are taken.\\n\\n2. **Notification to Supervisory Authority.**\\n\\n 1. PlayForm shall inform the Competent Supervisory Authority about the Data\\n Breach without undue delay and, where it is possible, not later than 72\\n hours after having become aware of the Data Breach.\\n\\n 2. The Competent Supervisory Authority shall be determined by the residence\\n of the Data Subjects, whose information was involved in the Data Breach.\\n If the Data Breach concerns the Personal Data of Data Subjects from more\\n than one country, PlayForm shall inform all Competent Supervisory\\n Authorities.\\n\\n 3. To address the notification to the authority, the Response Team should\\n use Annex 1 to this Policy. Annex 1 contains all the necessary contact\\n information of the EU supervisory authorities. If the Data Breach\\n concerns Data Subjects from other than the EU countries, the Response\\n Team shall ask a competent privacy specialist for advice.\\n\\n 4. The notification to the Competent Supervisory Authority shall contain,\\n at least, following information:\\n\\n - **the nature of the Data Breach** including where possible, the\\n categories and an approximate number of Data Subjects and Personal\\n Data records concerned;\\n\\n - the name and contact details of the **Response Team, Privacy Manager\\n or, if not applicable, of the CEO**;\\n\\n - the likely consequences of the Data Breach. Explain PlayForm’s point\\n of view on the purposes and possible further risks of the Data\\n Breach. E.g., the Personal Data may be stolen for the further\\n **sale, fraud activities or blackmailing the concerned Data\\n Subjects**; and\\n\\n - **the measures taken or proposed** to be taken by PlayForm to\\n address the Data Breach, including, where appropriate, measures to\\n mitigate its possible adverse effects.\\n\\n 5. To file a notification, the Response Team should use PlayForm’s Data\\n Breach Notification Form to the Supervisory Authority.\\n\\n3. **Notifications to Data Subjects.**\\n\\n 1. When the Data Breach is likely to result in a high risk to the rights\\n and freedoms of Data Subjects (e.g., stealing of funds, assets,\\n proprietary information), we must also communicate the Data Breach to\\n the concerned Data Subjects without undue delay. The Privacy Manager\\n must determine if there is a high risk based on the risk factors\\n specified in Subsection 7.2.3 of this Policy.\\n\\n 2. The notification shall contain the following information:\\n\\n - description of the Data Breach - what happened and what led to the\\n Data Breach, such as **a security breach, employee’s negligence,\\n error in the system work**. If the Response Team decided not to\\n disclose the causes of the Data Breach, then this clause must not be\\n mentioned;\\n\\n - the measures taken by PlayForm regarding the Data Breach, including\\n **security measures, internal investigations, and supervisory\\n authority notice**;\\n\\n - recommendations for the concerned Data Subjects how to mitigate\\n risks and possible consequences, such as **guidelines on how to\\n restore access to an account, preventing measures (change of a\\n password)**; and\\n\\n - the contact information of the Response Team or one of its members.\\n\\n 3. The notification to the Data Subjects should be carried out by the\\n **email letter** or, where it is impossible to use the email, by other\\n available means of communication.\\n\\n 4. **Exemptions**. We do not have to send the notification to the Data\\n Subjects if any of the following conditions are met:\\n\\n - PlayForm has implemented appropriate technical and organizational\\n protection measures, and those measures were applied to the Personal\\n Data affected by the Data Breach, in particular, those that leave\\n the Personal Data inaccessible to any person who is not authorized\\n to access it, such as encryption;\\n\\n - PlayForm has taken subsequent measures which ensure that the high\\n risk to the rights and freedoms of Data Subjects referred to in this\\n section is no longer likely to materialize; or\\n\\n - it would involve a disproportionate effort to communicate with every\\n concerned Data Subject. In such a case, there shall instead be a\\n public communication or similar measure whereby the Data Subjects\\n are informed in an equally effective manner.\\n\\nIn the case we apply one of the exemptions, we **must document** the\\ncircumstances, reason for not informing, and actions taken to meet one of the\\nexemptions.\\n\\n4. **Communication with Third Parties.**\\n\\n 1. In the case a Data Breach concerns the Personal Data shared with us or\\n processed by us on behalf of a Third Party, we must also notify the\\n Third Party about it within 24 hours. If we process the Personal Data as\\n a Data Processor, the notification of the Third Party does not exempt us\\n from the duty to mitigate the Data Breach consequences, but we must not\\n inform the Competent Supervisory Authority and Data Subjects.\\n\\n 2. In case of receiving the notification about the Data Breach from the\\n Data Processor or other Third Parties that have access to the Personal\\n Data, CEO of PlayForm shall, in accordance with this Section:\\n\\n - form the Response Team;\\n\\n - request the Third Party to send the information mentioned in\\n Subsections 10.2-3 of this Policy;\\n\\n - where necessary, inform the Competent Supervisory Authority(-ies)\\n and Data Subjects; and\\n\\n - perform other steps of the Data Breach response procedure.\\n\\n**List of Persons Briefed on Personal Data Protection Policy**\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Full Name

Status

Date

Nikola Hristov Briefed05.25.2018
\\n\\n## ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY\\n\\n**European National Data Protection Authorities**\\n\\n**Austria**\\n\\nÖsterreichische Datenschutzbehörde\\\\\\nHohenstaufengasse 3\\\\\\n1010 Wien\\\\\\nTel. +43 1 531 15 202525\\\\\\nFax +43 1 531 15 202690\\\\\\nE-mail: dsb@dsb.gv.at\\\\\\nWebSite: https://www.dsb.gv.at\\n\\nArt 29 WP Member: Dr Andrea JELINEK, Director, Österreichische\\nDatenschutzbehörde\\n\\n**Belgium**\\n\\nCommission de la protection de la vie privée\\\\\\nCommissie voor de bescherming van de persoonlijke levenssfeer\\\\\\nRue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel\\\\\\nTel. +32 2 274 48 00\\\\\\nFax +32 2 274 48 35\\\\\\nE-mail: commission@privacycommission.be\\\\\\nWebSite: https://www.privacycommission.be\\n\\nArt 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy\\ncommission\\n\\n**Bulgaria**\\n\\nCommission for Personal Data Protection\\\\\\n2, Prof. Tsvetan Lazarov Blvd. Sofia 1592\\\\\\nTel. +359 2 915 3580\\\\\\nFax +359 2 915 3525\\\\\\nE-mail: kzld@cpdp.bg\\\\\\nWebSite: https://www.cpdp.bg\\n\\nArt 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for\\nPersonal Data Protection\\\\\\nArt 29 WP Alternate Member: Ms. Mariya MATEVA\\n\\n**Croatia**\\n\\nCroatian Personal Data Protection Agency\\\\\\nMartićeva 14\\\\\\n10000 Zagreb\\\\\\nTel. +385 1 4609 000\\\\\\nFax +385 1 4609 099\\\\\\nE-mail: azop@azop.hr or info@azop.hr\\\\\\nWebSite: https://www.azop.hr\\n\\nArt 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection\\nAgency\\n\\n**Cyprus**\\n\\nCommissioner for Personal Data Protection\\\\\\n1 Iasonos Street,\\\\\\n1082 Nicosia\\\\\\nP.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456\\\\\\nFax +357 22 304 565\\\\\\nE-mail: commissioner@dataprotection.gov.cy\\\\\\nWebSite: https://www.dataprotection.gov.cy\\n\\nArt 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU\\\\\\nArt 29 WP Alternate Member: Mr. Constantinos GEORGIADES\\n\\n**Czech Republic**\\n\\nThe Office for Personal Data Protection\\\\\\nUrad pro ochranu osobnich udaju Pplk. Sochora 27\\\\\\n170 00 Prague 7\\\\\\nTel. +420 234 665 111\\\\\\nFax +420 234 665 444\\\\\\nE-mail: posta@uoou.cz\\\\\\nWebSite: https://www.uoou.cz\\n\\nArt 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data\\nProtection\\\\\\nArt 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the\\nOffice\\n\\n**Denmark**\\n\\nDatatilsynet\\\\\\nBorgergade 28, 5\\\\\\n1300 Copenhagen K\\\\\\nTel. +45 33 1932 00\\\\\\nFax +45 33 19 32 18\\\\\\nE-mail: dt@datatilsynet.dk\\\\\\nWebSite: https://www.datatilsynet.dk\\n\\nArt 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection\\nAgency (Datatilsynet)\\\\\\nArt 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International\\nDivision at the Danish Data Protection Agency (Datatilsynet)\\n\\n**Estonia**\\n\\nEstonian Data Protection Inspectorate (Andmekaitse Inspektsioon)\\\\\\nVäike-Ameerika 19\\\\\\n10129 Tallinn\\\\\\nTel. +372 6274 135\\\\\\nFax +372 6274 137\\\\\\nE-mail: info@aki.ee\\\\\\nWebSite: https://www.aki.ee/en\\n\\nArt 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection\\nInspectorate\\\\\\nArt 29 WP Alternate Member: Ms. Maarja Kirss\\n\\n**Finland**\\n\\nOffice of the Data Protection Ombudsman\\\\\\nP.O. Box 315\\\\\\nFIN-00181 Helsinki Tel. +358 10 3666 700\\\\\\nFax +358 10 3666 735\\\\\\nE-mail: tietosuoja@om.fi\\\\\\nWebSite: https://www.tietosuoja.fi/en\\n\\nArt 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection\\nAuthority\\\\\\nArt 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department\\n\\n**France**\\n\\nCommission Nationale de l'Informatique et des Libertés - CNIL\\\\\\n8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02\\\\\\nTel. +33 1 53 73 22 22\\\\\\nFax +33 1 53 73 22 00\\\\\\nWebSite: https://www.cnil.fr\\n\\nArt 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL\\\\\\nArt 29 WP Alternate Member: Ms. Florence RAYNAL\\n\\n**Germany**\\n\\nDie Bundesbeauftragte für den Datenschutz und die Informationsfreiheit\\\\\\nHusarenstraße 30\\\\\\n53117 Bonn\\\\\\nTel. +49 228 997799 0; +49 228 81995 0\\\\\\nFax +49 228 997799 550; +49 228 81995 550\\\\\\nE-mail: poststelle@bfdi.bund.de\\\\\\nWebSite: https://www.bfdi.bund.de\\n\\nThe competence for complaints is split among different data protection\\nsupervisory authorities in Germany.\\n\\nCompetent authorities can be identified according to the list provided under\\n\\nhttps://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html\\n\\nArt 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of\\nInformation\\\\\\nArt 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the\\nfederal states\\n\\n**Greece**\\n\\nHellenic Data Protection Authority\\\\\\nKifisias Av. 1-3, PC 11523 Ampelokipi Athens\\\\\\nTel. +30 210 6475 600\\\\\\nFax +30 210 6475 628\\\\\\nE-mail: contact@dpa.gr\\\\\\nWebSite: https://www.dpa.gr\\n\\nArt 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA\\\\\\nArt 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director\\n\\n**Hungary**\\n\\nNational Authority for Data Protection and Freedom of Information\\\\\\nSzilágyi Erzsébet fasor 22/C H-1125 Budapest\\\\\\nTel. +36 1 3911 400\\\\\\nE-mail: peterfalvi.attila@naih.hu\\\\\\nWebSite: https://www.naih.hu\\n\\nArt 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for\\nData Protection and Freedom of Information\\\\\\nArt 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National\\nAuthority for Data Protection and Freedom of Information\\n\\n**Ireland**\\n\\nData Protection Commissioner\\\\\\nCanal House Station Road Portarlington Co. Laois\\\\\\nLo-Call: 1890 25 22 31\\\\\\nTel. +353 57 868 4800\\\\\\nFax +353 57 868 4757\\\\\\nE-mail: info@dataprotection.ie\\\\\\nWebSite: https://www.dataprotection.ie\\n\\nArt 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner\\\\\\nArt 29 WP Alternate Members: Mr. John O'DWYER, Deputy Commissioner; Mr. Dale\\nSUNDERLAND, Deputy Commissioner\\n\\n**Italy**\\n\\nGarante per la protezione dei dati personali\\\\\\nPiazza di Monte Citorio, 121 00186 Roma\\\\\\nTel. +39 06 69677 1\\\\\\nFax +39 06 69677 785\\\\\\nE-mail: garante@garanteprivacy.it\\\\\\nWebSite: https://www.garanteprivacy.it\\n\\nArt 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei\\ndati personali\\\\\\nArt 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per\\nla protezione dei dati personali\\n\\n**Latvia**\\n\\nData State Inspectorate Director: Ms. Daiga Avdejanova\\\\\\nBlaumana str. 11/13-15\\\\\\n1011 Riga\\\\\\nTel. +371 6722 3131\\\\\\nFax +371 6722 3556\\\\\\nE-mail: info@dvi.gov.lv\\\\\\nWebSite: https://www.dvi.gov.lv\\n\\nArt 29 WP Alternate Member: Ms. Aiga BALODE\\n\\n**Lithuania**\\n\\nState Data Protection\\\\\\nŽygimantų str. 11-6a 011042 Vilnius\\\\\\nTel. + 370 5 279 14 45\\\\\\nFax +370 5 261 94 94\\\\\\nE-mail: ada@ada.lt\\\\\\nWebSite: https://www.ada.lt\\n\\nArt 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data\\nProtection Inspectorate\\\\\\nArt 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of\\nComplaints Investigation and International Cooperation Division\\n\\n**Luxembourg**\\n\\nCommission Nationale pour la Protection des Données\\\\\\n1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1\\\\\\nFax +352 2610 60 29\\\\\\nE-mail: info@cnpd.lu\\\\\\nWebSite: https://www.cnpd.lu\\n\\nArt 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour\\nla Protection des Données\\\\\\nArt 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner\\n\\n**Malta**\\n\\nOffice of the Data Protection Commissioner\\\\\\nData Protection Commissioner: Mr. Joseph Ebejer\\\\\\n2, Airways House\\\\\\nHigh Street, Sliema SLM 1549 Tel. +356 2328 7100\\\\\\nFax +356 2328 7198\\\\\\nE-mail: commissioner.dataprotection@gov.mt\\\\\\nWebSite: https://idpc.org.mt\\n\\nArt 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection\\nCommissioner\\\\\\nArt 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme\\nImplementation\\n\\n**Netherlands**\\n\\nAutoriteit Persoonsgegevens\\\\\\nPrins Clauslaan 60\\\\\\nP.O. Box 93374\\\\\\n2509 AJ Den Haag/The Hague Tel. +31 70 888 8500\\\\\\nFax +31 70 888 8501\\\\\\nE-mail: info@autoriteitpersoonsgegevens.nl\\\\\\nWebSite: https://autoriteitpersoonsgegevens.nl/nl\\n\\nArt 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens\\n\\n**Poland**\\n\\nThe Bureau of the Inspector General for the Protection of Personal Data – GIODO\\\\\\nul. Stawki 2\\\\\\n00-193 Warsaw\\\\\\nTel. +48 22 53 10 440\\\\\\nFax +48 22 53 10 441\\\\\\nE-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl\\\\\\nWebSite: https://www.giodo.gov.pl\\n\\nArt 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection\\nof Personal Data\\n\\n**Portugal**\\n\\nComissão Nacional de Protecção de Dados - CNPD\\\\\\nR. de São. Bento, 148-3° 1200-821 Lisboa\\\\\\nTel. +351 21 392 84 00\\\\\\nFax +351 21 397 68 32\\\\\\nE-mail: geral@cnpd.pt\\\\\\nWebSite: https://www.cnpd.pt\\n\\nArt 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção\\nde Dados\\\\\\nArt 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA\\n\\n**Romania**\\n\\nThe National Supervisory Authority for Personal Data Processing President: Mrs.\\nAncuţa Gianina Opre\\\\\\nB-dul Magheru 28-30\\\\\\nSector 1, BUCUREŞTI\\\\\\nTel. +40 21 252 5599\\\\\\nFax +40 21 252 5757\\\\\\nE-mail: anspdcp@dataprotection.ro\\\\\\nWebSite: https://www.dataprotection.ro\\n\\nArt 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory\\nAuthority for Personal Data Processing\\\\\\nArt 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and\\nCommunication Department\\n\\n**Slovakia**\\n\\nOffice for Personal Data Protection of the Slovak Republic\\\\\\nHraničná 12\\\\\\n820 07 Bratislava 27\\\\\\nTel.: + 421 2 32 31 32 14\\\\\\nFax: + 421 2 32 31 32 34\\\\\\nE-mail: statny.dozor@pdp.gov.sk\\\\\\nWebSite: https://dataprotection.gov.sk\\n\\nArt 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data\\nProtection of the Slovak Republic\\\\\\nArt 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President\\n\\n**Slovenia**\\n\\nInformation Commissioner\\\\\\nMs. Mojca Prelesnik Zaloška 59\\\\\\n1000 Ljubljana\\\\\\nTel. +386 1 230 9730\\\\\\nFax +386 1 230 9778\\\\\\nE-mail: gp.ip@ip-rs.si\\\\\\nWebSite: https://www.ip-rs.si\\n\\nArt 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic\\nof Slovenia\\n\\n**Spain**\\n\\nAgencia de Protección de Datos\\\\\\nC/Jorge Juan, 6\\\\\\n28001 Madrid\\\\\\nTel. +34 91399 6200\\\\\\nFax +34 91455 5699\\\\\\nE-mail: internacional@agpd.es\\\\\\nWebSite: https://www.agpd.es\\n\\nArt 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data\\nProtection Agency\\\\\\nArt 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO\\n\\n**Sweden**\\n\\nDatainspektionen\\\\\\nDrottninggatan 29 5th Floor\\\\\\nBox 8114\\\\\\n20 Stockholm\\\\\\nTel. +46 8 657 6100\\\\\\nFax +46 8 652 8652\\\\\\nE-mail: datainspektionen@datainspektionen.se\\\\\\nWebSite: https://www.datainspektionen.se\\n\\nArt 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data\\nInspection Board\\\\\\nArt 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser\\n\\n**United Kingdom**\\n\\nThe Information Commissioner’s Office\\\\\\nWater Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745\\\\\\nE-mail: international.team@ico.org.uk\\\\\\nWebSite: https://ico.org.uk\\n\\nArt 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner\\\\\\nArt 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner\\n\\n**EUROPEAN FREE TRADE AREA (EFTA)**\\n\\n**Iceland**\\n\\nIcelandic Data Protection Agency\\\\\\nRauðarárstíg 10\\\\\\nReykjavík\\\\\\nTel. +354 510 9600; Fax +354 510 9606\\\\\\nE-mail: postur@personuvernd.is\\\\\\nWebSite: https://www.personuvernd.is\\n\\n**Liechtenstein**\\n\\nData Protection Office\\\\\\nKirchstrasse 8, P.O. Box 684\\\\\\n9490 Vaduz\\\\\\nPrincipality of Liechtenstein Tel. +423 236 6090\\\\\\nE-mail: info.dss@llv.li\\\\\\nWebSite: https://www.datenschutzstelle.li\\n\\n**Norway**\\n\\nDatatilsynet\\\\\\nData Protection Authority: Mr. Bjørn Erik THORN\\\\\\nThe Data Inspectorate\\\\\\nP.O. Box 8177 Dep 0034 Oslo\\\\\\nTel. +47 22 39 69 00; Fax +47 22 42 23 50\\\\\\nE-mail: postkasse@datatilsynet.no\\\\\\nWebSite: https://www.datatilsynet.no\\n\\n**Switzerland**\\n\\nData Protection and Information Commissioner of Switzerland\\\\\\nEidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian\\nLobsiger\\\\\\nFeldeggweg 1\\\\\\n3003 Bern\\\\\\nTel. +41 58 462 43 95; Fax +41 58 462 99 96\\\\\\nE-mail: contact20@edoeb.admin.ch\\\\\\nWebSite: https://www.edoeb.admin.ch\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"personal-data-protection-policy\",\"text\":\"PERSONAL DATA PROTECTION POLICY\"},{\"depth\":2,\"slug\":\"scope-and-definitions\",\"text\":\"Scope and Definitions\"},{\"depth\":2,\"slug\":\"data-processing-principles\",\"text\":\"Data Processing Principles\"},{\"depth\":2,\"slug\":\"legal-grounds-and-purposes\",\"text\":\"Legal Grounds and Purposes\"},{\"depth\":2,\"slug\":\"access-to-personal-data\",\"text\":\"Access to Personal Data\"},{\"depth\":2,\"slug\":\"third-parties\",\"text\":\"Third Parties\"},{\"depth\":2,\"slug\":\"international-transfers\",\"text\":\"International Transfers\"},{\"depth\":2,\"slug\":\"rights-of-data-subjects\",\"text\":\"Rights of Data Subjects\"},{\"depth\":2,\"slug\":\"new-data-processing-activities\",\"text\":\"New Data Processing Activities\"},{\"depth\":2,\"slug\":\"data-retention\",\"text\":\"Data Retention\"},{\"depth\":2,\"slug\":\"security\",\"text\":\"Security\"},{\"depth\":2,\"slug\":\"data-breach-response-procedure\",\"text\":\"Data Breach Response Procedure\"},{\"depth\":2,\"slug\":\"annex-1-to-the-personal-data-protection-policy\",\"text\":\"ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY\"},{\"depth\":2,\"slug\":\"footnote-label\",\"text\":\"Footnotes\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":";;;;AAKI,MAAM,IAAI,GAAG,MAAM,+kxEAA+kxE;;AAEtmxE,IAAgB,MAAC,WAAW,GAAG,CAAC,OAAO,CAAC,iCAAiC;AACzE,IAAgB,MAAC,IAAI,GAAG;AACxB,IAAgB,MAAC,GAAG,GAAG;AACvB,IAAW,SAAS,UAAU,GAAG;AACjC,KAAK,OAAO,otoEAAotoE;AAChuoE;AACA,IAAW,eAAe,eAAe,GAAG;AAC5C,KAAK,OAAO,MAAM,IAAI,EAAE;AACxB;AACA,IAAW,SAAS,WAAW,GAAG;AAClC,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gDAAgD,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxlC;;AAEA,IAAgB,MAAC,OAAO,GAAG,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK;AACtE,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW;AAC/C,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI;AACxB,KAAK,OAAO,CAAC,GAAG,GAAG,GAAG;;AAEtB,KAAK,OAAOA,cAAM,CAAC,EAAE,eAAe,CAAO,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrE,KAAK;;;;"} \ No newline at end of file +{"version":3,"file":"personal-data-protection-policy_Cm83fkZQ.mjs","sources":["../../Source/Content/en/personal-data-protection-policy.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

PERSONAL DATA PROTECTION POLICY

\\n

Effective date: 05.25.2018 / May 25th 2018
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

We at PlayForm ltd. are committed to processing personal data securely and\\nrespecting privacy of the concerned individuals.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Version No. and date of the last update:

v. 1.0.

\\n

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.
\\n

Scope and Definitions

\\n
    \\n
  1. \\n

    Scope. This Personal Data Protection\\nPolicy (the “Policy”) describes PlayForm ltd. internal rules for\\npersonal data processing and protection. The Policy applies to PlayForm\\nltd., including PlayForm ltd. employees and contractors (“we”, “us”,\\n“our”, “PlayForm”). The management of each entity is ultimately\\nresponsible for the implementation of this policy, as well as to ensure, at\\nentity level, there are adequate and effective procedures in place for its\\nimplementation and ongoing monitoring of its adherence. For the purposes of\\nthis Policy, employees and contractors are jointly referred to as the\\n“employees”.

    \\n
  2. \\n
  3. \\n

    Privacy Manager. Privacy Manager is an\\nemployee of PlayForm responsible for personal data protection compliance\\nwithin PlayForm (the “Privacy Manager”). The Privacy Manager is in\\ncharge of performing the obligations imposed by this Policy and supervising\\nother employees, who subject to this Policy, regarding their adherence to\\nthis Policy. The Privacy Manager must be involved in all projects at an\\nearly stage in order to take personal data protection aspects into account\\nas early as the planning phase.
    \\nThe designated Privacy Manager at PlayForm ltd. is Nikola Hristov\\nNikola@PlayForm.LTD.

    \\n
  4. \\n
  5. \\n

    Definitions.

    \\n
  6. \\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

\\n

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.
\\n

Data Processing Principles

\\n
    \\n
  1. \\n

    PlayForm’s processing activities must be in line with the principles\\nspecified in this Section. The Privacy Manager must make sure that\\nPlayForm’s compliance documentation, as well as data processing activities,\\nare compliant with the data protection principles.

    \\n
  2. \\n
  3. \\n

    We must process the Personal Data in accordance with the following\\nprinciples:

    \\n
      \\n
    1. \\n

      Lawfully, fairly and in a transparent manner (lawfulness, fairness and\\ntransparency). We shall always have a legal ground for the processing\\n(described in Section 3 of this Policy), collect the amount of data\\nadequate to the purpose and legal grounds, and we make sure the Data\\nSubjects are aware of the processing;

      \\n
    2. \\n
    3. \\n

      Collected for specified, explicit and legitimate purposes and not\\nfurther processed in a manner that is incompatible with those purposes\\n(purpose limitation). We must not process the Personal Data for the\\npurposes not specified in our compliance documentation without obtaining\\nspecific approval of the Privacy Manager;

      \\n
    4. \\n
    5. \\n

      Adequate, relevant and limited to what is necessary for the purposes for\\nwhich they are processed (data minimization). We always make sure\\nthe data we collect is not excessive and limited by the strict\\nnecessity;

      \\n
    6. \\n
    7. \\n

      Accurate and, where necessary, kept up to date (accuracy). We\\nendeavor to delete inaccurate or false data about Data Subjects and make\\nsure we update the data. Data Subjects can ask us for a correction of\\nthe Personal Data;

      \\n
    8. \\n
    9. \\n

      Kept in a form which permits identification of Data Subjects for no\\nlonger than is necessary for the purposes for which the Personal Data\\nare processed (storage period limitation). The storage periods must\\nbe limited as prescribed by Data Protection Laws and this Policy; and

      \\n
    10. \\n
    11. \\n

      Process in a manner that ensures appropriate security of the Personal\\nData, including protection against unauthorized or unlawful processing\\nand accidental loss, destruction or damage, using appropriate technical\\nor organizational measures (confidentiality, integrity, and\\navailability).

      \\n
    12. \\n
    \\n
  4. \\n
  5. \\n

    Accountability.

    \\n
      \\n
    1. \\n

      We shall be able to demonstrate our compliance with Data Protection Laws\\n(accountability principle). In particular, we must ensure and\\ndocument all relevant procedures, efforts, internal and external\\nconsultations on personal data protection including:

      \\n
        \\n
      • \\n

        the fact of appointing a person responsible for PlayForm’s data\\nprotection compliance;

        \\n
      • \\n
      • \\n

        where necessary, a record of a Data Processing Impact Assessment;

        \\n
      • \\n
      • \\n

        developed and implemented notices, policies, and procedures, such as\\nPrivacy Notice, this policy or Data Breach response procedure;

        \\n
      • \\n
      • \\n

        the fact of staff training on compliance with Data Protection laws;\\nand

        \\n
      • \\n
      • \\n

        assessment, implementation, and testing organizational and technical\\ndata protection measures.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      The Privacy Manager must maintain PlayForm’s Records of processing\\nactivities, which is an accountability document that describes personal\\ndata processing activities of PlayForm, prepared in accordance with Art.\\n30 of the GDPR (the “Records of processing activities”). The Records\\nof processing activities must maintain, at least, the following\\ninformation about each processing activity:

      \\n
        \\n
      • \\n

        contact details of PlayForm, the EU Representative, and, where\\napplicable, of the Data Protection Officer;

        \\n
      • \\n
      • \\n

        name of the activity, its purposes and legal basis along with, where\\napplicable, the legitimate interests of PlayForm;

        \\n
      • \\n
      • \\n

        data subjects and personal data categories concerned;

        \\n
      • \\n
      • \\n

        data retention periods;

        \\n
      • \\n
      • \\n

        general description of applicable security measures;

        \\n
      • \\n
      • \\n

        recipients, including joint controllers, processors, and contractors\\ninvolved, as well as the fact of the international data transfer\\nwith the safeguards applied to the transfer;

        \\n
      • \\n
      • \\n

        where applicable, a reference to the Data Processing Impact\\nAssessment;

        \\n
      • \\n
      • \\n

        where applicable, a reference to the record of the data breach\\noccurred involving the personal data;

        \\n
      • \\n
      • \\n

        if PlayForm acts as a data processor, the information to be provided\\nincludes the names and contact details of controllers, name and\\ncontact details of controller’s representative (if applicable),\\ncategories of processing (activities), names of third countries or\\ninternational organizations that personal data are transferred to\\n(if applicable), safeguards for exceptional transfers of personal\\ndata to third countries or international organizations (if\\napplicable), and general description of technical and organizational\\nsecurity measures.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  6. \\n
\\n

Legal Grounds and Purposes

\\n
    \\n
  1. \\n

    Legal grounds.

    \\n
      \\n
    1. \\n

      Each processing activity must have one of the lawful grounds specified\\nin this Section to process the Personal Data. If we do not have any of\\nthe described, we cannot collect or further process the Personal Data.

      \\n
    2. \\n
    3. \\n

      If PlayForm is intended to use personal data for other purposes than\\nthose specified in the Records of processing activities, the Privacy\\nManager must evaluate, determine, and, if necessary, collect/record the\\nappropriate legal basis for it.

      \\n
    4. \\n
    5. \\n

      Performance of the contract. Where PlayForm has a contract with the\\nData Subject, e.g., website’s Terms of Use or the employment contract,\\nand the contract requires the provision of personal data from the Data\\nSubject, the applicable legal ground will be the performance of the\\ncontract.

      \\n
    6. \\n
    7. \\n

      Consent. To process the personal data based on the consent, we must\\nobtain the consent before the Processing and keep the evidence of the\\nconsent with the records of Data Subject’s Personal Data. The Privacy\\nManager must make sure that the consent collected from Data Subjects\\nmeet the requirements of Data Protection Laws and this Policy. In\\nparticular, the Privacy Manager must make sure that:

      \\n
        \\n
      • \\n

        the Data Subject must be free to give or refuse to give consent.

        \\n
      • \\n
      • \\n

        the consent is in the form of an active indication from the Data\\nSubject, i.e., the consent checkbox must not be pre-ticked for the\\nuser.

        \\n
      • \\n
      • \\n

        the request for the consent clearly articulates the purposes of the\\nprocessing, and other information specified in Subsection 6.2 is\\navailable to the Data Subject.

        \\n
      • \\n
      • \\n

        the Data Subject must be free to give one’s consent or to revoke it.

        \\n
      • \\n
      \\n
    8. \\n
    9. \\n

      Legitimate interests. We have the right to use personal data in our\\n‘legitimate interests’. The interests can include the purposes that are\\njustified by the nature of our business activities, such as the\\nmarketing analysis of personal data. For PlayForm to use legitimate\\ninterests as a legal ground for the processing, the Privacy Manager must\\nmake sure that:

      \\n
        \\n
      • \\n

        the legitimate interest in the processing is clearly defined and\\nrecorded in the Records of processing activities;

        \\n
      • \\n
      • \\n

        any envisaged risks to Data Subject rights and interests are\\nspotted. The examples of the risks can be found in Subsection 7.2.;

        \\n
      • \\n
      • \\n

        the Data Subjects have reasonable expectations about the processing,\\nand additional protective measures to address the risks are taken;

        \\n
      • \\n
      • \\n

        subject to the conditions of Subsection 6.7 (Right to object against\\nthe processing), the Data Subject is provided with the opportunity\\nto opt-out from the processing for the described legitimate\\ninterests.
        \\nIf at least one of the above conditions is not met by PlayForm, the\\nPrivacy Manager must choose and propose a different legal ground for\\nthe processing, such as consent.

        \\n
      • \\n
      \\n
    10. \\n
    11. \\n

      Legal Compliance and Public Interest. Besides the grounds specified\\nafore, we might be requested by the laws of the European Union or laws\\nof the EU Member State to process Personal Data of our Users. For\\nexample, we can be required to collect, analyze, and monitor the\\ninformation of Users to comply with financial or labor laws.
      \\nWhenever we have such an obligation, we must make sure that:

      \\n
        \\n
      • \\n

        we process personal data strictly in accordance with relevant legal\\nrequirements;

        \\n
      • \\n
      • \\n

        we do not use or store the collected Personal Data for other\\npurposes than legal compliance; and

        \\n
      • \\n
      • \\n

        the Data Subjects are properly and timely informed about our\\nobligations, scope, and conditions of personal data processing.

        \\n
      • \\n
      \\n
    12. \\n
    \\n
  2. \\n
\\n

Important: Where PlayForm has the law requirements of another country to process\\npersonal data, the Privacy Manager must propose using another legal ground for\\nthe processing under Data Protection Laws, such as legitimate interests or\\nconsent.

\\n

Access to Personal Data

\\n
    \\n
  1. \\n

    Access to Personal Data.

    \\n
      \\n
    1. \\n

      The employees must have access to the personal data on a “need-to-know”\\nbasis. The data can be accessed only if it is strictly necessary to\\nperform one of the activities specified in the Records of processing\\nactivities. The employees and contractors shall have access to the\\nPersonal Data only if they have the necessary credentials for it.

      \\n
    2. \\n
    3. \\n

      Heads of the departments within PlayForm are responsible for their\\nemployees’ access and processing of personal data. The heads must\\nmaintain the list of employees that are entitled to access and process\\npersonal data. The Privacy Manager shall have the right to review the\\nlist and, where necessary, request the amendments to meet the\\nrequirements of this Policy.

      \\n
    4. \\n
    5. \\n

      Heads of the departments within PlayForm must ensure that the employees\\nunder their supervision are aware of the Data Protection Laws and comply\\nwith the rules set in this Policy. To make sure our employees are able\\nto comply with the data protection requirements, we must provide them\\nwith adequate data protection training.

      \\n
    6. \\n
    7. \\n

      All employees accessing personal data shall keep strict confidentiality\\nregarding the data they access. The employees that access personal data\\nmust use only those means (software, premises, etc.) for the processing\\nthat were prescribed by PlayForm. The data must not be disclosed or\\notherwise made available out of the management instructions.

      \\n
    8. \\n
    9. \\n

      The employees within their competence must assist PlayForm’s\\nrepresentatives, including the Privacy Manager, in any efforts regarding\\ncompliance with Data Protection Laws and/or this Policy.

      \\n
    10. \\n
    11. \\n

      When an employee detects or believes there is suspicious activity, data\\nbreach, non-compliance with Data Protection Laws and/or this Policy, or\\na DSR was not routed to the competent department within PlayForm, the\\nemployee must report such activity to the Privacy Manager.

      \\n
    12. \\n
    13. \\n

      Employees that are unsure about whether they can legitimately process or\\ndisclose Personal Data must seek advice from the Privacy Manager before\\ntaking any action.

      \\n
    14. \\n
    15. \\n

      Any occasional access to personal data for activities not specified in\\nthe Records of processing activities is prohibited. If there is a strict\\nnecessity for immediate access, the Privacy Manager must approve the\\naccess first.

      \\n
    16. \\n
    \\n
  2. \\n
\\n

Third Parties

\\n
    \\n
  1. \\n

    Before sharing personal data with any person outside of PlayForm, the\\nPrivacy Manager must ensure that this Third Party has an adequate data\\nprotection level and provide sufficient data protection guarantees in\\naccordance with Data Protection Laws, including, but not limited to the\\nprocessorship requirements (Art. 28 of the GDPR) and international transfers\\ncompliance (Section 5 of the GDPR). Where necessary, the Privacy Manager\\nmust make sure that PlayForm enters into the appropriate data protection\\ncontract with the third party.

    \\n
  2. \\n
  3. \\n

    An employee can share personal data with third parties only if and to the\\nextent that was directly prescribed by the manager and specified in the\\nRecords of processing activities.

    \\n
  4. \\n
  5. \\n

    If we are required to delete, change, or stop the processing of the Personal\\nData, we must ensure that the Third Parties, with whom we shared the\\nPersonal Data, will fulfill these obligations accordingly.

    \\n
  6. \\n
  7. \\n

    Whenever PlayForm is engaged as a data processor on behalf of another\\nentity, the Privacy Manager must make sure PlayForm complies with the\\nprocessorship obligation. In particular, the appropriate data processing\\nagreement in accordance with the Data Protection Laws must be in place. The\\nPrivacy Manager must supervise the compliance with data processing\\ninstructions from the controller, including regarding the scope of\\nprocessing activities, involvement of sub-processors, international\\ntransfers, storage, and further disposal of processed personal data. The\\npersonal data processed under the processor role must not be processed for\\nany other purposes than specified in the relevant instructions, agreement or\\nother legal act regulating the relationships with the controller.

    \\n
  8. \\n
\\n

International Transfers

\\n
    \\n
  1. \\n

    If we have the employees, contractors, corporate affiliates, or Data\\nProcessors outside of the EEA, and we transfer Personal Data to them for the\\nprocessing, the Privacy Manager must make sure PlayForm takes all necessary\\nand appropriate safeguards in accordance with Data Protection Laws.

    \\n
  2. \\n
  3. \\n

    The Privacy Manager must assess the safeguards available and propose to the\\nPlayForm’s management the appropriate safeguard for each international\\ntransfer. The following regimes apply to the transfers of Personal Data\\noutside of the EU:

    \\n
      \\n
    • \\n

      where the European Commission decides that the country has an adequate\\nlevel of personal data protection, the transfer does not require taking\\nadditional safeguards. The full list of adequate jurisdictions can be\\nfound on the relevant page of the European Commission’s website1.

      \\n
    • \\n
    • \\n

      to transfer Personal Data to our contractors or partners (Data\\nProcessors or Controllers) in other third countries, we must conclude\\nStandard Contractual Clauses with that party. The draft version along\\nwith the guidance can be found on the relevant page of the European\\nCommission’s website2;

      \\n
    • \\n
    • \\n

      if we have a corporate affiliate or an entity in other countries, we may\\nchoose to adopt Binding Corporate Rules in accordance with Article 47 of\\nthe GDPR or an approved code of conduct pursuant to Article 40 of the\\nGDPR;

      \\n
    • \\n
    • \\n

      we also can transfer Personal Data to entities that have an approved\\ncertification in accordance with Article 42 of the GDPR, which certifies\\nan appropriate level of company’s data protection.

      \\n
    • \\n
    \\n
  4. \\n
\\n
    \\n
  1. \\n

    As a part of the information obligations, PlayForm must inform the Data\\nSubjects that their Personal Data is being transferred to other countries,\\nas well as provide them with the information about the safeguards used for\\nthe transfer. The information obligation is to be performed in accordance\\nwith Subsection 6.2.

    \\n
  2. \\n
  3. \\n

    In the exceptional cases (the “Derogation”), where we cannot apply the\\nsafeguards mentioned afore and we need to transfer Personal Data, we must\\ntake an explicit consent (active statement) from the Data Subject or it must\\nbe strictly necessary for the performance of the contract between us and the\\nData Subject, or other derogation conditions apply in accordance with the\\nData Protection Laws. The Privacy Manager must pre-approve any Derogation\\ntransfers and document the approved Derogations, as well as the rationale\\nfor them.

    \\n
  4. \\n
\\n

Rights of Data Subjects

\\n
    \\n
  1. \\n

    Our Responsibilities.

    \\n
      \\n
    1. \\n

      Privacy Manager is ultimately responsible for handing all DSR received\\nby PlayForm. In the case of receiving any outstanding or unusual DSR,\\nthe employee must seek advice from the Privacy Manager before taking any\\naction.

      \\n
    2. \\n
    3. \\n

      DSR Team within PlayForm is responsible for handling DSRs from PlayForm\\nUsers on a daily basis. The Human Resources department is responsible\\nfor handling the DSR from PlayForm employees.

      \\n
    4. \\n
    5. \\n

      All DSRs from the Users must be addressed at and answered from the\\nfollowing e-mail address: DSR@PlayForm.LTD. DSR from the employees can\\nbe addressed directly to the HR manager or at DSR@PlayForm.LTD.

      \\n
    6. \\n
    7. \\n

      The responsible employee must answer to the DSR within one (1) month\\nfrom receiving the request. If complying with the DSR takes more than\\none month in time, the responsible employee must seek advice from the\\nPrivacy Manager and, where necessary, inform the Data Subject about the\\nprolongation of the response term for up to two (2) additional months.

      \\n
    8. \\n
    9. \\n

      The responsible employee must analyze the received DSR for the following\\ncriteria:

      \\n
        \\n
      • \\n

        Data Subject identification. Before considering the DSR content,\\nthe responsible employee must make sure the Data Subject is the same\\nperson he/she claims to be. For this purpose, the connection between\\nthe personal data records and the data subject must be established.

        \\n
      • \\n
      • \\n

        Personal data. The responsible employee must check whether\\nPlayForm has access to the personal data requested. If PlayForm does\\nnot have the personal data under the control, the responsible\\nemployee must inform the Data Subject, and, if possible, instruct on\\nthe further steps on how to access the data in question;

        \\n
      • \\n
      • \\n

        Content of the request. Depending on the content of the DSR, the\\nresponsible employee must define the type of the request and check\\nwhether it meets the conditions prescribed by this Policy and Data\\nProtection Laws. The types of requests and the respective conditions\\nfor each of them can be consulted in Subsections 6.3-6.9. If the\\nrequest does not meet the described criteria, the responsible\\nemployee must refuse to comply with the DSR and inform the Data\\nSubject about the reasons for refusing;

        \\n
      • \\n
      • \\n

        Free of charge. Generally, all requests of Data Subjects and\\nexercises of their rights are free of charge. If the responsible\\nemployee finds that the Data Subject exercises the rights in an\\nexcessive or unfound way (e.g., intended to harm or interrupt\\nPlayForm’s business activities), the employee must seek the advice\\nfrom the Privacy Manager, and, upon receiving of the latter, may\\neither charge the Data Subject a reasonable fee or refuse to comply\\nwith the request;

        \\n
      • \\n
      • \\n

        Documenting. Whenever PlayForm receives the DSR, the Privacy\\nManager must make sure that the data and time, Data Subject, type of\\nthe request and the decision made regarding it are well documented.\\nIn the case of refusing to comply with the request, the reasons for\\nrefusing must be documented as well;

        \\n
      • \\n
      • \\n

        Recipients. When addressing the DSR, the Privacy Manager must\\nmake sure that all concerned recipients were informed the necessary\\nactions were taken.

        \\n
      • \\n
      \\n
    10. \\n
    \\n
  2. \\n
  3. \\n

    The right to be informed.

    \\n
      \\n
    1. \\n

      PlayForm must notify each Data Subject about the collection and further\\nprocessing of the Personal Data.

      \\n
    2. \\n
    3. \\n

      The information to be provided includes: the name and contact details of\\nPlayForm; generic purposes of and the lawful basis for the data\\ncollection and further processing; categories of Personal Data\\ncollected; recipients/categories of recipients; retention periods;\\ninformation about data subject rights, including the right to complain\\nto the competent Supervisory Authority; the consequences of the cases\\nwhere the data is necessary for the contract performance and the Data\\nSubject does not provide the required data; details of the safeguards\\nwhere personal data is transferred outside the EEA; and any third-party\\nsource of the personal data, without specification for the particular\\ncase (except if we receive the direct request from the Data Subject).

      \\n
    4. \\n
    5. \\n

      The Users must be informed by the Privacy Policy accessible at\\nPlayForm’s website and provided during the user registration. The\\nemployees and contractors must be informed by a standalone employee\\nprivacy statement, which explains the details described in p. 6.2.2 in a\\ncase-based manner, describing the particular purposes and activities.

      \\n
    6. \\n
    7. \\n

      PlayForm must inform Data Subjects about data processing, including any\\nnew processing activity introduced at PlayForm within the following\\nterm:

      \\n
        \\n
      • \\n

        if personal data is collected from the data subject directly, the\\ndata subject must be informed at the time we collect Personal Data\\nfrom the Data Subjects by showing the Data Subject our privacy\\nstatement;

        \\n
      • \\n
      • \\n

        if the personal data is collected from other sources: (a) within one\\nmonth from collecting it; (b) if the personal data are to be used\\nfor communication with the data subject, at the latest at the time\\nof the first communication to that data subject; or (c) if a\\ndisclosure to another recipient is envisaged, at the latest when the\\npersonal data are first disclosed.

        \\n
      • \\n
      • \\n

        upon the request of the Data Subject; and

        \\n
      • \\n
      • \\n

        within one (1) month after any change of our personal data\\npractices, change of the controller of Personal Data or after\\nsignificant changes in our privacy statements.

        \\n
      • \\n
      \\n
    8. \\n
    \\n
  4. \\n
  5. \\n

    The right to access the information.

    \\n
      \\n
    1. \\n

      The Data Subject must be provided only with those personal data records\\nspecified in the request. If the Data Subject requests access to all\\npersonal data concerning her or him, the employee must seek advice from\\nthe Privacy Manager first, to make sure all personal data of the Data\\nSubject is mapped and provided.

      \\n
    2. \\n
    3. \\n

      A Data Subject has the right to:

      \\n
        \\n
      • \\n

        learn if we process the Data Subject’s Personal Data;

        \\n
      • \\n
      • \\n

        obtain disclosure regarding aspects of the processing, including\\ndetailed and case-specific information on purposes, categories of\\nPersonal Data, recipients/categories of recipients, retention\\nperiods, information about one’s rights, details of the relevant\\nsafeguards where personal data is transferred outside the EEA, and\\nany third-party source of the personal data; and

        \\n
      • \\n
      • \\n

        obtain a copy of the Personal Data undergoing processing upon the\\nrequest.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  6. \\n
  7. \\n

    The right to verify the Data Subject’s information\\nand seek its rectification. The information we collect can\\nbe/become inaccurate or out-of-date (e.g., mistakes in nationality, date of\\nbirth, info on debts, economic activities). If we reveal that the Personal\\nData is inaccurate or the Data Subject requests us to do so, we must ensure\\nthat we correct all mistakes and update the relevant information.

    \\n
  8. \\n
  9. \\n

    The right to restrict processing.

    \\n
      \\n
    1. \\n

      The restriction of processing allows Data Subjects to temporarily stop\\nthe use of their information to prevent the possible harm caused by such\\nuse.

      \\n
    2. \\n
    3. \\n

      This right applies when the Data Subject:

      \\n
        \\n
      • \\n

        contests the accuracy of the Personal Data;

        \\n
      • \\n
      • \\n

        believes that we process the Personal Data unlawfully; and

        \\n
      • \\n
      • \\n

        objects against the processing and wants us not to process Personal\\nData while we are considering the request.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      In the case of receiving the restriction request, we must not process\\nPersonal Data in question for any other purpose than storing it or for\\nlegal compliance purposes until the circumstances of restriction cease\\nto exist.

      \\n
    6. \\n
    \\n
  10. \\n
  11. \\n

    The right to withdraw the consent. For\\nthe activities that require consent, the Data Subject can revoke their\\nconsent at any time. If the Data Subject revokes the consent, we must record\\nthe changes and must not process the Personal Data for consent-based\\npurposes. The withdrawal of consent does not affect the lawfulness of the\\nprocessing done before the withdrawal.

    \\n
  12. \\n
  13. \\n

    The right to object against the\\nprocessing.

    \\n
      \\n
    1. \\n

      If we process the information in our legitimate interests, e.g., for\\ndirect marketing emails or for our marketing research purposes, the Data\\nSubject can object against the processing.

      \\n
    2. \\n
    3. \\n

      In the case of receiving the objection request case, we must consider\\nData Subject’s request and, where we do not have compelling interests,\\nstop the processing for the specified purposes. If the personal data is\\nstill to be processed for other purposes, the Privacy Manager must make\\nsure that the database has a record that the data cannot be further\\nprocessed for the objected activities.

      \\n
    4. \\n
    5. \\n

      The objection request can be refused only if the personal data in\\nquestion is used for scientific/historical research or statistical\\npurposes and was appropriately protected, i.e., by anonymization or\\npseudonymization techniques.

      \\n
    6. \\n
    \\n
  14. \\n
  15. \\n

    Right to erasure/to be forgotten.

    \\n
      \\n
    1. \\n

      The Data Subjects have the right to request us to erase their Personal\\nData if one of the following conditions are met:

      \\n
        \\n
      • \\n

        Personal Data is no longer necessary for the purposes of collection.\\nFor example, a user has provided personal data for a one-time\\nactivity, such as data validation or participation in a contest, and\\nthe purpose is already fulfilled;

        \\n
      • \\n
      • \\n

        the Data Subject revokes one’s consent or objects to the processing\\n(where applicable) and there is no other legal ground for the\\nprocessing; or

        \\n
      • \\n
      • \\n

        we process the Personal Data unlawfully or its erasure is required\\nby the applicable legislation of the European Union or one of the\\nMember countries of the European Union.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      Conditions, under which we have the right to refuse the erasure:

      \\n
        \\n
      • \\n

        Personal Data is processed for scientific/historical research or\\nstatistical purposes and is appropriately protected, i.e.,\\npseudonymized or anonymized;

        \\n
      • \\n
      • \\n

        Personal Data is still necessary for legal compliance (e.g.,\\nfinancial or labor laws compliance).

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      Only those personal data records must be deleted that were specified in\\nthe request. If the Data Subject requests the deletion of all personal\\ndata concerning her or him, the employee must seek advice from the\\nPrivacy Manager first, to make sure all the data about the Data Subject\\nis mapped and can be deleted.

      \\n
    6. \\n
    7. \\n

      If the User still has an account with us and requests the erasure of\\ninformation necessary for maintaining the account, we must inform the\\nUser that the erasure will affect user experience or can lead to the\\nclosure of the account.

      \\n
    8. \\n
    \\n
  16. \\n
  17. \\n

    Data portability.

    \\n
      \\n
    1. \\n

      Data Subjects can ask us to transfer all the Personal Data and/or its\\npart in a machine-readable format to a third party. This right applies\\nin two cases:

      \\n
        \\n
      • \\n

        personal data was collected for the purpose of provision of our\\nservices (performance of the contract); or

        \\n
      • \\n
      • \\n

        collected based on consent.

        \\n
      • \\n
      \\n
    2. \\n
    3. \\n

      To determine whether one of the p.6.9.1 conditions are met, the employee\\nmust seek advice from the Privacy Manager and check the applicable legal\\nbasis in the Records of processing activities. If the answer is\\nnegative, the request can be refused by PlayForm, and the Privacy\\nManager must decide whether to comply with the request on a voluntary\\nbasis.

      \\n
    4. \\n
    5. \\n

      To comply with the request, the responsible employee must consolidate\\nrequested Personal Data and send the data in the format we are usually\\nworking with to the requested organization. The Data Subject must\\nprovide the necessary contact details of the organization.

      \\n
    6. \\n
    \\n
  18. \\n
\\n

New Data Processing Activities

\\n
    \\n
  1. \\n

    Notification to Privacy Manager.

    \\n
      \\n
    1. \\n

      Before introducing any new activity that involves the processing of\\npersonal data, an employee responsible for its implementation must\\ninform the Privacy Manager.

      \\n
    2. \\n
    3. \\n

      Upon receiving information about a new activity, Privacy Manager must:

      \\n
        \\n
      • \\n

        determine whether the data processing impact assessment (DPIA)\\nand/or the consultation with the Supervisory Authority is necessary.\\nIf the answer is positive, the Privacy Manager must make sure the\\nDPIA is conducted and/or the Supervisory Authority is consulted in\\naccordance with the requirements of this Section and Data Protection\\nLaws;

        \\n
      • \\n
      • \\n

        determine the legal basis for the processing and, where necessary,\\ntake further action for its fixation;

        \\n
      • \\n
      • \\n

        make sure the processing activity is done in accordance with this\\nPolicy, other PlayForm’s policies, as well as the Data Protection\\nLaws;

        \\n
      • \\n
      • \\n

        add the processing activity to the Records of processing activities;

        \\n
      • \\n
      • \\n

        amend the privacy information statements and, where necessary,\\ninform the concerned Data Subject accordingly.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  2. \\n
  3. \\n

    Data Processing Impact Assessment.

    \\n
      \\n
    1. \\n

      To make sure that our current or prospective processing activities do\\nnot/will not violate the Data Subjects’ rights, PlayForm must, where\\nrequired by Data Protection Laws, conduct the Data Processing Impact\\nAssessment (DPIA), a risk-based assessment of the processing and search\\nfor the measures to mitigate the risks. The Privacy Manager must make\\nsure the DPIA is conducted in accordance with this Section.

      \\n
    2. \\n
    3. \\n

      The Privacy Manager, where necessary, involving the competent employees\\nand/or external advisors, must conduct a DPIA if at least one of the\\nfollowing conditions are met:

      \\n
        \\n
      • \\n

        the processing involves the use of new technologies, such as the\\nArtificial Intelligence, use of connected and autonomous devices,\\netc. that creates certain legal, economic or similar effects to the\\nData Subject;

        \\n
      • \\n
      • \\n

        we systematically assess and evaluate personal aspects of the Data\\nSubjects based on automated profiling, assigning the personal\\nscore/rate, and create legal or similar effects for the Data Subject\\nby this activity;

        \\n
      • \\n
      • \\n

        we process on a large-scale sensitive data, which includes Personal\\nData relating to criminal convictions and offences, the data about\\nvulnerable data subjects, the personal data revealing racial or\\nethnic origin, political opinions, religious or philosophical\\nbeliefs, or trade union membership, and the processing of genetic\\ndata, biometric data for the purpose of uniquely identifying a\\nnatural person, data concerning health or data concerning a natural\\nperson’s sex life or sexual orientation;

        \\n
      • \\n
      • \\n

        we collect or process Personal Data from a publicly accessible area\\nor public sources on a large scale, or combine or match two\\ndifferent data sets; and

        \\n
      • \\n
      • \\n

        the Supervisory Authority in its public list requires conducting a\\nDPIA for a certain type of activity we are involved in. The list of\\nprocessing activities requiring conducting DPIA can be found on the\\nwebsite of each Supervisory Authority.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      The assessment shall contain at least the following details:

      \\n
        \\n
      • \\n

        a systematic description of the processing operations and the\\npurposes of the processing, including, where applicable, the\\nlegitimate interest pursued by us. The description must include the\\nenvisaged data categories and data subjects concerned, the scale of\\nprocessing activities, such as its frequency, volume, envisaged\\nnumber of records, etc.; recipients of the data, retention periods\\nand, where applicable, international transfers;

        \\n
      • \\n
      • \\n

        an assessment of the necessity and proportionality of the processing\\noperations in relation to the purposes. The DPIA must explain\\nwhether the activity is necessary for the purpose and whether the\\npurpose can be achieved by less intrusive methods;

        \\n
      • \\n
      • \\n

        an assessment of the risks to the rights and freedoms of data\\nsubjects, including the rights of Data Subjects regarding their\\nPersonal Data.

        \\n
      • \\n
      • \\n

        The examples of risks are the processing which could lead to\\nphysical, material or non-material damage, in particular: where the\\nprocessing may give rise to discrimination, identity theft or fraud,\\nfinancial loss, damage to the reputation, loss of confidentiality of\\npersonal data protected by professional secrecy, unauthorized\\nreversal of pseudonymization, or any other significant economic or\\nsocial disadvantage; where data subjects might be deprived of their\\nrights and freedoms or prevented from exercising control over their\\npersonal data; where personal data are processed which reveal racial\\nor ethnic origin, political opinions, religion or philosophical\\nbeliefs, trade union membership, and the processing of genetic data,\\ndata concerning health or data concerning sex life or criminal\\nconvictions and offences or related security measures; where\\npersonal aspects are evaluated, in particular analyzing or\\npredicting aspects concerning performance at work, economic\\nsituation, health, personal preferences or interests, reliability or\\nbehavior, location or movements, in order to create or use personal\\nprofiles; where personal data of vulnerable natural persons, in\\nparticular of children, are processed; or where processing involves\\na large amount of personal data and affects a large number of data\\nsubjects; and

        \\n
      • \\n
      • \\n

        the measures to address the risks, including safeguards, security\\nmeasures, and mechanisms to ensure the protection of personal data\\nand to demonstrate compliance with this Regulation.

        \\n
      • \\n
      \\n
    6. \\n
    7. \\n

      Where the DPIA did not provide how to effectively address the risks, the\\nPrivacy Manager must initiate the consultation with the competent\\nSupervisory Authority to receive help with searching for the solution.\\nIn this case, PlayForm must not conduct the activity before the\\nSupervisory Authority approves the processing activity in question.

      \\n
    8. \\n
    \\n
  4. \\n
\\n

Data Retention

\\n
    \\n
  1. \\n

    General Rule.

    \\n
      \\n
    1. \\n

      The Privacy Manager must make sure that PlayForm clearly defined the\\ndata storage periods and/or criteria for determining the storage periods\\nfor each processing activity it has. The periods for each processing\\nactivity must be specified in the Records of processing activities.

      \\n
    2. \\n
    3. \\n

      Each department within PlayForm must comply with the data storage\\nperiods in accordance with the retention schedule provided in Records of\\nprocessing activities. The Privacy Manager must supervise each\\ndepartment and make sure they comply with this requirement.

      \\n
    4. \\n
    5. \\n

      After the storage period ends, the personal data must be removed from\\nthe disposal of the department responsible for the processing or, in\\ncases where the data is not needed for any other purposes, destroyed\\ncompletely, including from back-up copies and other media.

      \\n
    6. \\n
    7. \\n

      Whenever the storage period for a processing activity has ended, but the\\npersonal data processed is necessary for other processing purposes, the\\ndepartment manager must make sure that the personal data is not used for\\nthe ceased processing activity, and the responsible employees do not\\nhave the access to it unless required for any other activity.

      \\n
    8. \\n
    \\n
  2. \\n
  3. \\n

    Exemptions. The rules specified in\\nSubsection 8.1 have the following exceptions:

    \\n
      \\n
    1. \\n

      Business needs. Data retention periods can be prolonged, but no\\nlonger than 60 days, in the case that the data deletion will interrupt\\nor harm our ongoing business. The Privacy Manager must approve any\\nunforeseen prolongation;

      \\n
    2. \\n
    3. \\n

      Technical impossibility. Some information is technically impossible\\nor disproportionally difficult to delete. For example, deletion of the\\ninformation may lead to breach of system integrity, or it is impossible\\nto delete the information from the backup copies. In such a case, the\\ninformation can be further stored, subject to the approval by the\\nPrivacy Manager and making respective amendments to the Records of\\nprocessing activities; and

      \\n
    4. \\n
    5. \\n

      Anonymization. The Personal Data can be further processed for any\\npurposes (e.g., marketing) if we fully anonymize these data after the\\nretention period is expired. This means that all personal identifiers\\nand connections to them will be deleted from the data. To consider\\nPersonal Data anonymous, it must be impossible to reidentify the Data\\nSubject from the data set.

      \\n
    6. \\n
    \\n
  4. \\n
\\n

Security

\\n
    \\n
  1. \\n

    Each department within PlayForm shall take all appropriate technical and\\norganizational measures that protect against unauthorized, unlawful, and/or\\naccidental access, destruction, modification, blocking, copying,\\ndistribution, as well as from other illegal actions of unauthorized persons\\nregarding the personal data under their responsibility.

    \\n
  2. \\n
  3. \\n

    The employee responsible for the supervision after the security of personal\\ndata within PlayForm shall be DSR Officer. This person implements the\\nguidelines and other specifications on data protection and information\\nsecurity in his area of responsibility. He/she advises PlayForm management\\non the planning and implementation of information security in PlayForm, and\\nmust be involved in all projects at an early stage in order to take\\nsecurity-related aspects into account as early as the planning phase.

    \\n
  4. \\n
\\n

Data Breach Response Procedure

\\n
    \\n
  1. \\n

    Response Team.

    \\n
      \\n
    1. \\n

      In case of revealing the Data Breach, CEO of PlayForm shall urgently\\nform the Data Breach Response Team (the “Response Team”), which will\\nhandle the Data Breach, notify the appropriate persons, and mitigate its\\nrisks.

      \\n
    2. \\n
    3. \\n

      The Response Team must be а multi-disciplinary group headed by CEO of\\nPlayForm and comprised of the Privacy Manager, privacy laws specialist\\n(whether internal or external), and knowledgeable and skilled\\ninformation security specialists within PlayForm or outsourcing\\nprofessionals, if necessary. The team must ensure that all employees and\\nengaged contractors/processors adhere to this Policy and provide an\\nimmediate, effective, and skillful response to any suspected/alleged or\\nactual Data Breach affecting PlayForm.

      \\n
    4. \\n
    5. \\n

      The potential members of the Response Team must be prepared to respond\\nto а Data Breach. The Response Team shall perform all the\\nresponsibilities of PlayForm mentioned in this Policy. The duties of the\\nResponse Team are:

      \\n
        \\n
      • \\n

        to communicate the Data Breach to the competent Supervisory\\nAuthority(-ies);

        \\n
      • \\n
      • \\n

        in case of high risk to the rights and freedoms of Data Subjects, to\\ncommunicate the Data Breach to the Data Subject;

        \\n
      • \\n
      • \\n

        if PlayForm obtain data from any third party as a processor, and a\\nData Breach involves obtained data, to inform the third parties\\nabout the Data Breach;

        \\n
      • \\n
      • \\n

        to communicate PlayForm’s contractors or any other third parties\\nthat process the Personal Data involved in the Data Breach; and

        \\n
      • \\n
      • \\n

        to take all appropriate technical and organizational measures to\\ncease the Data Breach and mitigate its consequences;

        \\n
      • \\n
      • \\n

        to record the fact of the Data Breach in the Records of processing\\nactivities and file an internal data breach report that describes\\nthe event.

        \\n
      • \\n
      \\n
    6. \\n
    7. \\n

      The Response Team shall perform its duties until all the necessary\\nmeasures required by this Policy are taken.

      \\n
    8. \\n
    \\n
  2. \\n
  3. \\n

    Notification to Supervisory Authority.

    \\n
      \\n
    1. \\n

      PlayForm shall inform the Competent Supervisory Authority about the Data\\nBreach without undue delay and, where it is possible, not later than 72\\nhours after having become aware of the Data Breach.

      \\n
    2. \\n
    3. \\n

      The Competent Supervisory Authority shall be determined by the residence\\nof the Data Subjects, whose information was involved in the Data Breach.\\nIf the Data Breach concerns the Personal Data of Data Subjects from more\\nthan one country, PlayForm shall inform all Competent Supervisory\\nAuthorities.

      \\n
    4. \\n
    5. \\n

      To address the notification to the authority, the Response Team should\\nuse Annex 1 to this Policy. Annex 1 contains all the necessary contact\\ninformation of the EU supervisory authorities. If the Data Breach\\nconcerns Data Subjects from other than the EU countries, the Response\\nTeam shall ask a competent privacy specialist for advice.

      \\n
    6. \\n
    7. \\n

      The notification to the Competent Supervisory Authority shall contain,\\nat least, following information:

      \\n
        \\n
      • \\n

        the nature of the Data Breach including where possible, the\\ncategories and an approximate number of Data Subjects and Personal\\nData records concerned;

        \\n
      • \\n
      • \\n

        the name and contact details of the Response Team, Privacy Manager\\nor, if not applicable, of the CEO;

        \\n
      • \\n
      • \\n

        the likely consequences of the Data Breach. Explain PlayForm’s point\\nof view on the purposes and possible further risks of the Data\\nBreach. E.g., the Personal Data may be stolen for the further\\nsale, fraud activities or blackmailing the concerned Data\\nSubjects; and

        \\n
      • \\n
      • \\n

        the measures taken or proposed to be taken by PlayForm to\\naddress the Data Breach, including, where appropriate, measures to\\nmitigate its possible adverse effects.

        \\n
      • \\n
      \\n
    8. \\n
    9. \\n

      To file a notification, the Response Team should use PlayForm’s Data\\nBreach Notification Form to the Supervisory Authority.

      \\n
    10. \\n
    \\n
  4. \\n
  5. \\n

    Notifications to Data Subjects.

    \\n
      \\n
    1. \\n

      When the Data Breach is likely to result in a high risk to the rights\\nand freedoms of Data Subjects (e.g., stealing of funds, assets,\\nproprietary information), we must also communicate the Data Breach to\\nthe concerned Data Subjects without undue delay. The Privacy Manager\\nmust determine if there is a high risk based on the risk factors\\nspecified in Subsection 7.2.3 of this Policy.

      \\n
    2. \\n
    3. \\n

      The notification shall contain the following information:

      \\n
        \\n
      • \\n

        description of the Data Breach - what happened and what led to the\\nData Breach, such as a security breach, employee’s negligence,\\nerror in the system work. If the Response Team decided not to\\ndisclose the causes of the Data Breach, then this clause must not be\\nmentioned;

        \\n
      • \\n
      • \\n

        the measures taken by PlayForm regarding the Data Breach, including\\nsecurity measures, internal investigations, and supervisory\\nauthority notice;

        \\n
      • \\n
      • \\n

        recommendations for the concerned Data Subjects how to mitigate\\nrisks and possible consequences, such as guidelines on how to\\nrestore access to an account, preventing measures (change of a\\npassword); and

        \\n
      • \\n
      • \\n

        the contact information of the Response Team or one of its members.

        \\n
      • \\n
      \\n
    4. \\n
    5. \\n

      The notification to the Data Subjects should be carried out by the\\nemail letter or, where it is impossible to use the email, by other\\navailable means of communication.

      \\n
    6. \\n
    7. \\n

      Exemptions. We do not have to send the notification to the Data\\nSubjects if any of the following conditions are met:

      \\n
        \\n
      • \\n

        PlayForm has implemented appropriate technical and organizational\\nprotection measures, and those measures were applied to the Personal\\nData affected by the Data Breach, in particular, those that leave\\nthe Personal Data inaccessible to any person who is not authorized\\nto access it, such as encryption;

        \\n
      • \\n
      • \\n

        PlayForm has taken subsequent measures which ensure that the high\\nrisk to the rights and freedoms of Data Subjects referred to in this\\nsection is no longer likely to materialize; or

        \\n
      • \\n
      • \\n

        it would involve a disproportionate effort to communicate with every\\nconcerned Data Subject. In such a case, there shall instead be a\\npublic communication or similar measure whereby the Data Subjects\\nare informed in an equally effective manner.

        \\n
      • \\n
      \\n
    8. \\n
    \\n
  6. \\n
\\n

In the case we apply one of the exemptions, we must document the\\ncircumstances, reason for not informing, and actions taken to meet one of the\\nexemptions.

\\n
    \\n
  1. \\n

    Communication with Third Parties.

    \\n
      \\n
    1. \\n

      In the case a Data Breach concerns the Personal Data shared with us or\\nprocessed by us on behalf of a Third Party, we must also notify the\\nThird Party about it within 24 hours. If we process the Personal Data as\\na Data Processor, the notification of the Third Party does not exempt us\\nfrom the duty to mitigate the Data Breach consequences, but we must not\\ninform the Competent Supervisory Authority and Data Subjects.

      \\n
    2. \\n
    3. \\n

      In case of receiving the notification about the Data Breach from the\\nData Processor or other Third Parties that have access to the Personal\\nData, CEO of PlayForm shall, in accordance with this Section:

      \\n
        \\n
      • \\n

        form the Response Team;

        \\n
      • \\n
      • \\n

        request the Third Party to send the information mentioned in\\nSubsections 10.2-3 of this Policy;

        \\n
      • \\n
      • \\n

        where necessary, inform the Competent Supervisory Authority(-ies)\\nand Data Subjects; and

        \\n
      • \\n
      • \\n

        perform other steps of the Data Breach response procedure.

        \\n
      • \\n
      \\n
    4. \\n
    \\n
  2. \\n
\\n

List of Persons Briefed on Personal Data Protection Policy

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Full Name

Status

Date

Nikola Hristov Briefed05.25.2018
\\n

ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY

\\n

European National Data Protection Authorities

\\n

Austria

\\n

Österreichische Datenschutzbehörde
\\nHohenstaufengasse 3
\\n1010 Wien
\\nTel. +43 1 531 15 202525
\\nFax +43 1 531 15 202690
\\nE-mail: dsb@dsb.gv.at
\\nWebSite: https://www.dsb.gv.at

\\n

Art 29 WP Member: Dr Andrea JELINEK, Director, Österreichische\\nDatenschutzbehörde

\\n

Belgium

\\n

Commission de la protection de la vie privée
\\nCommissie voor de bescherming van de persoonlijke levenssfeer
\\nRue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel
\\nTel. +32 2 274 48 00
\\nFax +32 2 274 48 35
\\nE-mail: commission@privacycommission.be
\\nWebSite: https://www.privacycommission.be

\\n

Art 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy\\ncommission

\\n

Bulgaria

\\n

Commission for Personal Data Protection
\\n2, Prof. Tsvetan Lazarov Blvd. Sofia 1592
\\nTel. +359 2 915 3580
\\nFax +359 2 915 3525
\\nE-mail: kzld@cpdp.bg
\\nWebSite: https://www.cpdp.bg

\\n

Art 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for\\nPersonal Data Protection
\\nArt 29 WP Alternate Member: Ms. Mariya MATEVA

\\n

Croatia

\\n

Croatian Personal Data Protection Agency
\\nMartićeva 14
\\n10000 Zagreb
\\nTel. +385 1 4609 000
\\nFax +385 1 4609 099
\\nE-mail: azop@azop.hr or info@azop.hr
\\nWebSite: https://www.azop.hr

\\n

Art 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection\\nAgency

\\n

Cyprus

\\n

Commissioner for Personal Data Protection
\\n1 Iasonos Street,
\\n1082 Nicosia
\\nP.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456
\\nFax +357 22 304 565
\\nE-mail: commissioner@dataprotection.gov.cy
\\nWebSite: https://www.dataprotection.gov.cy

\\n

Art 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU
\\nArt 29 WP Alternate Member: Mr. Constantinos GEORGIADES

\\n

Czech Republic

\\n

The Office for Personal Data Protection
\\nUrad pro ochranu osobnich udaju Pplk. Sochora 27
\\n170 00 Prague 7
\\nTel. +420 234 665 111
\\nFax +420 234 665 444
\\nE-mail: posta@uoou.cz
\\nWebSite: https://www.uoou.cz

\\n

Art 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data\\nProtection
\\nArt 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the\\nOffice

\\n

Denmark

\\n

Datatilsynet
\\nBorgergade 28, 5
\\n1300 Copenhagen K
\\nTel. +45 33 1932 00
\\nFax +45 33 19 32 18
\\nE-mail: dt@datatilsynet.dk
\\nWebSite: https://www.datatilsynet.dk

\\n

Art 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection\\nAgency (Datatilsynet)
\\nArt 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International\\nDivision at the Danish Data Protection Agency (Datatilsynet)

\\n

Estonia

\\n

Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon)
\\nVäike-Ameerika 19
\\n10129 Tallinn
\\nTel. +372 6274 135
\\nFax +372 6274 137
\\nE-mail: info@aki.ee
\\nWebSite: https://www.aki.ee/en

\\n

Art 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection\\nInspectorate
\\nArt 29 WP Alternate Member: Ms. Maarja Kirss

\\n

Finland

\\n

Office of the Data Protection Ombudsman
\\nP.O. Box 315
\\nFIN-00181 Helsinki Tel. +358 10 3666 700
\\nFax +358 10 3666 735
\\nE-mail: tietosuoja@om.fi
\\nWebSite: https://www.tietosuoja.fi/en

\\n

Art 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection\\nAuthority
\\nArt 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department

\\n

France

\\n

Commission Nationale de l’Informatique et des Libertés - CNIL
\\n8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02
\\nTel. +33 1 53 73 22 22
\\nFax +33 1 53 73 22 00
\\nWebSite: https://www.cnil.fr

\\n

Art 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL
\\nArt 29 WP Alternate Member: Ms. Florence RAYNAL

\\n

Germany

\\n

Die Bundesbeauftragte für den Datenschutz und die Informationsfreiheit
\\nHusarenstraße 30
\\n53117 Bonn
\\nTel. +49 228 997799 0; +49 228 81995 0
\\nFax +49 228 997799 550; +49 228 81995 550
\\nE-mail: poststelle@bfdi.bund.de
\\nWebSite: https://www.bfdi.bund.de

\\n

The competence for complaints is split among different data protection\\nsupervisory authorities in Germany.

\\n

Competent authorities can be identified according to the list provided under

\\n

https://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html

\\n

Art 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of\\nInformation
\\nArt 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the\\nfederal states

\\n

Greece

\\n

Hellenic Data Protection Authority
\\nKifisias Av. 1-3, PC 11523 Ampelokipi Athens
\\nTel. +30 210 6475 600
\\nFax +30 210 6475 628
\\nE-mail: contact@dpa.gr
\\nWebSite: https://www.dpa.gr

\\n

Art 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA
\\nArt 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director

\\n

Hungary

\\n

National Authority for Data Protection and Freedom of Information
\\nSzilágyi Erzsébet fasor 22/C H-1125 Budapest
\\nTel. +36 1 3911 400
\\nE-mail: peterfalvi.attila@naih.hu
\\nWebSite: https://www.naih.hu

\\n

Art 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for\\nData Protection and Freedom of Information
\\nArt 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National\\nAuthority for Data Protection and Freedom of Information

\\n

Ireland

\\n

Data Protection Commissioner
\\nCanal House Station Road Portarlington Co. Laois
\\nLo-Call: 1890 25 22 31
\\nTel. +353 57 868 4800
\\nFax +353 57 868 4757
\\nE-mail: info@dataprotection.ie
\\nWebSite: https://www.dataprotection.ie

\\n

Art 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner
\\nArt 29 WP Alternate Members: Mr. John O’DWYER, Deputy Commissioner; Mr. Dale\\nSUNDERLAND, Deputy Commissioner

\\n

Italy

\\n

Garante per la protezione dei dati personali
\\nPiazza di Monte Citorio, 121 00186 Roma
\\nTel. +39 06 69677 1
\\nFax +39 06 69677 785
\\nE-mail: garante@garanteprivacy.it
\\nWebSite: https://www.garanteprivacy.it

\\n

Art 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei\\ndati personali
\\nArt 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per\\nla protezione dei dati personali

\\n

Latvia

\\n

Data State Inspectorate Director: Ms. Daiga Avdejanova
\\nBlaumana str. 11/13-15
\\n1011 Riga
\\nTel. +371 6722 3131
\\nFax +371 6722 3556
\\nE-mail: info@dvi.gov.lv
\\nWebSite: https://www.dvi.gov.lv

\\n

Art 29 WP Alternate Member: Ms. Aiga BALODE

\\n

Lithuania

\\n

State Data Protection
\\nŽygimantų str. 11-6a 011042 Vilnius
\\nTel. + 370 5 279 14 45
\\nFax +370 5 261 94 94
\\nE-mail: ada@ada.lt
\\nWebSite: https://www.ada.lt

\\n

Art 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data\\nProtection Inspectorate
\\nArt 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of\\nComplaints Investigation and International Cooperation Division

\\n

Luxembourg

\\n

Commission Nationale pour la Protection des Données
\\n1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1
\\nFax +352 2610 60 29
\\nE-mail: info@cnpd.lu
\\nWebSite: https://www.cnpd.lu

\\n

Art 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour\\nla Protection des Données
\\nArt 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner

\\n

Malta

\\n

Office of the Data Protection Commissioner
\\nData Protection Commissioner: Mr. Joseph Ebejer
\\n2, Airways House
\\nHigh Street, Sliema SLM 1549 Tel. +356 2328 7100
\\nFax +356 2328 7198
\\nE-mail: commissioner.dataprotection@gov.mt
\\nWebSite: https://idpc.org.mt

\\n

Art 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection\\nCommissioner
\\nArt 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme\\nImplementation

\\n

Netherlands

\\n

Autoriteit Persoonsgegevens
\\nPrins Clauslaan 60
\\nP.O. Box 93374
\\n2509 AJ Den Haag/The Hague Tel. +31 70 888 8500
\\nFax +31 70 888 8501
\\nE-mail: info@autoriteitpersoonsgegevens.nl
\\nWebSite: https://autoriteitpersoonsgegevens.nl/nl

\\n

Art 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens

\\n

Poland

\\n

The Bureau of the Inspector General for the Protection of Personal Data – GIODO
\\nul. Stawki 2
\\n00-193 Warsaw
\\nTel. +48 22 53 10 440
\\nFax +48 22 53 10 441
\\nE-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl
\\nWebSite: https://www.giodo.gov.pl

\\n

Art 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection\\nof Personal Data

\\n

Portugal

\\n

Comissão Nacional de Protecção de Dados - CNPD
\\nR. de São. Bento, 148-3° 1200-821 Lisboa
\\nTel. +351 21 392 84 00
\\nFax +351 21 397 68 32
\\nE-mail: geral@cnpd.pt
\\nWebSite: https://www.cnpd.pt

\\n

Art 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção\\nde Dados
\\nArt 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA

\\n

Romania

\\n

The National Supervisory Authority for Personal Data Processing President: Mrs.\\nAncuţa Gianina Opre
\\nB-dul Magheru 28-30
\\nSector 1, BUCUREŞTI
\\nTel. +40 21 252 5599
\\nFax +40 21 252 5757
\\nE-mail: anspdcp@dataprotection.ro
\\nWebSite: https://www.dataprotection.ro

\\n

Art 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory\\nAuthority for Personal Data Processing
\\nArt 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and\\nCommunication Department

\\n

Slovakia

\\n

Office for Personal Data Protection of the Slovak Republic
\\nHraničná 12
\\n820 07 Bratislava 27
\\nTel.: + 421 2 32 31 32 14
\\nFax: + 421 2 32 31 32 34
\\nE-mail: statny.dozor@pdp.gov.sk
\\nWebSite: https://dataprotection.gov.sk

\\n

Art 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data\\nProtection of the Slovak Republic
\\nArt 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President

\\n

Slovenia

\\n

Information Commissioner
\\nMs. Mojca Prelesnik Zaloška 59
\\n1000 Ljubljana
\\nTel. +386 1 230 9730
\\nFax +386 1 230 9778
\\nE-mail: gp.ip@ip-rs.si
\\nWebSite: https://www.ip-rs.si

\\n

Art 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic\\nof Slovenia

\\n

Spain

\\n

Agencia de Protección de Datos
\\nC/Jorge Juan, 6
\\n28001 Madrid
\\nTel. +34 91399 6200
\\nFax +34 91455 5699
\\nE-mail: internacional@agpd.es
\\nWebSite: https://www.agpd.es

\\n

Art 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data\\nProtection Agency
\\nArt 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO

\\n

Sweden

\\n

Datainspektionen
\\nDrottninggatan 29 5th Floor
\\nBox 8114
\\n20 Stockholm
\\nTel. +46 8 657 6100
\\nFax +46 8 652 8652
\\nE-mail: datainspektionen@datainspektionen.se
\\nWebSite: https://www.datainspektionen.se

\\n

Art 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data\\nInspection Board
\\nArt 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser

\\n

United Kingdom

\\n

The Information Commissioner’s Office
\\nWater Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745
\\nE-mail: international.team@ico.org.uk
\\nWebSite: https://ico.org.uk

\\n

Art 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner
\\nArt 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner

\\n

EUROPEAN FREE TRADE AREA (EFTA)

\\n

Iceland

\\n

Icelandic Data Protection Agency
\\nRauðarárstíg 10
\\nReykjavík
\\nTel. +354 510 9600; Fax +354 510 9606
\\nE-mail: postur@personuvernd.is
\\nWebSite: https://www.personuvernd.is

\\n

Liechtenstein

\\n

Data Protection Office
\\nKirchstrasse 8, P.O. Box 684
\\n9490 Vaduz
\\nPrincipality of Liechtenstein Tel. +423 236 6090
\\nE-mail: info.dss@llv.li
\\nWebSite: https://www.datenschutzstelle.li

\\n

Norway

\\n

Datatilsynet
\\nData Protection Authority: Mr. Bjørn Erik THORN
\\nThe Data Inspectorate
\\nP.O. Box 8177 Dep 0034 Oslo
\\nTel. +47 22 39 69 00; Fax +47 22 42 23 50
\\nE-mail: postkasse@datatilsynet.no
\\nWebSite: https://www.datatilsynet.no

\\n

Switzerland

\\n

Data Protection and Information Commissioner of Switzerland
\\nEidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian\\nLobsiger
\\nFeldeggweg 1
\\n3003 Bern
\\nTel. +41 58 462 43 95; Fax +41 58 462 99 96
\\nE-mail: contact20@edoeb.admin.ch
\\nWebSite: https://www.edoeb.admin.ch

\\n

Footnotes

\\n
    \\n
  1. \\n

    https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;

    \\n
  2. \\n
  3. \\n

    https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;

    \\n
  4. \\n
\\n
\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Personal Data Protection Policy\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/personal-data-protection-policy.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [PERSONAL DATA PROTECTION POLICY]\\n - [Scope and Definitions]\\n - [Data Processing Principles]\\n - [Legal Grounds and Purposes ]\\n - [Access to Personal Data]\\n - [Third Parties]\\n - [International Transfers]\\n - [Rights of Data Subjects]\\n - [New Data Processing Activities]\\n - [Data Retention]\\n - [Security]\\n - [Data Breach Response Procedure]\\n - [ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY]\\n\\n[personal data protection policy]: #personal-data-protection-policy\\n[scope and definitions]: #scope-and-definitions\\n[data processing principles]: #data-processing-principles\\n[legal grounds and purposes]: #legal-grounds-and-purposes\\n[access to personal data]: #access-to-personal-data\\n[third parties]: #third-parties\\n[international transfers]: #international-transfers\\n[rights of data subjects]: #rights-of-data-subjects\\n[new data processing activities]: #new-data-processing-activities\\n[data retention]: #data-retention\\n[security]: #security\\n[data breach response procedure]: #data-breach-response-procedure\\n[annex 1 to the personal data protection policy]:\\n\\t#annex-1-to-the-personal-data-protection-policy\\n\\n# PERSONAL DATA PROTECTION POLICY\\n\\nEffective date: 05.25.2018 / May 25th 2018\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\nWe at PlayForm ltd. are committed to processing personal data securely and\\nrespecting privacy of the concerned individuals.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Version No. and date of the last update:

v. 1.0.

\\n

February 11th 2022

This policy shall be reviewed annually or each time when the changes in our data processing occur.
\\n\\n## Scope and Definitions\\n\\n1. **Scope.** This Personal Data Protection\\n Policy (the “**Policy**”) describes PlayForm ltd. internal rules for\\n personal data processing and protection. The Policy applies to PlayForm\\n ltd., including PlayForm ltd. employees and contractors (“**we**”, “**us**”,\\n “**our**”, “**PlayForm**”). The management of each entity is ultimately\\n responsible for the implementation of this policy, as well as to ensure, at\\n entity level, there are adequate and effective procedures in place for its\\n implementation and ongoing monitoring of its adherence. For the purposes of\\n this Policy, employees and contractors are jointly referred to as the\\n “**employees**”.\\n\\n2. **Privacy Manager.** Privacy Manager is an\\n employee of PlayForm responsible for personal data protection compliance\\n within PlayForm (the “**Privacy Manager**”). The Privacy Manager is in\\n charge of performing the obligations imposed by this Policy and supervising\\n other employees, who subject to this Policy, regarding their adherence to\\n this Policy. The Privacy Manager must be involved in all projects at an\\n early stage in order to take personal data protection aspects into account\\n as early as the planning phase.\\\\\\n The designated Privacy Manager at PlayForm ltd. is Nikola Hristov\\n .\\n\\n3. **Definitions.**\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Competent Supervisory Authoritymeans a public authority that is responsible for regulating and supervising personal data protection with regards to activities of PlayForm.
Data Breach

means a breach of the security and/or confidentiality leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Personal Data transmitted, stored or otherwise processed.

\\n

This includes but is not limited to e-mails sent to an incorrect or disclosed list of recipients, an unlawful publication of the Personal Data, loss or theft of physical records, and unauthorized access to personal information.

Data Controllermeans the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines (make a decision) the purposes and means of the processing of Personal Data.
Data Processormeans a natural or legal person, public authority, agency or other body which processes the Personal Data on behalf of the data controller.
Data Protection Lawsmean any laws and legal rules on personal data use and protection applicable to the activities of PlayForm, including, but not limited to the Regulation (EU) 2016/679 of the European Parliament and of the Council of April 27, 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation, GDPR).
Data Subject Request (DSR)means any request from the Data Subject and concerning their personal data and/or data subject rights.
Data Subjectmeans a natural person, whose Personal Data we process. Data Subjects include but are not limited to users, website visitors, employees, contractors, and partners of PlayForm.
Personal Datameans any information relating to an identified or identifiable Data Subject; a Data Subject can be identified by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or the combination of factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that Data Subject.
Processingmeans any operation or set of operations which is performed by PlayForm on Personal Data, such as collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
Standard Contractual Clausesmeans the European Commission Decision of February, 5 2010 on standard contractual clauses for the transfer of personal data to processors established in third countries under Directive 95/46/EC of the European Parliament and of the Council (2010/87/EU).
Third Partymeans a natural or legal person, who accesses the Personal Data for further processing and is not an employee, member or corporate affiliate of PlayForm. This definition does not apply to natural persons, who provide services to PlayForm as contractors on a regular basis.
Usermeans a Data Subject who uses our services provided on PlayForm website.
\\n\\n## Data Processing Principles\\n\\n1. PlayForm’s processing activities must be in line with the principles\\n specified in this Section. The Privacy Manager must make sure that\\n PlayForm’s compliance documentation, as well as data processing activities,\\n are compliant with the data protection principles.\\n\\n2. We must process the Personal Data in accordance with the following\\n principles:\\n\\n 1. Lawfully, fairly and in a transparent manner (**lawfulness, fairness and\\n transparency**). We shall always have a legal ground for the processing\\n (described in Section 3 of this Policy), collect the amount of data\\n adequate to the purpose and legal grounds, and we make sure the Data\\n Subjects are aware of the processing;\\n\\n 2. Collected for specified, explicit and legitimate purposes and not\\n further processed in a manner that is incompatible with those purposes\\n (**purpose limitation**). We must not process the Personal Data for the\\n purposes not specified in our compliance documentation without obtaining\\n specific approval of the Privacy Manager;\\n\\n 3. Adequate, relevant and limited to what is necessary for the purposes for\\n which they are processed (**data minimization**). We always make sure\\n the data we collect is not excessive and limited by the strict\\n necessity;\\n\\n 4. Accurate and, where necessary, kept up to date (**accuracy**). We\\n endeavor to delete inaccurate or false data about Data Subjects and make\\n sure we update the data. Data Subjects can ask us for a correction of\\n the Personal Data;\\n\\n 5. Kept in a form which permits identification of Data Subjects for no\\n longer than is necessary for the purposes for which the Personal Data\\n are processed (**storage period limitation**). The storage periods must\\n be limited as prescribed by Data Protection Laws and this Policy; and\\n\\n 6. Process in a manner that ensures appropriate security of the Personal\\n Data, including protection against unauthorized or unlawful processing\\n and accidental loss, destruction or damage, using appropriate technical\\n or organizational measures (**confidentiality, integrity, and\\n availability**).\\n\\n3. **Accountability.**\\n\\n 1. We shall be able to demonstrate our compliance with Data Protection Laws\\n (**accountability principle**). In particular, we must ensure and\\n document all relevant procedures, efforts, internal and external\\n consultations on personal data protection including:\\n\\n - the fact of appointing a person responsible for PlayForm’s data\\n protection compliance;\\n\\n - where necessary, a record of a Data Processing Impact Assessment;\\n\\n - developed and implemented notices, policies, and procedures, such as\\n Privacy Notice, this policy or Data Breach response procedure;\\n\\n - the fact of staff training on compliance with Data Protection laws;\\n and\\n\\n - assessment, implementation, and testing organizational and technical\\n data protection measures.\\n\\n 2. The Privacy Manager must maintain PlayForm’s Records of processing\\n activities, which is an accountability document that describes personal\\n data processing activities of PlayForm, prepared in accordance with Art.\\n 30 of the GDPR (the “**Records of processing activities**”). The Records\\n of processing activities must maintain, at least, the following\\n information about each processing activity:\\n\\n - contact details of PlayForm, the EU Representative, and, where\\n applicable, of the Data Protection Officer;\\n\\n - name of the activity, its purposes and legal basis along with, where\\n applicable, the legitimate interests of PlayForm;\\n\\n - data subjects and personal data categories concerned;\\n\\n - data retention periods;\\n\\n - general description of applicable security measures;\\n\\n - recipients, including joint controllers, processors, and contractors\\n involved, as well as the fact of the international data transfer\\n with the safeguards applied to the transfer;\\n\\n - where applicable, a reference to the Data Processing Impact\\n Assessment;\\n\\n - where applicable, a reference to the record of the data breach\\n occurred involving the personal data;\\n\\n - if PlayForm acts as a data processor, the information to be provided\\n includes the names and contact details of controllers, name and\\n contact details of controller's representative (if applicable),\\n categories of processing (activities), names of third countries or\\n international organizations that personal data are transferred to\\n (if applicable), safeguards for exceptional transfers of personal\\n data to third countries or international organizations (if\\n applicable), and general description of technical and organizational\\n security measures.\\n\\n## Legal Grounds and Purposes\\n\\n1. **Legal grounds.**\\n\\n 1. Each processing activity must have one of the lawful grounds specified\\n in this Section to process the Personal Data. If we do not have any of\\n the described, we cannot collect or further process the Personal Data.\\n\\n 2. If PlayForm is intended to use personal data for other purposes than\\n those specified in the Records of processing activities, the Privacy\\n Manager must evaluate, determine, and, if necessary, collect/record the\\n appropriate legal basis for it.\\n\\n 3. **Performance of the contract**. Where PlayForm has a contract with the\\n Data Subject, e.g., website’s Terms of Use or the employment contract,\\n and the contract requires the provision of personal data from the Data\\n Subject, the applicable legal ground will be the performance of the\\n contract.\\n\\n 4. **Consent**. To process the personal data based on the consent, we must\\n obtain the consent before the Processing and keep the evidence of the\\n consent with the records of Data Subject’s Personal Data. The Privacy\\n Manager must make sure that the consent collected from Data Subjects\\n meet the requirements of Data Protection Laws and this Policy. In\\n particular, the Privacy Manager must make sure that:\\n\\n - the Data Subject must be free to give or refuse to give consent.\\n\\n - the consent is in the form of an active indication from the Data\\n Subject, i.e., the consent checkbox must not be pre-ticked for the\\n user.\\n\\n - the request for the consent clearly articulates the purposes of the\\n processing, and other information specified in Subsection 6.2 is\\n available to the Data Subject.\\n\\n - the Data Subject must be free to give one’s consent or to revoke it.\\n\\n 5. **Legitimate interests**. We have the right to use personal data in our\\n ‘legitimate interests’. The interests can include the purposes that are\\n justified by the nature of our business activities, such as the\\n marketing analysis of personal data. For PlayForm to use legitimate\\n interests as a legal ground for the processing, the Privacy Manager must\\n make sure that:\\n\\n - the legitimate interest in the processing is clearly defined and\\n recorded in the Records of processing activities;\\n\\n - any envisaged risks to Data Subject rights and interests are\\n spotted. The examples of the risks can be found in Subsection 7.2.;\\n\\n - the Data Subjects have reasonable expectations about the processing,\\n and additional protective measures to address the risks are taken;\\n\\n - subject to the conditions of Subsection 6.7 (Right to object against\\n the processing), the Data Subject is provided with the opportunity\\n to opt-out from the processing for the described legitimate\\n interests.\\\\\\n If at least one of the above conditions is not met by PlayForm, the\\n Privacy Manager must choose and propose a different legal ground for\\n the processing, such as consent.\\n\\n 6. **Legal Compliance and Public Interest**. Besides the grounds specified\\n afore, we might be requested by the laws of the European Union or laws\\n of the EU Member State to process Personal Data of our Users. For\\n example, we can be required to collect, analyze, and monitor the\\n information of Users to comply with financial or labor laws.\\\\\\n Whenever we have such an obligation, we must make sure that:\\n\\n - we process personal data strictly in accordance with relevant legal\\n requirements;\\n\\n - we do not use or store the collected Personal Data for other\\n purposes than legal compliance; and\\n\\n - the Data Subjects are properly and timely informed about our\\n obligations, scope, and conditions of personal data processing.\\n\\nImportant: Where PlayForm has the law requirements of another country to process\\npersonal data, the Privacy Manager must propose using another legal ground for\\nthe processing under Data Protection Laws, such as legitimate interests or\\nconsent.\\n\\n## Access to Personal Data\\n\\n1. **Access to Personal Data.**\\n\\n 1. The employees must have access to the personal data on a “need-to-know”\\n basis. The data can be accessed only if it is strictly necessary to\\n perform one of the activities specified in the Records of processing\\n activities. The employees and contractors shall have access to the\\n Personal Data only if they have the necessary credentials for it.\\n\\n 2. Heads of the departments within PlayForm are responsible for their\\n employees’ access and processing of personal data. The heads must\\n maintain the list of employees that are entitled to access and process\\n personal data. The Privacy Manager shall have the right to review the\\n list and, where necessary, request the amendments to meet the\\n requirements of this Policy.\\n\\n 3. Heads of the departments within PlayForm must ensure that the employees\\n under their supervision are aware of the Data Protection Laws and comply\\n with the rules set in this Policy. To make sure our employees are able\\n to comply with the data protection requirements, we must provide them\\n with adequate data protection training.\\n\\n 4. All employees accessing personal data shall keep strict confidentiality\\n regarding the data they access. The employees that access personal data\\n must use only those means (software, premises, etc.) for the processing\\n that were prescribed by PlayForm. The data must not be disclosed or\\n otherwise made available out of the management instructions.\\n\\n 5. The employees within their competence must assist PlayForm’s\\n representatives, including the Privacy Manager, in any efforts regarding\\n compliance with Data Protection Laws and/or this Policy.\\n\\n 6. When an employee detects or believes there is suspicious activity, data\\n breach, non-compliance with Data Protection Laws and/or this Policy, or\\n a DSR was not routed to the competent department within PlayForm, the\\n employee must report such activity to the Privacy Manager.\\n\\n 7. Employees that are unsure about whether they can legitimately process or\\n disclose Personal Data must seek advice from the Privacy Manager before\\n taking any action.\\n\\n 8. Any occasional access to personal data for activities not specified in\\n the Records of processing activities is prohibited. If there is a strict\\n necessity for immediate access, the Privacy Manager must approve the\\n access first.\\n\\n## Third Parties\\n\\n1. Before sharing personal data with any person outside of PlayForm, the\\n Privacy Manager must ensure that this Third Party has an adequate data\\n protection level and provide sufficient data protection guarantees in\\n accordance with Data Protection Laws, including, but not limited to the\\n processorship requirements (Art. 28 of the GDPR) and international transfers\\n compliance (Section 5 of the GDPR). Where necessary, the Privacy Manager\\n must make sure that PlayForm enters into the appropriate data protection\\n contract with the third party.\\n\\n2. An employee can share personal data with third parties only if and to the\\n extent that was directly prescribed by the manager and specified in the\\n Records of processing activities.\\n\\n3. If we are required to delete, change, or stop the processing of the Personal\\n Data, we must ensure that the Third Parties, with whom we shared the\\n Personal Data, will fulfill these obligations accordingly.\\n\\n4. Whenever PlayForm is engaged as a data processor on behalf of another\\n entity, the Privacy Manager must make sure PlayForm complies with the\\n processorship obligation. In particular, the appropriate data processing\\n agreement in accordance with the Data Protection Laws must be in place. The\\n Privacy Manager must supervise the compliance with data processing\\n instructions from the controller, including regarding the scope of\\n processing activities, involvement of sub-processors, international\\n transfers, storage, and further disposal of processed personal data. The\\n personal data processed under the processor role must not be processed for\\n any other purposes than specified in the relevant instructions, agreement or\\n other legal act regulating the relationships with the controller.\\n\\n## International Transfers\\n\\n1. If we have the employees, contractors, corporate affiliates, or Data\\n Processors outside of the EEA, and we transfer Personal Data to them for the\\n processing, the Privacy Manager must make sure PlayForm takes all necessary\\n and appropriate safeguards in accordance with Data Protection Laws.\\n\\n2. The Privacy Manager must assess the safeguards available and propose to the\\n PlayForm’s management the appropriate safeguard for each international\\n transfer. The following regimes apply to the transfers of Personal Data\\n outside of the EU:\\n\\n - where the European Commission decides that the country has an adequate\\n level of personal data protection, the transfer does not require taking\\n additional safeguards. The full list of adequate jurisdictions can be\\n found on the relevant page of the European Commission’s website[^1].\\n\\n - to transfer Personal Data to our contractors or partners (Data\\n Processors or Controllers) in other third countries, we must conclude\\n Standard Contractual Clauses with that party. The draft version along\\n with the guidance can be found on the relevant page of the European\\n Commission’s website[^2];\\n\\n - if we have a corporate affiliate or an entity in other countries, we may\\n choose to adopt Binding Corporate Rules in accordance with Article 47 of\\n the GDPR or an approved code of conduct pursuant to Article 40 of the\\n GDPR;\\n\\n - we also can transfer Personal Data to entities that have an approved\\n certification in accordance with Article 42 of the GDPR, which certifies\\n an appropriate level of company’s data protection.\\n\\n[^1]:\\n https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en;\\n\\n[^2]:\\n https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en;\\n\\n3. As a part of the information obligations, PlayForm must inform the Data\\n Subjects that their Personal Data is being transferred to other countries,\\n as well as provide them with the information about the safeguards used for\\n the transfer. The information obligation is to be performed in accordance\\n with Subsection 6.2.\\n\\n4. In the exceptional cases (the “**Derogation**”), where we cannot apply the\\n safeguards mentioned afore and we need to transfer Personal Data, we must\\n take an explicit consent (active statement) from the Data Subject or it must\\n be strictly necessary for the performance of the contract between us and the\\n Data Subject, or other derogation conditions apply in accordance with the\\n Data Protection Laws. The Privacy Manager must pre-approve any Derogation\\n transfers and document the approved Derogations, as well as the rationale\\n for them.\\n\\n## Rights of Data Subjects\\n\\n1. **Our Responsibilities.**\\n\\n 1. Privacy Manager is ultimately responsible for handing all DSR received\\n by PlayForm. In the case of receiving any outstanding or unusual DSR,\\n the employee must seek advice from the Privacy Manager before taking any\\n action.\\n\\n 2. DSR Team within PlayForm is responsible for handling DSRs from PlayForm\\n Users on a daily basis. The Human Resources department is responsible\\n for handling the DSR from PlayForm employees.\\n\\n 3. All DSRs from the Users must be addressed at and answered from the\\n following e-mail address: DSR@PlayForm.LTD. DSR from the employees can\\n be addressed directly to the HR manager or at DSR@PlayForm.LTD.\\n\\n 4. The responsible employee must answer to the DSR within one (1) month\\n from receiving the request. If complying with the DSR takes more than\\n one month in time, the responsible employee must seek advice from the\\n Privacy Manager and, where necessary, inform the Data Subject about the\\n prolongation of the response term for up to two (2) additional months.\\n\\n 5. The responsible employee must analyze the received DSR for the following\\n criteria:\\n\\n - **Data Subject identification**. Before considering the DSR content,\\n the responsible employee must make sure the Data Subject is the same\\n person he/she claims to be. For this purpose, the connection between\\n the personal data records and the data subject must be established.\\n\\n - **Personal data**. The responsible employee must check whether\\n PlayForm has access to the personal data requested. If PlayForm does\\n not have the personal data under the control, the responsible\\n employee must inform the Data Subject, and, if possible, instruct on\\n the further steps on how to access the data in question;\\n\\n - **Content of the request**. Depending on the content of the DSR, the\\n responsible employee must define the type of the request and check\\n whether it meets the conditions prescribed by this Policy and Data\\n Protection Laws. The types of requests and the respective conditions\\n for each of them can be consulted in Subsections 6.3-6.9. If the\\n request does not meet the described criteria, the responsible\\n employee must refuse to comply with the DSR and inform the Data\\n Subject about the reasons for refusing;\\n\\n - **Free of charge**. Generally, all requests of Data Subjects and\\n exercises of their rights are free of charge. If the responsible\\n employee finds that the Data Subject exercises the rights in an\\n excessive or unfound way (e.g., intended to harm or interrupt\\n PlayForm’s business activities), the employee must seek the advice\\n from the Privacy Manager, and, upon receiving of the latter, may\\n either charge the Data Subject a reasonable fee or refuse to comply\\n with the request;\\n\\n - **Documenting**. Whenever PlayForm receives the DSR, the Privacy\\n Manager must make sure that the data and time, Data Subject, type of\\n the request and the decision made regarding it are well documented.\\n In the case of refusing to comply with the request, the reasons for\\n refusing must be documented as well;\\n\\n - **Recipients**. When addressing the DSR, the Privacy Manager must\\n make sure that all concerned recipients were informed the necessary\\n actions were taken.\\n\\n2. **The right to be informed.**\\n\\n 1. PlayForm must notify each Data Subject about the collection and further\\n processing of the Personal Data.\\n\\n 2. The information to be provided includes: the name and contact details of\\n PlayForm; generic purposes of and the lawful basis for the data\\n collection and further processing; categories of Personal Data\\n collected; recipients/categories of recipients; retention periods;\\n information about data subject rights, including the right to complain\\n to the competent Supervisory Authority; the consequences of the cases\\n where the data is necessary for the contract performance and the Data\\n Subject does not provide the required data; details of the safeguards\\n where personal data is transferred outside the EEA; and any third-party\\n source of the personal data, without specification for the particular\\n case (except if we receive the direct request from the Data Subject).\\n\\n 3. The Users must be informed by the Privacy Policy accessible at\\n PlayForm’s website and provided during the user registration. The\\n employees and contractors must be informed by a standalone employee\\n privacy statement, which explains the details described in p. 6.2.2 in a\\n case-based manner, describing the particular purposes and activities.\\n\\n 4. PlayForm must inform Data Subjects about data processing, including any\\n new processing activity introduced at PlayForm within the following\\n term:\\n\\n - if personal data is collected from the data subject directly, the\\n data subject must be informed at the time we collect Personal Data\\n from the Data Subjects by showing the Data Subject our privacy\\n statement;\\n\\n - if the personal data is collected from other sources: (a) within one\\n month from collecting it; (b) if the personal data are to be used\\n for communication with the data subject, at the latest at the time\\n of the first communication to that data subject; or (c) if a\\n disclosure to another recipient is envisaged, at the latest when the\\n personal data are first disclosed.\\n\\n - upon the request of the Data Subject; and\\n\\n - within one (1) month after any change of our personal data\\n practices, change of the controller of Personal Data or after\\n significant changes in our privacy statements.\\n\\n3. **The right to access the information.**\\n\\n 1. The Data Subject must be provided only with those personal data records\\n specified in the request. If the Data Subject requests access to all\\n personal data concerning her or him, the employee must seek advice from\\n the Privacy Manager first, to make sure all personal data of the Data\\n Subject is mapped and provided.\\n\\n 2. A Data Subject has the right to:\\n\\n - learn if we process the Data Subject’s Personal Data;\\n\\n - obtain disclosure regarding aspects of the processing, including\\n detailed and case-specific information on purposes, categories of\\n Personal Data, recipients/categories of recipients, retention\\n periods, information about one’s rights, details of the relevant\\n safeguards where personal data is transferred outside the EEA, and\\n any third-party source of the personal data; and\\n\\n - obtain a copy of the Personal Data undergoing processing upon the\\n request.\\n\\n4. **The right to verify the Data Subject’s information\\n and seek its rectification.** The information we collect can\\n be/become inaccurate or out-of-date (e.g., mistakes in nationality, date of\\n birth, info on debts, economic activities). If we reveal that the Personal\\n Data is inaccurate or the Data Subject requests us to do so, we must ensure\\n that we correct all mistakes and update the relevant information.\\n\\n5. **The right to restrict processing.**\\n\\n 1. The restriction of processing allows Data Subjects to temporarily stop\\n the use of their information to prevent the possible harm caused by such\\n use.\\n\\n 2. This right applies when the Data Subject:\\n\\n - contests the accuracy of the Personal Data;\\n\\n - believes that we process the Personal Data unlawfully; and\\n\\n - objects against the processing and wants us not to process Personal\\n Data while we are considering the request.\\n\\n 3. In the case of receiving the restriction request, we must not process\\n Personal Data in question for any other purpose than storing it or for\\n legal compliance purposes until the circumstances of restriction cease\\n to exist.\\n\\n6. **The right to withdraw the consent.** For\\n the activities that require consent, the Data Subject can revoke their\\n consent at any time. If the Data Subject revokes the consent, we must record\\n the changes and must not process the Personal Data for consent-based\\n purposes. The withdrawal of consent does not affect the lawfulness of the\\n processing done before the withdrawal.\\n\\n7. **The right to object against the\\n processing.**\\n\\n 1. If we process the information in our legitimate interests, e.g., for\\n direct marketing emails or for our marketing research purposes, the Data\\n Subject can object against the processing.\\n\\n 2. In the case of receiving the objection request case, we must consider\\n Data Subject’s request and, where we do not have compelling interests,\\n stop the processing for the specified purposes. If the personal data is\\n still to be processed for other purposes, the Privacy Manager must make\\n sure that the database has a record that the data cannot be further\\n processed for the objected activities.\\n\\n 3. The objection request can be refused only if the personal data in\\n question is used for scientific/historical research or statistical\\n purposes and was appropriately protected, i.e., by anonymization or\\n pseudonymization techniques.\\n\\n8. **Right to erasure/to be forgotten.**\\n\\n 1. The Data Subjects have the right to request us to erase their Personal\\n Data if one of the following conditions are met:\\n\\n - Personal Data is no longer necessary for the purposes of collection.\\n For example, a user has provided personal data for a one-time\\n activity, such as data validation or participation in a contest, and\\n the purpose is already fulfilled;\\n\\n - the Data Subject revokes one’s consent or objects to the processing\\n (where applicable) and there is no other legal ground for the\\n processing; or\\n\\n - we process the Personal Data unlawfully or its erasure is required\\n by the applicable legislation of the European Union or one of the\\n Member countries of the European Union.\\n\\n 2. Conditions, under which we have the right to refuse the erasure:\\n\\n - Personal Data is processed for scientific/historical research or\\n statistical purposes and is appropriately protected, i.e.,\\n pseudonymized or anonymized;\\n\\n - Personal Data is still necessary for legal compliance (e.g.,\\n financial or labor laws compliance).\\n\\n 3. Only those personal data records must be deleted that were specified in\\n the request. If the Data Subject requests the deletion of all personal\\n data concerning her or him, the employee must seek advice from the\\n Privacy Manager first, to make sure all the data about the Data Subject\\n is mapped and can be deleted.\\n\\n 4. If the User still has an account with us and requests the erasure of\\n information necessary for maintaining the account, we must inform the\\n User that the erasure will affect user experience or can lead to the\\n closure of the account.\\n\\n9. **Data portability.**\\n\\n 1. Data Subjects can ask us to transfer all the Personal Data and/or its\\n part in a machine-readable format to a third party. This right applies\\n in two cases:\\n\\n - personal data was collected for the purpose of provision of our\\n services (performance of the contract); or\\n\\n - collected based on consent.\\n\\n 2. To determine whether one of the p.6.9.1 conditions are met, the employee\\n must seek advice from the Privacy Manager and check the applicable legal\\n basis in the Records of processing activities. If the answer is\\n negative, the request can be refused by PlayForm, and the Privacy\\n Manager must decide whether to comply with the request on a voluntary\\n basis.\\n\\n 3. To comply with the request, the responsible employee must consolidate\\n requested Personal Data and send the data in the format we are usually\\n working with to the requested organization. The Data Subject must\\n provide the necessary contact details of the organization.\\n\\n## New Data Processing Activities\\n\\n1. **Notification to Privacy Manager.**\\n\\n 1. Before introducing any new activity that involves the processing of\\n personal data, an employee responsible for its implementation must\\n inform the Privacy Manager.\\n\\n 2. Upon receiving information about a new activity, Privacy Manager must:\\n\\n - determine whether the data processing impact assessment (DPIA)\\n and/or the consultation with the Supervisory Authority is necessary.\\n If the answer is positive, the Privacy Manager must make sure the\\n DPIA is conducted and/or the Supervisory Authority is consulted in\\n accordance with the requirements of this Section and Data Protection\\n Laws;\\n\\n - determine the legal basis for the processing and, where necessary,\\n take further action for its fixation;\\n\\n - make sure the processing activity is done in accordance with this\\n Policy, other PlayForm’s policies, as well as the Data Protection\\n Laws;\\n\\n - add the processing activity to the Records of processing activities;\\n\\n - amend the privacy information statements and, where necessary,\\n inform the concerned Data Subject accordingly.\\n\\n2. **Data Processing Impact Assessment.**\\n\\n 1. To make sure that our current or prospective processing activities do\\n not/will not violate the Data Subjects’ rights, PlayForm must, where\\n required by Data Protection Laws, conduct the Data Processing Impact\\n Assessment (DPIA), a risk-based assessment of the processing and search\\n for the measures to mitigate the risks. The Privacy Manager must make\\n sure the DPIA is conducted in accordance with this Section.\\n\\n 2. The Privacy Manager, where necessary, involving the competent employees\\n and/or external advisors, must conduct a DPIA if at least one of the\\n following conditions are met:\\n\\n - the processing involves the use of new technologies, such as the\\n Artificial Intelligence, use of connected and autonomous devices,\\n etc. that creates certain legal, economic or similar effects to the\\n Data Subject;\\n\\n - we systematically assess and evaluate personal aspects of the Data\\n Subjects based on automated profiling, assigning the personal\\n score/rate, and create legal or similar effects for the Data Subject\\n by this activity;\\n\\n - we process on a large-scale sensitive data, which includes Personal\\n Data relating to criminal convictions and offences, the data about\\n vulnerable data subjects, the personal data revealing racial or\\n ethnic origin, political opinions, religious or philosophical\\n beliefs, or trade union membership, and the processing of genetic\\n data, biometric data for the purpose of uniquely identifying a\\n natural person, data concerning health or data concerning a natural\\n person’s sex life or sexual orientation;\\n\\n - we collect or process Personal Data from a publicly accessible area\\n or public sources on a large scale, or combine or match two\\n different data sets; and\\n\\n - the Supervisory Authority in its public list requires conducting a\\n DPIA for a certain type of activity we are involved in. The list of\\n processing activities requiring conducting DPIA can be found on the\\n website of each Supervisory Authority.\\n\\n 3. The assessment shall contain at least the following details:\\n\\n - a systematic description of the processing operations and the\\n purposes of the processing, including, where applicable, the\\n legitimate interest pursued by us. The description must include the\\n envisaged data categories and data subjects concerned, the scale of\\n processing activities, such as its frequency, volume, envisaged\\n number of records, etc.; recipients of the data, retention periods\\n and, where applicable, international transfers;\\n\\n - an assessment of the necessity and proportionality of the processing\\n operations in relation to the purposes. The DPIA must explain\\n whether the activity is necessary for the purpose and whether the\\n purpose can be achieved by less intrusive methods;\\n\\n - an assessment of the risks to the rights and freedoms of data\\n subjects, including the rights of Data Subjects regarding their\\n Personal Data.\\n\\n - The examples of risks are the processing which could lead to\\n physical, material or non-material damage, in particular: where the\\n processing may give rise to discrimination, identity theft or fraud,\\n financial loss, damage to the reputation, loss of confidentiality of\\n personal data protected by professional secrecy, unauthorized\\n reversal of pseudonymization, or any other significant economic or\\n social disadvantage; where data subjects might be deprived of their\\n rights and freedoms or prevented from exercising control over their\\n personal data; where personal data are processed which reveal racial\\n or ethnic origin, political opinions, religion or philosophical\\n beliefs, trade union membership, and the processing of genetic data,\\n data concerning health or data concerning sex life or criminal\\n convictions and offences or related security measures; where\\n personal aspects are evaluated, in particular analyzing or\\n predicting aspects concerning performance at work, economic\\n situation, health, personal preferences or interests, reliability or\\n behavior, location or movements, in order to create or use personal\\n profiles; where personal data of vulnerable natural persons, in\\n particular of children, are processed; or where processing involves\\n a large amount of personal data and affects a large number of data\\n subjects; and\\n\\n - the measures to address the risks, including safeguards, security\\n measures, and mechanisms to ensure the protection of personal data\\n and to demonstrate compliance with this Regulation.\\n\\n 4. Where the DPIA did not provide how to effectively address the risks, the\\n Privacy Manager must initiate the consultation with the competent\\n Supervisory Authority to receive help with searching for the solution.\\n In this case, PlayForm must not conduct the activity before the\\n Supervisory Authority approves the processing activity in question.\\n\\n## Data Retention\\n\\n1. **General Rule.**\\n\\n 1. The Privacy Manager must make sure that PlayForm clearly defined the\\n data storage periods and/or criteria for determining the storage periods\\n for each processing activity it has. The periods for each processing\\n activity must be specified in the Records of processing activities.\\n\\n 2. Each department within PlayForm must comply with the data storage\\n periods in accordance with the retention schedule provided in Records of\\n processing activities. The Privacy Manager must supervise each\\n department and make sure they comply with this requirement.\\n\\n 3. After the storage period ends, the personal data must be removed from\\n the disposal of the department responsible for the processing or, in\\n cases where the data is not needed for any other purposes, destroyed\\n completely, including from back-up copies and other media.\\n\\n 4. Whenever the storage period for a processing activity has ended, but the\\n personal data processed is necessary for other processing purposes, the\\n department manager must make sure that the personal data is not used for\\n the ceased processing activity, and the responsible employees do not\\n have the access to it unless required for any other activity.\\n\\n2. **Exemptions.** The rules specified in\\n Subsection 8.1 have the following exceptions:\\n\\n 1. **Business needs**. Data retention periods can be prolonged, but no\\n longer than 60 days, in the case that the data deletion will interrupt\\n or harm our ongoing business. The Privacy Manager must approve any\\n unforeseen prolongation;\\n\\n 2. **Technical impossibility**. Some information is technically impossible\\n or disproportionally difficult to delete. For example, deletion of the\\n information may lead to breach of system integrity, or it is impossible\\n to delete the information from the backup copies. In such a case, the\\n information can be further stored, subject to the approval by the\\n Privacy Manager and making respective amendments to the Records of\\n processing activities; and\\n\\n 3. **Anonymization**. The Personal Data can be further processed for any\\n purposes (e.g., marketing) if we fully anonymize these data after the\\n retention period is expired. This means that all personal identifiers\\n and connections to them will be deleted from the data. To consider\\n Personal Data anonymous, it must be impossible to reidentify the Data\\n Subject from the data set.\\n\\n## Security\\n\\n1. Each department within PlayForm shall take all appropriate technical and\\n organizational measures that protect against unauthorized, unlawful, and/or\\n accidental access, destruction, modification, blocking, copying,\\n distribution, as well as from other illegal actions of unauthorized persons\\n regarding the personal data under their responsibility.\\n\\n2. The employee responsible for the supervision after the security of personal\\n data within PlayForm shall be DSR Officer. This person implements the\\n guidelines and other specifications on data protection and information\\n security in his area of responsibility. He/she advises PlayForm management\\n on the planning and implementation of information security in PlayForm, and\\n must be involved in all projects at an early stage in order to take\\n security-related aspects into account as early as the planning phase.\\n\\n## Data Breach Response Procedure\\n\\n1. **Response Team.**\\n\\n 1. In case of revealing the Data Breach, CEO of PlayForm shall urgently\\n form the Data Breach Response Team (the “**Response Team**”), which will\\n handle the Data Breach, notify the appropriate persons, and mitigate its\\n risks.\\n\\n 2. The Response Team must be а multi-disciplinary group headed by CEO of\\n PlayForm and comprised of the Privacy Manager, privacy laws specialist\\n (whether internal or external), and knowledgeable and skilled\\n information security specialists within PlayForm or outsourcing\\n professionals, if necessary. The team must ensure that all employees and\\n engaged contractors/processors adhere to this Policy and provide an\\n immediate, effective, and skillful response to any suspected/alleged or\\n actual Data Breach affecting PlayForm.\\n\\n 3. The potential members of the Response Team must be prepared to respond\\n to а Data Breach. The Response Team shall perform all the\\n responsibilities of PlayForm mentioned in this Policy. The duties of the\\n Response Team are:\\n\\n - to communicate the Data Breach to the competent Supervisory\\n Authority(-ies);\\n\\n - in case of high risk to the rights and freedoms of Data Subjects, to\\n communicate the Data Breach to the Data Subject;\\n\\n - if PlayForm obtain data from any third party as a processor, and a\\n Data Breach involves obtained data, to inform the third parties\\n about the Data Breach;\\n\\n - to communicate PlayForm’s contractors or any other third parties\\n that process the Personal Data involved in the Data Breach; and\\n\\n - to take all appropriate technical and organizational measures to\\n cease the Data Breach and mitigate its consequences;\\n\\n - to record the fact of the Data Breach in the Records of processing\\n activities and file an internal data breach report that describes\\n the event.\\n\\n 4. The Response Team shall perform its duties until all the necessary\\n measures required by this Policy are taken.\\n\\n2. **Notification to Supervisory Authority.**\\n\\n 1. PlayForm shall inform the Competent Supervisory Authority about the Data\\n Breach without undue delay and, where it is possible, not later than 72\\n hours after having become aware of the Data Breach.\\n\\n 2. The Competent Supervisory Authority shall be determined by the residence\\n of the Data Subjects, whose information was involved in the Data Breach.\\n If the Data Breach concerns the Personal Data of Data Subjects from more\\n than one country, PlayForm shall inform all Competent Supervisory\\n Authorities.\\n\\n 3. To address the notification to the authority, the Response Team should\\n use Annex 1 to this Policy. Annex 1 contains all the necessary contact\\n information of the EU supervisory authorities. If the Data Breach\\n concerns Data Subjects from other than the EU countries, the Response\\n Team shall ask a competent privacy specialist for advice.\\n\\n 4. The notification to the Competent Supervisory Authority shall contain,\\n at least, following information:\\n\\n - **the nature of the Data Breach** including where possible, the\\n categories and an approximate number of Data Subjects and Personal\\n Data records concerned;\\n\\n - the name and contact details of the **Response Team, Privacy Manager\\n or, if not applicable, of the CEO**;\\n\\n - the likely consequences of the Data Breach. Explain PlayForm’s point\\n of view on the purposes and possible further risks of the Data\\n Breach. E.g., the Personal Data may be stolen for the further\\n **sale, fraud activities or blackmailing the concerned Data\\n Subjects**; and\\n\\n - **the measures taken or proposed** to be taken by PlayForm to\\n address the Data Breach, including, where appropriate, measures to\\n mitigate its possible adverse effects.\\n\\n 5. To file a notification, the Response Team should use PlayForm’s Data\\n Breach Notification Form to the Supervisory Authority.\\n\\n3. **Notifications to Data Subjects.**\\n\\n 1. When the Data Breach is likely to result in a high risk to the rights\\n and freedoms of Data Subjects (e.g., stealing of funds, assets,\\n proprietary information), we must also communicate the Data Breach to\\n the concerned Data Subjects without undue delay. The Privacy Manager\\n must determine if there is a high risk based on the risk factors\\n specified in Subsection 7.2.3 of this Policy.\\n\\n 2. The notification shall contain the following information:\\n\\n - description of the Data Breach - what happened and what led to the\\n Data Breach, such as **a security breach, employee’s negligence,\\n error in the system work**. If the Response Team decided not to\\n disclose the causes of the Data Breach, then this clause must not be\\n mentioned;\\n\\n - the measures taken by PlayForm regarding the Data Breach, including\\n **security measures, internal investigations, and supervisory\\n authority notice**;\\n\\n - recommendations for the concerned Data Subjects how to mitigate\\n risks and possible consequences, such as **guidelines on how to\\n restore access to an account, preventing measures (change of a\\n password)**; and\\n\\n - the contact information of the Response Team or one of its members.\\n\\n 3. The notification to the Data Subjects should be carried out by the\\n **email letter** or, where it is impossible to use the email, by other\\n available means of communication.\\n\\n 4. **Exemptions**. We do not have to send the notification to the Data\\n Subjects if any of the following conditions are met:\\n\\n - PlayForm has implemented appropriate technical and organizational\\n protection measures, and those measures were applied to the Personal\\n Data affected by the Data Breach, in particular, those that leave\\n the Personal Data inaccessible to any person who is not authorized\\n to access it, such as encryption;\\n\\n - PlayForm has taken subsequent measures which ensure that the high\\n risk to the rights and freedoms of Data Subjects referred to in this\\n section is no longer likely to materialize; or\\n\\n - it would involve a disproportionate effort to communicate with every\\n concerned Data Subject. In such a case, there shall instead be a\\n public communication or similar measure whereby the Data Subjects\\n are informed in an equally effective manner.\\n\\nIn the case we apply one of the exemptions, we **must document** the\\ncircumstances, reason for not informing, and actions taken to meet one of the\\nexemptions.\\n\\n4. **Communication with Third Parties.**\\n\\n 1. In the case a Data Breach concerns the Personal Data shared with us or\\n processed by us on behalf of a Third Party, we must also notify the\\n Third Party about it within 24 hours. If we process the Personal Data as\\n a Data Processor, the notification of the Third Party does not exempt us\\n from the duty to mitigate the Data Breach consequences, but we must not\\n inform the Competent Supervisory Authority and Data Subjects.\\n\\n 2. In case of receiving the notification about the Data Breach from the\\n Data Processor or other Third Parties that have access to the Personal\\n Data, CEO of PlayForm shall, in accordance with this Section:\\n\\n - form the Response Team;\\n\\n - request the Third Party to send the information mentioned in\\n Subsections 10.2-3 of this Policy;\\n\\n - where necessary, inform the Competent Supervisory Authority(-ies)\\n and Data Subjects; and\\n\\n - perform other steps of the Data Breach response procedure.\\n\\n**List of Persons Briefed on Personal Data Protection Policy**\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Full Name

Status

Date

Nikola Hristov Briefed05.25.2018
\\n\\n## ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY\\n\\n**European National Data Protection Authorities**\\n\\n**Austria**\\n\\nÖsterreichische Datenschutzbehörde\\\\\\nHohenstaufengasse 3\\\\\\n1010 Wien\\\\\\nTel. +43 1 531 15 202525\\\\\\nFax +43 1 531 15 202690\\\\\\nE-mail: dsb@dsb.gv.at\\\\\\nWebSite: https://www.dsb.gv.at\\n\\nArt 29 WP Member: Dr Andrea JELINEK, Director, Österreichische\\nDatenschutzbehörde\\n\\n**Belgium**\\n\\nCommission de la protection de la vie privée\\\\\\nCommissie voor de bescherming van de persoonlijke levenssfeer\\\\\\nRue de la Presse 35 / Drukpersstraat 35 1000 Bruxelles / 1000 Brussel\\\\\\nTel. +32 2 274 48 00\\\\\\nFax +32 2 274 48 35\\\\\\nE-mail: commission@privacycommission.be\\\\\\nWebSite: https://www.privacycommission.be\\n\\nArt 29 WP Vice-President: Willem DEBEUCKELAERE, President of the Belgian Privacy\\ncommission\\n\\n**Bulgaria**\\n\\nCommission for Personal Data Protection\\\\\\n2, Prof. Tsvetan Lazarov Blvd. Sofia 1592\\\\\\nTel. +359 2 915 3580\\\\\\nFax +359 2 915 3525\\\\\\nE-mail: kzld@cpdp.bg\\\\\\nWebSite: https://www.cpdp.bg\\n\\nArt 29 WP Member: Mr. Ventsislav KARADJOV, Chairman of the Commission for\\nPersonal Data Protection\\\\\\nArt 29 WP Alternate Member: Ms. Mariya MATEVA\\n\\n**Croatia**\\n\\nCroatian Personal Data Protection Agency\\\\\\nMartićeva 14\\\\\\n10000 Zagreb\\\\\\nTel. +385 1 4609 000\\\\\\nFax +385 1 4609 099\\\\\\nE-mail: azop@azop.hr or info@azop.hr\\\\\\nWebSite: https://www.azop.hr\\n\\nArt 29 WP Member: Mr. Anto RAJKOVAČA, Director of the Croatian Data Protection\\nAgency\\n\\n**Cyprus**\\n\\nCommissioner for Personal Data Protection\\\\\\n1 Iasonos Street,\\\\\\n1082 Nicosia\\\\\\nP.O. Box 23378, CY-1682 Nicosia Tel. +357 22 818 456\\\\\\nFax +357 22 304 565\\\\\\nE-mail: commissioner@dataprotection.gov.cy\\\\\\nWebSite: https://www.dataprotection.gov.cy\\n\\nArt 29 WP Member: Ms. Irene LOIZIDOU NIKOLAIDOU\\\\\\nArt 29 WP Alternate Member: Mr. Constantinos GEORGIADES\\n\\n**Czech Republic**\\n\\nThe Office for Personal Data Protection\\\\\\nUrad pro ochranu osobnich udaju Pplk. Sochora 27\\\\\\n170 00 Prague 7\\\\\\nTel. +420 234 665 111\\\\\\nFax +420 234 665 444\\\\\\nE-mail: posta@uoou.cz\\\\\\nWebSite: https://www.uoou.cz\\n\\nArt 29 WP Member: Ms. Ivana JANŮ, President of the Office for Personal Data\\nProtection\\\\\\nArt 29 WP Alternate Member: Mr. Ivan PROCHÁZKA, Adviser to the President of the\\nOffice\\n\\n**Denmark**\\n\\nDatatilsynet\\\\\\nBorgergade 28, 5\\\\\\n1300 Copenhagen K\\\\\\nTel. +45 33 1932 00\\\\\\nFax +45 33 19 32 18\\\\\\nE-mail: dt@datatilsynet.dk\\\\\\nWebSite: https://www.datatilsynet.dk\\n\\nArt 29 WP Member: Ms. Cristina Angela GULISANO, Director, Danish Data Protection\\nAgency (Datatilsynet)\\\\\\nArt 29 WP Alternate Member: Mr. Peter FOGH KNUDSEN, Head of International\\nDivision at the Danish Data Protection Agency (Datatilsynet)\\n\\n**Estonia**\\n\\nEstonian Data Protection Inspectorate (Andmekaitse Inspektsioon)\\\\\\nVäike-Ameerika 19\\\\\\n10129 Tallinn\\\\\\nTel. +372 6274 135\\\\\\nFax +372 6274 137\\\\\\nE-mail: info@aki.ee\\\\\\nWebSite: https://www.aki.ee/en\\n\\nArt 29 WP Member: Mr. Viljar PEEP, Director General, Estonian Data Protection\\nInspectorate\\\\\\nArt 29 WP Alternate Member: Ms. Maarja Kirss\\n\\n**Finland**\\n\\nOffice of the Data Protection Ombudsman\\\\\\nP.O. Box 315\\\\\\nFIN-00181 Helsinki Tel. +358 10 3666 700\\\\\\nFax +358 10 3666 735\\\\\\nE-mail: tietosuoja@om.fi\\\\\\nWebSite: https://www.tietosuoja.fi/en\\n\\nArt 29 WP Member: Mr. Reijo AARNIO, Ombudsman of the Finnish Data Protection\\nAuthority\\\\\\nArt 29 WP Alternate Member: Ms. Elisa KUMPULA, Head of Department\\n\\n**France**\\n\\nCommission Nationale de l'Informatique et des Libertés - CNIL\\\\\\n8 rue Vivienne, CS 30223 F-75002 Paris, Cedex 02\\\\\\nTel. +33 1 53 73 22 22\\\\\\nFax +33 1 53 73 22 00\\\\\\nWebSite: https://www.cnil.fr\\n\\nArt 29 WP Member: Ms. Isabelle FALQUE-PIERROTIN, President of CNIL\\\\\\nArt 29 WP Alternate Member: Ms. Florence RAYNAL\\n\\n**Germany**\\n\\nDie Bundesbeauftragte für den Datenschutz und die Informationsfreiheit\\\\\\nHusarenstraße 30\\\\\\n53117 Bonn\\\\\\nTel. +49 228 997799 0; +49 228 81995 0\\\\\\nFax +49 228 997799 550; +49 228 81995 550\\\\\\nE-mail: poststelle@bfdi.bund.de\\\\\\nWebSite: https://www.bfdi.bund.de\\n\\nThe competence for complaints is split among different data protection\\nsupervisory authorities in Germany.\\n\\nCompetent authorities can be identified according to the list provided under\\n\\nhttps://www.bfdi.bund.de/EN/Service/Anschriften/Laender/Laender-node.html\\n\\nArt 29 WP Member: Ms. Andrea VOSSHOFF, Federal Commissioner for Freedom of\\nInformation\\\\\\nArt 29 WP Alternate Member: Prof. Dr. Johannes CASPAR, representative of the\\nfederal states\\n\\n**Greece**\\n\\nHellenic Data Protection Authority\\\\\\nKifisias Av. 1-3, PC 11523 Ampelokipi Athens\\\\\\nTel. +30 210 6475 600\\\\\\nFax +30 210 6475 628\\\\\\nE-mail: contact@dpa.gr\\\\\\nWebSite: https://www.dpa.gr\\n\\nArt 29 WP Member: Mr. Konstantinos Menoudakos, President of the Hellenic DPA\\\\\\nArt 29 WP Alternate Member: Dr. Vasilios ZORKADIS, Director\\n\\n**Hungary**\\n\\nNational Authority for Data Protection and Freedom of Information\\\\\\nSzilágyi Erzsébet fasor 22/C H-1125 Budapest\\\\\\nTel. +36 1 3911 400\\\\\\nE-mail: peterfalvi.attila@naih.hu\\\\\\nWebSite: https://www.naih.hu\\n\\nArt 29 WP Member: Dr Attila PÉTERFALVI, President of the National Authority for\\nData Protection and Freedom of Information\\\\\\nArt 29 WP Alternate Member: Mr. Endre Győző SZABÓ Vice-president of the National\\nAuthority for Data Protection and Freedom of Information\\n\\n**Ireland**\\n\\nData Protection Commissioner\\\\\\nCanal House Station Road Portarlington Co. Laois\\\\\\nLo-Call: 1890 25 22 31\\\\\\nTel. +353 57 868 4800\\\\\\nFax +353 57 868 4757\\\\\\nE-mail: info@dataprotection.ie\\\\\\nWebSite: https://www.dataprotection.ie\\n\\nArt 29 WP Member: Ms. Helen DIXON, Data Protection Commissioner\\\\\\nArt 29 WP Alternate Members: Mr. John O'DWYER, Deputy Commissioner; Mr. Dale\\nSUNDERLAND, Deputy Commissioner\\n\\n**Italy**\\n\\nGarante per la protezione dei dati personali\\\\\\nPiazza di Monte Citorio, 121 00186 Roma\\\\\\nTel. +39 06 69677 1\\\\\\nFax +39 06 69677 785\\\\\\nE-mail: garante@garanteprivacy.it\\\\\\nWebSite: https://www.garanteprivacy.it\\n\\nArt 29 WP Member: Mr. Antonello SORO, President of Garante per la protezione dei\\ndati personali\\\\\\nArt 29 WP Alternate Member: Ms. Giuseppe BUSIA, Secretary General of Garante per\\nla protezione dei dati personali\\n\\n**Latvia**\\n\\nData State Inspectorate Director: Ms. Daiga Avdejanova\\\\\\nBlaumana str. 11/13-15\\\\\\n1011 Riga\\\\\\nTel. +371 6722 3131\\\\\\nFax +371 6722 3556\\\\\\nE-mail: info@dvi.gov.lv\\\\\\nWebSite: https://www.dvi.gov.lv\\n\\nArt 29 WP Alternate Member: Ms. Aiga BALODE\\n\\n**Lithuania**\\n\\nState Data Protection\\\\\\nŽygimantų str. 11-6a 011042 Vilnius\\\\\\nTel. + 370 5 279 14 45\\\\\\nFax +370 5 261 94 94\\\\\\nE-mail: ada@ada.lt\\\\\\nWebSite: https://www.ada.lt\\n\\nArt 29 WP Member: Mr. Raimondas Andrijauskas, Director of the State Data\\nProtection Inspectorate\\\\\\nArt 29 WP Alternate Member: Ms. Neringa KAKTAVIČIŪTĖ-MICKIENĖ, Head of\\nComplaints Investigation and International Cooperation Division\\n\\n**Luxembourg**\\n\\nCommission Nationale pour la Protection des Données\\\\\\n1, avenue du Rock’n’roll L-4361 Esch-sur-Alzette Tel. +352 2610 60 1\\\\\\nFax +352 2610 60 29\\\\\\nE-mail: info@cnpd.lu\\\\\\nWebSite: https://www.cnpd.lu\\n\\nArt 29 WP Member: Ms. Tine A. LARSEN, President of the Commission Nationale pour\\nla Protection des Données\\\\\\nArt 29 WP Alternate Member: Mr. Thierry LALLEMANG, Commissioner\\n\\n**Malta**\\n\\nOffice of the Data Protection Commissioner\\\\\\nData Protection Commissioner: Mr. Joseph Ebejer\\\\\\n2, Airways House\\\\\\nHigh Street, Sliema SLM 1549 Tel. +356 2328 7100\\\\\\nFax +356 2328 7198\\\\\\nE-mail: commissioner.dataprotection@gov.mt\\\\\\nWebSite: https://idpc.org.mt\\n\\nArt 29 WP Member: Mr. Saviour CACHIA, Information and Data Protection\\nCommissioner\\\\\\nArt 29 WP Alternate Member: Mr. Ian DEGUARA, Director - Operations and Programme\\nImplementation\\n\\n**Netherlands**\\n\\nAutoriteit Persoonsgegevens\\\\\\nPrins Clauslaan 60\\\\\\nP.O. Box 93374\\\\\\n2509 AJ Den Haag/The Hague Tel. +31 70 888 8500\\\\\\nFax +31 70 888 8501\\\\\\nE-mail: info@autoriteitpersoonsgegevens.nl\\\\\\nWebSite: https://autoriteitpersoonsgegevens.nl/nl\\n\\nArt 29 WP Member: Mr. Aleid WOLFSEN, Chairman of Autoriteit Persoonsgegevens\\n\\n**Poland**\\n\\nThe Bureau of the Inspector General for the Protection of Personal Data – GIODO\\\\\\nul. Stawki 2\\\\\\n00-193 Warsaw\\\\\\nTel. +48 22 53 10 440\\\\\\nFax +48 22 53 10 441\\\\\\nE-mail: kancelaria@giodo.gov.pl; desiwm@giodo.gov.pl\\\\\\nWebSite: https://www.giodo.gov.pl\\n\\nArt 29 WP Member: Ms. Edyta BIELAK-JOMAA, Inspector General for the Protection\\nof Personal Data\\n\\n**Portugal**\\n\\nComissão Nacional de Protecção de Dados - CNPD\\\\\\nR. de São. Bento, 148-3° 1200-821 Lisboa\\\\\\nTel. +351 21 392 84 00\\\\\\nFax +351 21 397 68 32\\\\\\nE-mail: geral@cnpd.pt\\\\\\nWebSite: https://www.cnpd.pt\\n\\nArt 29 WP Member: Ms. Filipa CALVÃO, President, Comissão Nacional de Protecção\\nde Dados\\\\\\nArt 29 WP Alternate Member: Isabel CRUZ, Secretary-General of the DPA\\n\\n**Romania**\\n\\nThe National Supervisory Authority for Personal Data Processing President: Mrs.\\nAncuţa Gianina Opre\\\\\\nB-dul Magheru 28-30\\\\\\nSector 1, BUCUREŞTI\\\\\\nTel. +40 21 252 5599\\\\\\nFax +40 21 252 5757\\\\\\nE-mail: anspdcp@dataprotection.ro\\\\\\nWebSite: https://www.dataprotection.ro\\n\\nArt 29 WP Member: Ms. Ancuţa Gianina OPRE, President of the National Supervisory\\nAuthority for Personal Data Processing\\\\\\nArt 29 WP Alternate Member: Ms. Alina SAVOIU, Head of the Legal and\\nCommunication Department\\n\\n**Slovakia**\\n\\nOffice for Personal Data Protection of the Slovak Republic\\\\\\nHraničná 12\\\\\\n820 07 Bratislava 27\\\\\\nTel.: + 421 2 32 31 32 14\\\\\\nFax: + 421 2 32 31 32 34\\\\\\nE-mail: statny.dozor@pdp.gov.sk\\\\\\nWebSite: https://dataprotection.gov.sk\\n\\nArt 29 WP Member: Ms. Soňa PŐTHEOVÁ, President of the Office for Personal Data\\nProtection of the Slovak Republic\\\\\\nArt 29 WP Alternate Member: Mr. Anna VITTEKOVA, Vice President\\n\\n**Slovenia**\\n\\nInformation Commissioner\\\\\\nMs. Mojca Prelesnik Zaloška 59\\\\\\n1000 Ljubljana\\\\\\nTel. +386 1 230 9730\\\\\\nFax +386 1 230 9778\\\\\\nE-mail: gp.ip@ip-rs.si\\\\\\nWebSite: https://www.ip-rs.si\\n\\nArt 29 WP Member: Ms. Mojca PRELESNIK, Information Commissioner of the Republic\\nof Slovenia\\n\\n**Spain**\\n\\nAgencia de Protección de Datos\\\\\\nC/Jorge Juan, 6\\\\\\n28001 Madrid\\\\\\nTel. +34 91399 6200\\\\\\nFax +34 91455 5699\\\\\\nE-mail: internacional@agpd.es\\\\\\nWebSite: https://www.agpd.es\\n\\nArt 29 WP Member: Ms. María del Mar España Martí, Director of the Spanish Data\\nProtection Agency\\\\\\nArt 29 WP Alternate Member: Mr. Rafael GARCIA GOZALO\\n\\n**Sweden**\\n\\nDatainspektionen\\\\\\nDrottninggatan 29 5th Floor\\\\\\nBox 8114\\\\\\n20 Stockholm\\\\\\nTel. +46 8 657 6100\\\\\\nFax +46 8 652 8652\\\\\\nE-mail: datainspektionen@datainspektionen.se\\\\\\nWebSite: https://www.datainspektionen.se\\n\\nArt 29 WP Member: Ms. Kristina SVAHN STARRSJÖ, Director General of the Data\\nInspection Board\\\\\\nArt 29 WP Alternate Member: Mr. Hans-Olof LINDBLOM, Chief Legal Adviser\\n\\n**United Kingdom**\\n\\nThe Information Commissioner’s Office\\\\\\nWater Lane, Wycliffe House Wilmslow - Cheshire SK9 5AF Tel. +44 1625 545 745\\\\\\nE-mail: international.team@ico.org.uk\\\\\\nWebSite: https://ico.org.uk\\n\\nArt 29 WP Member: Ms. Elizabeth DENHAM, Information Commissioner\\\\\\nArt 29 WP Alternate Member: Mr. Steve WOOD, Deputy Commissioner\\n\\n**EUROPEAN FREE TRADE AREA (EFTA)**\\n\\n**Iceland**\\n\\nIcelandic Data Protection Agency\\\\\\nRauðarárstíg 10\\\\\\nReykjavík\\\\\\nTel. +354 510 9600; Fax +354 510 9606\\\\\\nE-mail: postur@personuvernd.is\\\\\\nWebSite: https://www.personuvernd.is\\n\\n**Liechtenstein**\\n\\nData Protection Office\\\\\\nKirchstrasse 8, P.O. Box 684\\\\\\n9490 Vaduz\\\\\\nPrincipality of Liechtenstein Tel. +423 236 6090\\\\\\nE-mail: info.dss@llv.li\\\\\\nWebSite: https://www.datenschutzstelle.li\\n\\n**Norway**\\n\\nDatatilsynet\\\\\\nData Protection Authority: Mr. Bjørn Erik THORN\\\\\\nThe Data Inspectorate\\\\\\nP.O. Box 8177 Dep 0034 Oslo\\\\\\nTel. +47 22 39 69 00; Fax +47 22 42 23 50\\\\\\nE-mail: postkasse@datatilsynet.no\\\\\\nWebSite: https://www.datatilsynet.no\\n\\n**Switzerland**\\n\\nData Protection and Information Commissioner of Switzerland\\\\\\nEidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter Mr. Adrian\\nLobsiger\\\\\\nFeldeggweg 1\\\\\\n3003 Bern\\\\\\nTel. +41 58 462 43 95; Fax +41 58 462 99 96\\\\\\nE-mail: contact20@edoeb.admin.ch\\\\\\nWebSite: https://www.edoeb.admin.ch\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"personal-data-protection-policy\",\"text\":\"PERSONAL DATA PROTECTION POLICY\"},{\"depth\":2,\"slug\":\"scope-and-definitions\",\"text\":\"Scope and Definitions\"},{\"depth\":2,\"slug\":\"data-processing-principles\",\"text\":\"Data Processing Principles\"},{\"depth\":2,\"slug\":\"legal-grounds-and-purposes\",\"text\":\"Legal Grounds and Purposes\"},{\"depth\":2,\"slug\":\"access-to-personal-data\",\"text\":\"Access to Personal Data\"},{\"depth\":2,\"slug\":\"third-parties\",\"text\":\"Third Parties\"},{\"depth\":2,\"slug\":\"international-transfers\",\"text\":\"International Transfers\"},{\"depth\":2,\"slug\":\"rights-of-data-subjects\",\"text\":\"Rights of Data Subjects\"},{\"depth\":2,\"slug\":\"new-data-processing-activities\",\"text\":\"New Data Processing Activities\"},{\"depth\":2,\"slug\":\"data-retention\",\"text\":\"Data Retention\"},{\"depth\":2,\"slug\":\"security\",\"text\":\"Security\"},{\"depth\":2,\"slug\":\"data-breach-response-procedure\",\"text\":\"Data Breach Response Procedure\"},{\"depth\":2,\"slug\":\"annex-1-to-the-personal-data-protection-policy\",\"text\":\"ANNEX 1 TO THE PERSONAL DATA PROTECTION POLICY\"},{\"depth\":2,\"slug\":\"footnote-label\",\"text\":\"Footnotes\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":";;;;AAKI,MAAM,IAAI,GAAG,MAAM,+kxEAA+kxE;;AAEtmxE,IAAgB,MAAC,WAAW,GAAG,CAAC,OAAO,CAAC,iCAAiC;AACzE,IAAgB,MAAC,IAAI,GAAG;AACxB,IAAgB,MAAC,GAAG,GAAG;AACvB,IAAW,SAAS,UAAU,GAAG;AACjC,KAAK,OAAO,otoEAAotoE;AAChuoE;AACA,IAAW,eAAe,eAAe,GAAG;AAC5C,KAAK,OAAO,MAAM,IAAI,EAAE;AACxB;AACA,IAAW,SAAS,WAAW,GAAG;AAClC,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gDAAgD,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxlC;;AAEA,IAAgB,MAAC,OAAO,GAAG,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK;AACtE,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW;AAC/C,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI;AACxB,KAAK,OAAO,CAAC,GAAG,GAAG,GAAG;;AAEtB,KAAK,OAAOA,cAAM,CAAC,EAAE,eAAe,CAAO,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrE,KAAK;;;;"} \ No newline at end of file diff --git a/Target/chunks/privacy-policy_C4XnloF9.mjs.map b/Target/chunks/privacy-policy_Byej-8FT.mjs.map similarity index 99% rename from Target/chunks/privacy-policy_C4XnloF9.mjs.map rename to Target/chunks/privacy-policy_Byej-8FT.mjs.map index be4beaa8..5134203a 100644 --- a/Target/chunks/privacy-policy_C4XnloF9.mjs.map +++ b/Target/chunks/privacy-policy_Byej-8FT.mjs.map @@ -1 +1 @@ -{"version":3,"file":"privacy-policy_C4XnloF9.mjs","sources":["../../Source/Content/en/privacy-policy.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

PRIVACY POLICY

\\n

Effective date: 01.12.2016 / January 12th 2016
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

Introduction

\\n

Welcome to PlayForm ltd..

\\n

PlayForm ltd. (“us”, “we”, or “our”) operates\\nhttps://PlayForm.LTD and PlayForm mobile application (hereinafter referred to\\nas “Service”).

\\n

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm\\nmobile application, and explains how we collect, safeguard and disclose\\ninformation that results from your use of our Service.

\\n

We use your data to provide and improve Service. By using Service, you agree to\\nthe collection and use of information in accordance with this policy. Unless\\notherwise defined in this Privacy Policy, the terms used in this Privacy Policy\\nhave the same meanings as in our Terms and Conditions.

\\n

Our Terms and Conditions (“Terms”) govern all use of our Service and\\ntogether with the Privacy Policy constitutes your agreement with us\\n(“agreement”).

\\n

Definitions

\\n

SERVICE means the https://PlayForm.LTD website and PlayForm mobile\\napplication operated by PlayForm ltd.

\\n

PERSONAL DATA means data about a living individual who can be identified\\nfrom those data (or from those and other information either in our possession or\\nlikely to come into our possession).

\\n

USAGE DATA is data collected automatically either generated by the use of\\nService or from Service infrastructure itself (for example, the duration of a\\npage visit).

\\n

DATA CONTROLLER means a natural or legal person who (either alone or jointly\\nor in common with other persons) determines the purposes for which and the\\nmanner in which any personal data are, or are to be, processed. For the purpose\\nof this Privacy Policy, we are a Data Controller of your data.

\\n

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who\\nprocesses the data on behalf of the Data Controller. We may use the services of\\nvarious Service Providers in order to process your data more effectively.

\\n

DATA SUBJECT is any living individual who is the subject of Personal Data.

\\n

THE USER is the individual using our Service. The User corresponds to the\\nData Subject, who is the subject of Personal Data.

\\n

Information Collection and Use

\\n

We collect several different types of information for various purposes to\\nprovide and improve our Service to you.

\\n

Types of Data Collected

\\n

Personal Data

\\n

While using our Service, we may ask you to provide us with certain personally\\nidentifiable information that can be used to contact or identify you\\n(“Personal Data”). Personally identifiable information may include, but is\\nnot limited to:

\\n

a. Email address

\\n

b. First name and last name

\\n

c. Phone number

\\n

d. Address, State, Province, ZIP/Postal code, City

\\n

e. Usage Data

\\n

We may use your Personal Data to contact you with newsletters, marketing or\\npromotional materials and other information that may be of interest to you. You\\nmay opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at Support@PlayForm.LTD.

\\n

Usage Data

\\n

We may also collect information that your browser sends whenever you visit our\\nService or when you access Service by or through a mobile device (“Usage Data”).

\\n

This Usage Data may include information such as your computer’s Internet\\nProtocol address (e.g., IP address), browser type, browser version, the pages of\\nour Service that you visit, the time and date of your visit, the time spent on\\nthose pages, unique device identifiers and other diagnostic data.

\\n

When you access Service with a mobile device, this Usage Data may include\\ninformation such as the type of mobile device you use, your mobile device unique\\nID, the IP address of your mobile device, your mobile operating system, the type\\nof mobile Internet browser you use, unique device identifiers and other\\ndiagnostic data.

\\n

Tracking Data

\\n

We use tracking technologies to track the activity on our Service and we hold\\ncertain information.

\\n

Tracking technologies are used such as beacons, tags and scripts to collect and\\ntrack information and to improve and analyze our Service.

\\n

PlayForm’s websites and online services may use “cookies.” Cookies enable you to\\nuse shopping carts and to personalize your experience on our sites, tell us\\nwhich parts of our websites people have visited, help us measure the\\neffectiveness of ads and web searches, and give us insights into user behavior\\nso we can improve our communications and products.

\\n

Use of Data

\\n

PlayForm ltd. Uses the collected data for various purposes:

\\n

a. to provide and maintain our Service;

\\n

b. to notify you about changes to our Service;

\\n

c. to allow you to participate in interactive features of our Service when you\\nchoose to do so;

\\n

d. to provide customer support;

\\n

e. to gather analysis or valuable information so that we can improve our\\nService;

\\n

f. to monitor the usage of our Service;

\\n

g. to detect, prevent and address technical issues;

\\n

h. to fulfill any other purpose for which you provide it;

\\n

i. to carry out our obligations and enforce our rights arising from any\\ncontracts entered into between you and us, including for billing and collection;

\\n

j. to provide you with notices about your account and/or subscription, including\\nexpiration and renewal notices, email-instructions, etc.;

\\n

k. to provide you with news, special offers and general information about other\\ngoods, services and events which we offer that are similar to those that you\\nhave already purchased or enquired about unless you have opted not to receive\\nsuch information;

\\n

l. in any other way we may describe when you provide the information;

\\n

m. for any other purpose with your consent.

\\n

Retention of Data

\\n

We will retain your Personal Data only for as long as is necessary for the\\npurposes set out in this Privacy Policy. We will retain and use your Personal\\nData to the extent necessary to comply with our legal obligations (for example,\\nif we are required to retain your data to comply with applicable laws), resolve\\ndisputes, and enforce our legal agreements and policies.

\\n

We will also retain Usage Data for internal analysis purposes. Usage Data is\\ngenerally retained for a shorter period, except when this data is used to\\nstrengthen the security or to improve the functionality of our Service, or we\\nare legally obligated to retain this data for longer time periods.

\\n

Transfer of Data

\\n

Your information, including Personal Data, may be transferred to – and\\nmaintained on – computers located outside of your state, province, country or\\nother governmental jurisdiction where the data protection laws may differ from\\nthose of your jurisdiction.

\\n

If you are located outside United States and choose to provide information to\\nus, please note that we transfer the data, including Personal Data, to United\\nStates and process it there.

\\n

Your consent to this Privacy Policy followed by your submission of such\\ninformation represents your agreement to that transfer.

\\n

PlayForm ltd. Will take all the steps reasonably necessary to ensure that\\nyour data is treated securely and in accordance with this Privacy Policy and no\\ntransfer of your Personal Data will take place to an organization or a country\\nunless there are adequate controls in place including the security of your data\\nand other personal information.

\\n

Disclosure of Data

\\n

We may disclose personal information that we collect, or you provide:

\\n

a. Disclosure for Law Enforcement.

\\n

Under certain circumstances, we may be required to disclose your Personal Data\\nif required to do so by law or in response to valid requests by public\\nauthorities.

\\n

b. Business Transaction.

\\n

If we or our subsidiaries are involved in a merger, acquisition or asset sale,\\nyour Personal Data may be transferred.

\\n

c. Other cases. We may disclose your information also:

\\n

i. to our subsidiaries and affiliates;

\\n

ii. to fulfill the purpose for which you provide it;

\\n

iii. for the purpose of including your company’s logo on our website;

\\n

iv. for any other purpose disclosed by us when you provide the information;

\\n

v. with your consent in any other cases;

\\n

vi. if we believe disclosure is necessary or appropriate to protect the rights,\\nproperty, or safety of the Company, our customers, or others.

\\n

Security of Data

\\n

The security of your data is important to us but remember that no method of\\ntransmission over the Internet or method of electronic storage is 100% secure.\\nWhile we strive to use commercially acceptable means to protect your Personal\\nData, we cannot guarantee its absolute security.

\\n

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

\\n

If you are a resident of the European Union (EU) and European Economic Area\\n(EEA), you have certain data protection rights, covered by GDPR. – See more at\\nhttps://eur-lex.europa.eu/eli/reg/2016/679/oj

\\n

We aim to take reasonable steps to allow you to correct, amend, delete, or limit\\nthe use of your Personal Data.

\\n

If you wish to be informed what Personal Data, we hold about you and if you want\\nit to be removed from our systems, please email us at Support@PlayForm.LTD.

\\n

In certain circumstances, you have the following data protection rights:

\\n

a. the right to access, update or to delete the information we have on you;

\\n

b. the right of rectification. You have the right to have your information\\nrectified if that information is inaccurate or incomplete;

\\n

c. the right to object. You have the right to object to our processing of your\\nPersonal Data;

\\n

d. the right of restriction. You have the right to request that we restrict the\\nprocessing of your personal information;

\\n

e. the right to data portability. You have the right to be provided with a copy\\nof your Personal Data in a structured, machine-readable and commonly used\\nformat;

\\n

f. the right to withdraw consent. You also have the right to withdraw your\\nconsent at any time where we rely on your consent to process your personal\\ninformation;

\\n

Please note that we may ask you to verify your identity before responding to\\nsuch requests. Please note, we may not able to provide Service without some\\nnecessary data.

\\n

You have the right to complain to a Data Protection Authority about our\\ncollection and use of your Personal Data. For more information, please contact\\nyour local data protection authority in the European Economic Area (EEA).

\\n

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

\\n

CalOPPA is the first state law in the nation to require commercial websites and\\nonline services to post a privacy policy. The law’s reach stretches well beyond\\nCalifornia to require a person or company in the United States (and conceivable\\nthe world) that operates websites collecting personally identifiable information\\nfrom California consumers to post a conspicuous privacy policy on its website\\nstating exactly the information being collected and those individuals with whom\\nit is being shared, and to comply with this policy. – See more at:\\nhttps://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

\\n

According to CalOPPA we agree to the following:

\\n

a. users can visit our site anonymously;

\\n

b. our Privacy Policy link includes the word “Privacy”, and can easily be found\\non the page specified above on the home page of our website;

\\n

c. users will be notified of any privacy policy changes on our Privacy Policy\\nPage;

\\n

d. users are able to change their personal information by emailing us at\\nSupport@PlayForm.LTD.

\\n

Our Policy on “Do Not Track” Signals:

\\n

We honor Do Not Track signals and do not track, or use advertising when a Do Not\\nTrack browser mechanism is in place. Do Not Track is a preference you can set in\\nyour web browser to inform websites that you do not want to be tracked.

\\n

You can enable or disable Do Not Track by visiting the Preferences or Settings\\npage of your web browser.

\\n

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

\\n

If you are a California resident, you are entitled to learn what data we collect\\nabout you, ask to delete your data and not to sell (share) it. To exercise your\\ndata protection rights, you can make certain requests and ask us:

\\n

a. What personal information we have about you. If you make this request, we\\nwill return to you:

\\n

i. The categories of personal information we have collected about you.

\\n

ii. The categories of sources from which we collect your personal information.

\\n

iii. The business or commercial purpose for collecting or selling your personal\\ninformation.

\\n

iv. The categories of third parties with whom we share personal information.

\\n

v. The specific pieces of personal information we have collected about you.

\\n

vi. A list of categories of personal information that we have sold, along with\\nthe category of any other company we sold it to. If we have not sold your\\npersonal information, we will inform you of that fact.

\\n

vii. A list of categories of personal information that we have disclosed for a\\nbusiness purpose, along with the category of any other company we shared it\\nwith.

\\n

Please note, you are entitled to ask us to provide you with this information up\\nto two times in a rolling twelve-month period. When you make this request, the\\ninformation provided may be limited to the personal information we collected\\nabout you in the previous 12 months.

\\n

b. To delete your personal information. If you make this request, we will\\ndelete the personal information we hold about you as of the date of your request\\nfrom our records and direct any service providers to do the same. In some cases,\\ndeletion may be accomplished through de-identification of the information. If\\nyou choose to delete your personal information, you may not be able to use\\ncertain functions that require your personal information to operate.

\\n

c. To stop selling your personal information. If you submit a request to\\nstop selling your personal information, we will stop selling it. If you are a\\nCalifornia resident, to opt-out of the sale of your personal information, click\\n“Do Not Sell My Personal Information” at the bottom of our home page to submit\\nyour request.

\\n

Please note, if you ask us to delete or stop selling your data, it may impact\\nyour experience with us, and you may not be able to participate in certain\\nprograms or membership services which require the usage of your personal\\ninformation to function. But in no circumstances, we will discriminate against\\nyou for exercising your rights.

\\n

To exercise your California data protection rights described above, please send\\nyour request(s) by one of the following means:

\\n

By email: Support@PlayForm.LTD

\\n

By phone number: +359876668093

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

\\n

Your data protection rights, described above, are covered by the CCPA, short for\\nthe California Consumer Privacy Act. To find out more, visit the official\\nCalifornia Legislative Information website. The CCPA took effect on 01/01/2020.

\\n

Service Providers

\\n

We may employ third party companies and individuals to facilitate our Service\\n(“Service Providers”), provide Service on our behalf, perform\\nService-related services or assist us in analyzing how our Service is used.

\\n

These third parties have access to your Personal Data only to perform these\\ntasks on our behalf and are obligated not to disclose or use it for any other\\npurpose.

\\n

Payments

\\n

We may provide paid products and/or services within Service. In that case, we\\nuse third-party services for payment processing (e.g., payment processors).

\\n

We will not store or collect your payment card details. That information is\\nprovided directly to our third-party payment processors whose use of your\\npersonal information is governed by their Privacy Policy. These payment\\nprocessors adhere to the standards set by PCI-DSS as managed by the PCI Security\\nStandards Council, which is a joint effort of brands like Visa, Mastercard,\\nAmerican Express and Discover. PCI-DSS requirements help ensure the secure\\nhandling of payment information.

\\n

The payment processors we work with are:

\\n

PayPal or Braintree:

\\n

Their Privacy Policy can be viewed at\\nhttps://www.paypal.com/webapps/mpp/ua/privacy-full

\\n

Apple Store In-App Payments:

\\n

Their Privacy Policy can be viewed at:\\nhttps://www.apple.com/legal/privacy/en-ww/ /\\nhttps://support.apple.com/en-us/HT203027

\\n

Google Play In-App Payments:

\\n

Their Privacy Policy can be viewed at:\\nhttps://policies.google.com/privacy?hl=en&gl=us /\\nhttps://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

\\n

Stripe:

\\n

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

\\n\\n

Our Service may contain links to other sites that are not operated by us. If you\\nclick a third-party link, you will be directed to that third party’s site. We\\nstrongly advise you to review the Privacy Policy of every site you visit.

\\n

We have no control over and assume no responsibility for the content, privacy\\npolicies or practices of any third-party sites or services.

\\n

Children’s Privacy

\\n

Our Services are not intended for use by children under the age of 18\\n(“Child” or “Children”).

\\n

We do not knowingly collect personally identifiable information from Children\\nunder 18. If you become aware that a Child has provided us with Personal Data,\\nplease contact us. If we become aware that we have collected Personal Data from\\nChildren without verification of parental consent, we take steps to remove that\\ninformation from our servers.

\\n

Changes to This Privacy Policy

\\n

We may update our Privacy Policy from time to time. We will notify you of any\\nchanges by posting the new Privacy Policy on this page.

\\n

We will let you know via email and/or a prominent notice on our Service, prior\\nto the change becoming effective and update “effective date” at the top of this\\nPrivacy Policy.

\\n

You are advised to review this Privacy Policy periodically for any changes.\\nChanges to this Privacy Policy are effective when they are posted on this page.

\\n

Contact Us

\\n

If you have any questions about this Privacy Policy, please contact us:

\\n

By email: Support@PlayForm.LTD.

\\n

By phone number: +359876668093.

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Privacy Policy\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/privacy-policy.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [PRIVACY POLICY]\\n - [Introduction]\\n - [Definitions]\\n - [Information Collection and Use]\\n - [Types of Data Collected]\\n - [Use of Data]\\n - [Retention of Data]\\n - [Transfer of Data]\\n - [Disclosure of Data]\\n - [Security of Data]\\n - [Your Data Protection Rights Under General Data Protection Regulation (GDPR)]\\n - [Your Data Protection Rights under the California Privacy Protection\\n Act (CalOPPA)]\\n - [Your Data Protection Rights under the California Consumer Privacy\\n Act (CCPA)]\\n - [Service Providers]\\n - [Payments]\\n - [Links to Other Sites]\\n - [Children's Privacy]\\n - [Changes to This Privacy Policy]\\n - [Contact Us]\\n\\n[privacy policy]: #privacy-policy\\n[introduction]: #introduction\\n[definitions]: #definitions\\n[information collection and use]: #information-collection-and-use\\n[types of data collected]: #types-of-data-collected\\n[use of data]: #use-of-data\\n[retention of data]: #retention-of-data\\n[transfer of data]: #transfer-of-data\\n[disclosure of data]: #disclosure-of-data\\n[security of data]: #security-of-data\\n[your data protection rights under general data protection regulation (gdpr)]:\\n\\t#your-data-protection-rights-under-general-data-protection-regulation-gdpr\\n[your data protection rights under the california privacy protection act (caloppa)]:\\n\\t#your-data-protection-rights-under-the-california-privacy-protection-act-caloppa\\n[your data protection rights under the california consumer privacy act (ccpa)]:\\n\\t#your-data-protection-rights-under-the-california-consumer-privacy-act-ccpa\\n[service providers]: #service-providers\\n[payments]: #payments\\n[links to other sites]: #links-to-other-sites\\n[children's privacy]: #childrens-privacy\\n[changes to this privacy policy]: #changes-to-this-privacy-policy\\n[contact us]: #contact-us\\n\\n# PRIVACY POLICY\\n\\nEffective date: 01.12.2016 / January 12th 2016\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\n## Introduction\\n\\nWelcome to **PlayForm ltd.**.\\n\\n**PlayForm ltd.** (“**us**”, “**we**”, or “**our**”) operates\\nhttps://PlayForm.LTD and PlayForm mobile application (hereinafter referred to\\nas “**Service**”).\\n\\nOur Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm\\nmobile application, and explains how we collect, safeguard and disclose\\ninformation that results from your use of our Service.\\n\\nWe use your data to provide and improve Service. By using Service, you agree to\\nthe collection and use of information in accordance with this policy. Unless\\notherwise defined in this Privacy Policy, the terms used in this Privacy Policy\\nhave the same meanings as in our Terms and Conditions.\\n\\nOur Terms and Conditions (“**Terms**”) govern all use of our Service and\\ntogether with the Privacy Policy constitutes your agreement with us\\n(“**agreement**”).\\n\\n## Definitions\\n\\n**SERVICE** means the https://PlayForm.LTD website and PlayForm mobile\\napplication operated by **PlayForm ltd.**\\n\\n**PERSONAL DATA** means data about a living individual who can be identified\\nfrom those data (or from those and other information either in our possession or\\nlikely to come into our possession).\\n\\n**USAGE DATA** is data collected automatically either generated by the use of\\nService or from Service infrastructure itself (for example, the duration of a\\npage visit).\\n\\n**DATA CONTROLLER** means a natural or legal person who (either alone or jointly\\nor in common with other persons) determines the purposes for which and the\\nmanner in which any personal data are, or are to be, processed. For the purpose\\nof this Privacy Policy, we are a Data Controller of your data.\\n\\n**DATA PROCESSORS (OR SERVICE PROVIDERS)** means any natural or legal person who\\nprocesses the data on behalf of the Data Controller. We may use the services of\\nvarious Service Providers in order to process your data more effectively.\\n\\n**DATA SUBJECT** is any living individual who is the subject of Personal Data.\\n\\n**THE USER** is the individual using our Service. The User corresponds to the\\nData Subject, who is the subject of Personal Data.\\n\\n## Information Collection and Use\\n\\nWe collect several different types of information for various purposes to\\nprovide and improve our Service to you.\\n\\n## Types of Data Collected\\n\\n**Personal Data**\\n\\nWhile using our Service, we may ask you to provide us with certain personally\\nidentifiable information that can be used to contact or identify you\\n(“**Personal Data**”). Personally identifiable information may include, but is\\nnot limited to:\\n\\na. Email address\\n\\nb. First name and last name\\n\\nc. Phone number\\n\\nd. Address, State, Province, ZIP/Postal code, City\\n\\ne. Usage Data\\n\\nWe may use your Personal Data to contact you with newsletters, marketing or\\npromotional materials and other information that may be of interest to you. You\\nmay opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at Support@PlayForm.LTD.\\n\\n**Usage Data**\\n\\nWe may also collect information that your browser sends whenever you visit our\\nService or when you access Service by or through a mobile device (“Usage Data”).\\n\\nThis Usage Data may include information such as your computer's Internet\\nProtocol address (e.g., IP address), browser type, browser version, the pages of\\nour Service that you visit, the time and date of your visit, the time spent on\\nthose pages, unique device identifiers and other diagnostic data.\\n\\nWhen you access Service with a mobile device, this Usage Data may include\\ninformation such as the type of mobile device you use, your mobile device unique\\nID, the IP address of your mobile device, your mobile operating system, the type\\nof mobile Internet browser you use, unique device identifiers and other\\ndiagnostic data.\\n\\n**Tracking Data**\\n\\nWe use tracking technologies to track the activity on our Service and we hold\\ncertain information.\\n\\nTracking technologies are used such as beacons, tags and scripts to collect and\\ntrack information and to improve and analyze our Service.\\n\\nPlayForm’s websites and online services may use “cookies.” Cookies enable you to\\nuse shopping carts and to personalize your experience on our sites, tell us\\nwhich parts of our websites people have visited, help us measure the\\neffectiveness of ads and web searches, and give us insights into user behavior\\nso we can improve our communications and products.\\n\\n## Use of Data\\n\\n**PlayForm ltd.** Uses the collected data for various purposes:\\n\\na. to provide and maintain our Service;\\n\\nb. to notify you about changes to our Service;\\n\\nc. to allow you to participate in interactive features of our Service when you\\nchoose to do so;\\n\\nd. to provide customer support;\\n\\ne. to gather analysis or valuable information so that we can improve our\\nService;\\n\\nf. to monitor the usage of our Service;\\n\\ng. to detect, prevent and address technical issues;\\n\\nh. to fulfill any other purpose for which you provide it;\\n\\ni. to carry out our obligations and enforce our rights arising from any\\ncontracts entered into between you and us, including for billing and collection;\\n\\nj. to provide you with notices about your account and/or subscription, including\\nexpiration and renewal notices, email-instructions, etc.;\\n\\nk. to provide you with news, special offers and general information about other\\ngoods, services and events which we offer that are similar to those that you\\nhave already purchased or enquired about unless you have opted not to receive\\nsuch information;\\n\\nl. in any other way we may describe when you provide the information;\\n\\nm. for any other purpose with your consent.\\n\\n## Retention of Data\\n\\nWe will retain your Personal Data only for as long as is necessary for the\\npurposes set out in this Privacy Policy. We will retain and use your Personal\\nData to the extent necessary to comply with our legal obligations (for example,\\nif we are required to retain your data to comply with applicable laws), resolve\\ndisputes, and enforce our legal agreements and policies.\\n\\nWe will also retain Usage Data for internal analysis purposes. Usage Data is\\ngenerally retained for a shorter period, except when this data is used to\\nstrengthen the security or to improve the functionality of our Service, or we\\nare legally obligated to retain this data for longer time periods.\\n\\n## Transfer of Data\\n\\nYour information, including Personal Data, may be transferred to – and\\nmaintained on – computers located outside of your state, province, country or\\nother governmental jurisdiction where the data protection laws may differ from\\nthose of your jurisdiction.\\n\\nIf you are located outside United States and choose to provide information to\\nus, please note that we transfer the data, including Personal Data, to United\\nStates and process it there.\\n\\nYour consent to this Privacy Policy followed by your submission of such\\ninformation represents your agreement to that transfer.\\n\\n**PlayForm ltd.** Will take all the steps reasonably necessary to ensure that\\nyour data is treated securely and in accordance with this Privacy Policy and no\\ntransfer of your Personal Data will take place to an organization or a country\\nunless there are adequate controls in place including the security of your data\\nand other personal information.\\n\\n## Disclosure of Data\\n\\nWe may disclose personal information that we collect, or you provide:\\n\\na. **Disclosure for Law Enforcement**.\\n\\nUnder certain circumstances, we may be required to disclose your Personal Data\\nif required to do so by law or in response to valid requests by public\\nauthorities.\\n\\nb. **Business Transaction**.\\n\\nIf we or our subsidiaries are involved in a merger, acquisition or asset sale,\\nyour Personal Data may be transferred.\\n\\nc. **Other cases. We may disclose your information also**:\\n\\ni. to our subsidiaries and affiliates;\\n\\nii. to fulfill the purpose for which you provide it;\\n\\niii. for the purpose of including your company’s logo on our website;\\n\\niv. for any other purpose disclosed by us when you provide the information;\\n\\nv. with your consent in any other cases;\\n\\nvi. if we believe disclosure is necessary or appropriate to protect the rights,\\nproperty, or safety of the Company, our customers, or others.\\n\\n## Security of Data\\n\\nThe security of your data is important to us but remember that no method of\\ntransmission over the Internet or method of electronic storage is 100% secure.\\nWhile we strive to use commercially acceptable means to protect your Personal\\nData, we cannot guarantee its absolute security.\\n\\n## Your Data Protection Rights Under General Data Protection Regulation (GDPR)\\n\\nIf you are a resident of the European Union (EU) and European Economic Area\\n(EEA), you have certain data protection rights, covered by GDPR. – See more at\\nhttps://eur-lex.europa.eu/eli/reg/2016/679/oj\\n\\nWe aim to take reasonable steps to allow you to correct, amend, delete, or limit\\nthe use of your Personal Data.\\n\\nIf you wish to be informed what Personal Data, we hold about you and if you want\\nit to be removed from our systems, please email us at Support@PlayForm.LTD.\\n\\nIn certain circumstances, you have the following data protection rights:\\n\\na. the right to access, update or to delete the information we have on you;\\n\\nb. the right of rectification. You have the right to have your information\\nrectified if that information is inaccurate or incomplete;\\n\\nc. the right to object. You have the right to object to our processing of your\\nPersonal Data;\\n\\nd. the right of restriction. You have the right to request that we restrict the\\nprocessing of your personal information;\\n\\ne. the right to data portability. You have the right to be provided with a copy\\nof your Personal Data in a structured, machine-readable and commonly used\\nformat;\\n\\nf. the right to withdraw consent. You also have the right to withdraw your\\nconsent at any time where we rely on your consent to process your personal\\ninformation;\\n\\nPlease note that we may ask you to verify your identity before responding to\\nsuch requests. Please note, we may not able to provide Service without some\\nnecessary data.\\n\\nYou have the right to complain to a Data Protection Authority about our\\ncollection and use of your Personal Data. For more information, please contact\\nyour local data protection authority in the European Economic Area (EEA).\\n\\n## Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)\\n\\nCalOPPA is the first state law in the nation to require commercial websites and\\nonline services to post a privacy policy. The law’s reach stretches well beyond\\nCalifornia to require a person or company in the United States (and conceivable\\nthe world) that operates websites collecting personally identifiable information\\nfrom California consumers to post a conspicuous privacy policy on its website\\nstating exactly the information being collected and those individuals with whom\\nit is being shared, and to comply with this policy. – See more at:\\nhttps://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3\\n\\nAccording to CalOPPA we agree to the following:\\n\\na. users can visit our site anonymously;\\n\\nb. our Privacy Policy link includes the word “Privacy”, and can easily be found\\non the page specified above on the home page of our website;\\n\\nc. users will be notified of any privacy policy changes on our Privacy Policy\\nPage;\\n\\nd. users are able to change their personal information by emailing us at\\nSupport@PlayForm.LTD.\\n\\nOur Policy on “Do Not Track” Signals:\\n\\nWe honor Do Not Track signals and do not track, or use advertising when a Do Not\\nTrack browser mechanism is in place. Do Not Track is a preference you can set in\\nyour web browser to inform websites that you do not want to be tracked.\\n\\nYou can enable or disable Do Not Track by visiting the Preferences or Settings\\npage of your web browser.\\n\\n## Your Data Protection Rights under the California Consumer Privacy Act (CCPA)\\n\\nIf you are a California resident, you are entitled to learn what data we collect\\nabout you, ask to delete your data and not to sell (share) it. To exercise your\\ndata protection rights, you can make certain requests and ask us:\\n\\na. **What personal information we have about you**. If you make this request, we\\nwill return to you:\\n\\ni. The categories of personal information we have collected about you.\\n\\nii. The categories of sources from which we collect your personal information.\\n\\niii. The business or commercial purpose for collecting or selling your personal\\ninformation.\\n\\niv. The categories of third parties with whom we share personal information.\\n\\nv. The specific pieces of personal information we have collected about you.\\n\\nvi. A list of categories of personal information that we have sold, along with\\nthe category of any other company we sold it to. If we have not sold your\\npersonal information, we will inform you of that fact.\\n\\nvii. A list of categories of personal information that we have disclosed for a\\nbusiness purpose, along with the category of any other company we shared it\\nwith.\\n\\nPlease note, you are entitled to ask us to provide you with this information up\\nto two times in a rolling twelve-month period. When you make this request, the\\ninformation provided may be limited to the personal information we collected\\nabout you in the previous 12 months.\\n\\nb. **To delete your personal information**. If you make this request, we will\\ndelete the personal information we hold about you as of the date of your request\\nfrom our records and direct any service providers to do the same. In some cases,\\ndeletion may be accomplished through de-identification of the information. If\\nyou choose to delete your personal information, you may not be able to use\\ncertain functions that require your personal information to operate.\\n\\nc. **To stop selling your personal information**. If you submit a request to\\nstop selling your personal information, we will stop selling it. If you are a\\nCalifornia resident, to opt-out of the sale of your personal information, click\\n“Do Not Sell My Personal Information” at the bottom of our home page to submit\\nyour request.\\n\\nPlease note, if you ask us to delete or stop selling your data, it may impact\\nyour experience with us, and you may not be able to participate in certain\\nprograms or membership services which require the usage of your personal\\ninformation to function. But in no circumstances, we will discriminate against\\nyou for exercising your rights.\\n\\nTo exercise your California data protection rights described above, please send\\nyour request(s) by one of the following means:\\n\\nBy email: Support@PlayForm.LTD\\n\\nBy phone number: +359876668093\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia\\n\\nYour data protection rights, described above, are covered by the CCPA, short for\\nthe California Consumer Privacy Act. To find out more, visit the official\\nCalifornia Legislative Information website. The CCPA took effect on 01/01/2020.\\n\\n## Service Providers\\n\\nWe may employ third party companies and individuals to facilitate our Service\\n(“**Service Providers**”), provide Service on our behalf, perform\\nService-related services or assist us in analyzing how our Service is used.\\n\\nThese third parties have access to your Personal Data only to perform these\\ntasks on our behalf and are obligated not to disclose or use it for any other\\npurpose.\\n\\n## Payments\\n\\nWe may provide paid products and/or services within Service. In that case, we\\nuse third-party services for payment processing (e.g., payment processors).\\n\\nWe will not store or collect your payment card details. That information is\\nprovided directly to our third-party payment processors whose use of your\\npersonal information is governed by their Privacy Policy. These payment\\nprocessors adhere to the standards set by PCI-DSS as managed by the PCI Security\\nStandards Council, which is a joint effort of brands like Visa, Mastercard,\\nAmerican Express and Discover. PCI-DSS requirements help ensure the secure\\nhandling of payment information.\\n\\nThe payment processors we work with are:\\n\\n**PayPal or Braintree**:\\n\\nTheir Privacy Policy can be viewed at\\nhttps://www.paypal.com/webapps/mpp/ua/privacy-full\\n\\n**Apple Store In-App Payments**:\\n\\nTheir Privacy Policy can be viewed at:\\nhttps://www.apple.com/legal/privacy/en-ww/ /\\nhttps://support.apple.com/en-us/HT203027\\n\\n**Google Play In-App Payments**:\\n\\nTheir Privacy Policy can be viewed at:\\nhttps://policies.google.com/privacy?hl=en&gl=us /\\nhttps://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en\\n\\n**Stripe**:\\n\\nTheir Privacy Policy can be viewed at: https://stripe.com/us/privacy\\n\\n## Links to Other Sites\\n\\nOur Service may contain links to other sites that are not operated by us. If you\\nclick a third-party link, you will be directed to that third party's site. We\\nstrongly advise you to review the Privacy Policy of every site you visit.\\n\\nWe have no control over and assume no responsibility for the content, privacy\\npolicies or practices of any third-party sites or services.\\n\\n## Children's Privacy\\n\\nOur Services are not intended for use by children under the age of 18\\n(“**Child**” or “**Children**”).\\n\\nWe do not knowingly collect personally identifiable information from Children\\nunder 18. If you become aware that a Child has provided us with Personal Data,\\nplease contact us. If we become aware that we have collected Personal Data from\\nChildren without verification of parental consent, we take steps to remove that\\ninformation from our servers.\\n\\n## Changes to This Privacy Policy\\n\\nWe may update our Privacy Policy from time to time. We will notify you of any\\nchanges by posting the new Privacy Policy on this page.\\n\\nWe will let you know via email and/or a prominent notice on our Service, prior\\nto the change becoming effective and update “effective date” at the top of this\\nPrivacy Policy.\\n\\nYou are advised to review this Privacy Policy periodically for any changes.\\nChanges to this Privacy Policy are effective when they are posted on this page.\\n\\n## Contact Us\\n\\nIf you have any questions about this Privacy Policy, please contact us:\\n\\nBy email: Support@PlayForm.LTD.\\n\\nBy phone number: +359876668093.\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia.\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"privacy-policy\",\"text\":\"PRIVACY POLICY\"},{\"depth\":2,\"slug\":\"introduction\",\"text\":\"Introduction\"},{\"depth\":2,\"slug\":\"definitions\",\"text\":\"Definitions\"},{\"depth\":2,\"slug\":\"information-collection-and-use\",\"text\":\"Information Collection and Use\"},{\"depth\":2,\"slug\":\"types-of-data-collected\",\"text\":\"Types of Data Collected\"},{\"depth\":2,\"slug\":\"use-of-data\",\"text\":\"Use of Data\"},{\"depth\":2,\"slug\":\"retention-of-data\",\"text\":\"Retention of Data\"},{\"depth\":2,\"slug\":\"transfer-of-data\",\"text\":\"Transfer of Data\"},{\"depth\":2,\"slug\":\"disclosure-of-data\",\"text\":\"Disclosure of Data\"},{\"depth\":2,\"slug\":\"security-of-data\",\"text\":\"Security of Data\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-general-data-protection-regulation-gdpr\",\"text\":\"Your Data Protection Rights Under General Data Protection Regulation (GDPR)\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-the-california-privacy-protection-act-caloppa\",\"text\":\"Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-the-california-consumer-privacy-act-ccpa\",\"text\":\"Your Data Protection Rights under the California Consumer Privacy Act (CCPA)\"},{\"depth\":2,\"slug\":\"service-providers\",\"text\":\"Service Providers\"},{\"depth\":2,\"slug\":\"payments\",\"text\":\"Payments\"},{\"depth\":2,\"slug\":\"links-to-other-sites\",\"text\":\"Links to Other Sites\"},{\"depth\":2,\"slug\":\"childrens-privacy\",\"text\":\"Children’s Privacy\"},{\"depth\":2,\"slug\":\"changes-to-this-privacy-policy\",\"text\":\"Changes to This Privacy Policy\"},{\"depth\":2,\"slug\":\"contact-us\",\"text\":\"Contact Us\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"privacy-policy_Byej-8FT.mjs","sources":["../../Source/Content/en/privacy-policy.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

PRIVACY POLICY

\\n

Effective date: 01.12.2016 / January 12th 2016
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

Introduction

\\n

Welcome to PlayForm ltd..

\\n

PlayForm ltd. (“us”, “we”, or “our”) operates\\nhttps://PlayForm.LTD and PlayForm mobile application (hereinafter referred to\\nas “Service”).

\\n

Our Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm\\nmobile application, and explains how we collect, safeguard and disclose\\ninformation that results from your use of our Service.

\\n

We use your data to provide and improve Service. By using Service, you agree to\\nthe collection and use of information in accordance with this policy. Unless\\notherwise defined in this Privacy Policy, the terms used in this Privacy Policy\\nhave the same meanings as in our Terms and Conditions.

\\n

Our Terms and Conditions (“Terms”) govern all use of our Service and\\ntogether with the Privacy Policy constitutes your agreement with us\\n(“agreement”).

\\n

Definitions

\\n

SERVICE means the https://PlayForm.LTD website and PlayForm mobile\\napplication operated by PlayForm ltd.

\\n

PERSONAL DATA means data about a living individual who can be identified\\nfrom those data (or from those and other information either in our possession or\\nlikely to come into our possession).

\\n

USAGE DATA is data collected automatically either generated by the use of\\nService or from Service infrastructure itself (for example, the duration of a\\npage visit).

\\n

DATA CONTROLLER means a natural or legal person who (either alone or jointly\\nor in common with other persons) determines the purposes for which and the\\nmanner in which any personal data are, or are to be, processed. For the purpose\\nof this Privacy Policy, we are a Data Controller of your data.

\\n

DATA PROCESSORS (OR SERVICE PROVIDERS) means any natural or legal person who\\nprocesses the data on behalf of the Data Controller. We may use the services of\\nvarious Service Providers in order to process your data more effectively.

\\n

DATA SUBJECT is any living individual who is the subject of Personal Data.

\\n

THE USER is the individual using our Service. The User corresponds to the\\nData Subject, who is the subject of Personal Data.

\\n

Information Collection and Use

\\n

We collect several different types of information for various purposes to\\nprovide and improve our Service to you.

\\n

Types of Data Collected

\\n

Personal Data

\\n

While using our Service, we may ask you to provide us with certain personally\\nidentifiable information that can be used to contact or identify you\\n(“Personal Data”). Personally identifiable information may include, but is\\nnot limited to:

\\n

a. Email address

\\n

b. First name and last name

\\n

c. Phone number

\\n

d. Address, State, Province, ZIP/Postal code, City

\\n

e. Usage Data

\\n

We may use your Personal Data to contact you with newsletters, marketing or\\npromotional materials and other information that may be of interest to you. You\\nmay opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at Support@PlayForm.LTD.

\\n

Usage Data

\\n

We may also collect information that your browser sends whenever you visit our\\nService or when you access Service by or through a mobile device (“Usage Data”).

\\n

This Usage Data may include information such as your computer’s Internet\\nProtocol address (e.g., IP address), browser type, browser version, the pages of\\nour Service that you visit, the time and date of your visit, the time spent on\\nthose pages, unique device identifiers and other diagnostic data.

\\n

When you access Service with a mobile device, this Usage Data may include\\ninformation such as the type of mobile device you use, your mobile device unique\\nID, the IP address of your mobile device, your mobile operating system, the type\\nof mobile Internet browser you use, unique device identifiers and other\\ndiagnostic data.

\\n

Tracking Data

\\n

We use tracking technologies to track the activity on our Service and we hold\\ncertain information.

\\n

Tracking technologies are used such as beacons, tags and scripts to collect and\\ntrack information and to improve and analyze our Service.

\\n

PlayForm’s websites and online services may use “cookies.” Cookies enable you to\\nuse shopping carts and to personalize your experience on our sites, tell us\\nwhich parts of our websites people have visited, help us measure the\\neffectiveness of ads and web searches, and give us insights into user behavior\\nso we can improve our communications and products.

\\n

Use of Data

\\n

PlayForm ltd. Uses the collected data for various purposes:

\\n

a. to provide and maintain our Service;

\\n

b. to notify you about changes to our Service;

\\n

c. to allow you to participate in interactive features of our Service when you\\nchoose to do so;

\\n

d. to provide customer support;

\\n

e. to gather analysis or valuable information so that we can improve our\\nService;

\\n

f. to monitor the usage of our Service;

\\n

g. to detect, prevent and address technical issues;

\\n

h. to fulfill any other purpose for which you provide it;

\\n

i. to carry out our obligations and enforce our rights arising from any\\ncontracts entered into between you and us, including for billing and collection;

\\n

j. to provide you with notices about your account and/or subscription, including\\nexpiration and renewal notices, email-instructions, etc.;

\\n

k. to provide you with news, special offers and general information about other\\ngoods, services and events which we offer that are similar to those that you\\nhave already purchased or enquired about unless you have opted not to receive\\nsuch information;

\\n

l. in any other way we may describe when you provide the information;

\\n

m. for any other purpose with your consent.

\\n

Retention of Data

\\n

We will retain your Personal Data only for as long as is necessary for the\\npurposes set out in this Privacy Policy. We will retain and use your Personal\\nData to the extent necessary to comply with our legal obligations (for example,\\nif we are required to retain your data to comply with applicable laws), resolve\\ndisputes, and enforce our legal agreements and policies.

\\n

We will also retain Usage Data for internal analysis purposes. Usage Data is\\ngenerally retained for a shorter period, except when this data is used to\\nstrengthen the security or to improve the functionality of our Service, or we\\nare legally obligated to retain this data for longer time periods.

\\n

Transfer of Data

\\n

Your information, including Personal Data, may be transferred to – and\\nmaintained on – computers located outside of your state, province, country or\\nother governmental jurisdiction where the data protection laws may differ from\\nthose of your jurisdiction.

\\n

If you are located outside United States and choose to provide information to\\nus, please note that we transfer the data, including Personal Data, to United\\nStates and process it there.

\\n

Your consent to this Privacy Policy followed by your submission of such\\ninformation represents your agreement to that transfer.

\\n

PlayForm ltd. Will take all the steps reasonably necessary to ensure that\\nyour data is treated securely and in accordance with this Privacy Policy and no\\ntransfer of your Personal Data will take place to an organization or a country\\nunless there are adequate controls in place including the security of your data\\nand other personal information.

\\n

Disclosure of Data

\\n

We may disclose personal information that we collect, or you provide:

\\n

a. Disclosure for Law Enforcement.

\\n

Under certain circumstances, we may be required to disclose your Personal Data\\nif required to do so by law or in response to valid requests by public\\nauthorities.

\\n

b. Business Transaction.

\\n

If we or our subsidiaries are involved in a merger, acquisition or asset sale,\\nyour Personal Data may be transferred.

\\n

c. Other cases. We may disclose your information also:

\\n

i. to our subsidiaries and affiliates;

\\n

ii. to fulfill the purpose for which you provide it;

\\n

iii. for the purpose of including your company’s logo on our website;

\\n

iv. for any other purpose disclosed by us when you provide the information;

\\n

v. with your consent in any other cases;

\\n

vi. if we believe disclosure is necessary or appropriate to protect the rights,\\nproperty, or safety of the Company, our customers, or others.

\\n

Security of Data

\\n

The security of your data is important to us but remember that no method of\\ntransmission over the Internet or method of electronic storage is 100% secure.\\nWhile we strive to use commercially acceptable means to protect your Personal\\nData, we cannot guarantee its absolute security.

\\n

Your Data Protection Rights Under General Data Protection Regulation (GDPR)

\\n

If you are a resident of the European Union (EU) and European Economic Area\\n(EEA), you have certain data protection rights, covered by GDPR. – See more at\\nhttps://eur-lex.europa.eu/eli/reg/2016/679/oj

\\n

We aim to take reasonable steps to allow you to correct, amend, delete, or limit\\nthe use of your Personal Data.

\\n

If you wish to be informed what Personal Data, we hold about you and if you want\\nit to be removed from our systems, please email us at Support@PlayForm.LTD.

\\n

In certain circumstances, you have the following data protection rights:

\\n

a. the right to access, update or to delete the information we have on you;

\\n

b. the right of rectification. You have the right to have your information\\nrectified if that information is inaccurate or incomplete;

\\n

c. the right to object. You have the right to object to our processing of your\\nPersonal Data;

\\n

d. the right of restriction. You have the right to request that we restrict the\\nprocessing of your personal information;

\\n

e. the right to data portability. You have the right to be provided with a copy\\nof your Personal Data in a structured, machine-readable and commonly used\\nformat;

\\n

f. the right to withdraw consent. You also have the right to withdraw your\\nconsent at any time where we rely on your consent to process your personal\\ninformation;

\\n

Please note that we may ask you to verify your identity before responding to\\nsuch requests. Please note, we may not able to provide Service without some\\nnecessary data.

\\n

You have the right to complain to a Data Protection Authority about our\\ncollection and use of your Personal Data. For more information, please contact\\nyour local data protection authority in the European Economic Area (EEA).

\\n

Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)

\\n

CalOPPA is the first state law in the nation to require commercial websites and\\nonline services to post a privacy policy. The law’s reach stretches well beyond\\nCalifornia to require a person or company in the United States (and conceivable\\nthe world) that operates websites collecting personally identifiable information\\nfrom California consumers to post a conspicuous privacy policy on its website\\nstating exactly the information being collected and those individuals with whom\\nit is being shared, and to comply with this policy. – See more at:\\nhttps://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3

\\n

According to CalOPPA we agree to the following:

\\n

a. users can visit our site anonymously;

\\n

b. our Privacy Policy link includes the word “Privacy”, and can easily be found\\non the page specified above on the home page of our website;

\\n

c. users will be notified of any privacy policy changes on our Privacy Policy\\nPage;

\\n

d. users are able to change their personal information by emailing us at\\nSupport@PlayForm.LTD.

\\n

Our Policy on “Do Not Track” Signals:

\\n

We honor Do Not Track signals and do not track, or use advertising when a Do Not\\nTrack browser mechanism is in place. Do Not Track is a preference you can set in\\nyour web browser to inform websites that you do not want to be tracked.

\\n

You can enable or disable Do Not Track by visiting the Preferences or Settings\\npage of your web browser.

\\n

Your Data Protection Rights under the California Consumer Privacy Act (CCPA)

\\n

If you are a California resident, you are entitled to learn what data we collect\\nabout you, ask to delete your data and not to sell (share) it. To exercise your\\ndata protection rights, you can make certain requests and ask us:

\\n

a. What personal information we have about you. If you make this request, we\\nwill return to you:

\\n

i. The categories of personal information we have collected about you.

\\n

ii. The categories of sources from which we collect your personal information.

\\n

iii. The business or commercial purpose for collecting or selling your personal\\ninformation.

\\n

iv. The categories of third parties with whom we share personal information.

\\n

v. The specific pieces of personal information we have collected about you.

\\n

vi. A list of categories of personal information that we have sold, along with\\nthe category of any other company we sold it to. If we have not sold your\\npersonal information, we will inform you of that fact.

\\n

vii. A list of categories of personal information that we have disclosed for a\\nbusiness purpose, along with the category of any other company we shared it\\nwith.

\\n

Please note, you are entitled to ask us to provide you with this information up\\nto two times in a rolling twelve-month period. When you make this request, the\\ninformation provided may be limited to the personal information we collected\\nabout you in the previous 12 months.

\\n

b. To delete your personal information. If you make this request, we will\\ndelete the personal information we hold about you as of the date of your request\\nfrom our records and direct any service providers to do the same. In some cases,\\ndeletion may be accomplished through de-identification of the information. If\\nyou choose to delete your personal information, you may not be able to use\\ncertain functions that require your personal information to operate.

\\n

c. To stop selling your personal information. If you submit a request to\\nstop selling your personal information, we will stop selling it. If you are a\\nCalifornia resident, to opt-out of the sale of your personal information, click\\n“Do Not Sell My Personal Information” at the bottom of our home page to submit\\nyour request.

\\n

Please note, if you ask us to delete or stop selling your data, it may impact\\nyour experience with us, and you may not be able to participate in certain\\nprograms or membership services which require the usage of your personal\\ninformation to function. But in no circumstances, we will discriminate against\\nyou for exercising your rights.

\\n

To exercise your California data protection rights described above, please send\\nyour request(s) by one of the following means:

\\n

By email: Support@PlayForm.LTD

\\n

By phone number: +359876668093

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia

\\n

Your data protection rights, described above, are covered by the CCPA, short for\\nthe California Consumer Privacy Act. To find out more, visit the official\\nCalifornia Legislative Information website. The CCPA took effect on 01/01/2020.

\\n

Service Providers

\\n

We may employ third party companies and individuals to facilitate our Service\\n(“Service Providers”), provide Service on our behalf, perform\\nService-related services or assist us in analyzing how our Service is used.

\\n

These third parties have access to your Personal Data only to perform these\\ntasks on our behalf and are obligated not to disclose or use it for any other\\npurpose.

\\n

Payments

\\n

We may provide paid products and/or services within Service. In that case, we\\nuse third-party services for payment processing (e.g., payment processors).

\\n

We will not store or collect your payment card details. That information is\\nprovided directly to our third-party payment processors whose use of your\\npersonal information is governed by their Privacy Policy. These payment\\nprocessors adhere to the standards set by PCI-DSS as managed by the PCI Security\\nStandards Council, which is a joint effort of brands like Visa, Mastercard,\\nAmerican Express and Discover. PCI-DSS requirements help ensure the secure\\nhandling of payment information.

\\n

The payment processors we work with are:

\\n

PayPal or Braintree:

\\n

Their Privacy Policy can be viewed at\\nhttps://www.paypal.com/webapps/mpp/ua/privacy-full

\\n

Apple Store In-App Payments:

\\n

Their Privacy Policy can be viewed at:\\nhttps://www.apple.com/legal/privacy/en-ww/ /\\nhttps://support.apple.com/en-us/HT203027

\\n

Google Play In-App Payments:

\\n

Their Privacy Policy can be viewed at:\\nhttps://policies.google.com/privacy?hl=en&gl=us /\\nhttps://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en

\\n

Stripe:

\\n

Their Privacy Policy can be viewed at: https://stripe.com/us/privacy

\\n\\n

Our Service may contain links to other sites that are not operated by us. If you\\nclick a third-party link, you will be directed to that third party’s site. We\\nstrongly advise you to review the Privacy Policy of every site you visit.

\\n

We have no control over and assume no responsibility for the content, privacy\\npolicies or practices of any third-party sites or services.

\\n

Children’s Privacy

\\n

Our Services are not intended for use by children under the age of 18\\n(“Child” or “Children”).

\\n

We do not knowingly collect personally identifiable information from Children\\nunder 18. If you become aware that a Child has provided us with Personal Data,\\nplease contact us. If we become aware that we have collected Personal Data from\\nChildren without verification of parental consent, we take steps to remove that\\ninformation from our servers.

\\n

Changes to This Privacy Policy

\\n

We may update our Privacy Policy from time to time. We will notify you of any\\nchanges by posting the new Privacy Policy on this page.

\\n

We will let you know via email and/or a prominent notice on our Service, prior\\nto the change becoming effective and update “effective date” at the top of this\\nPrivacy Policy.

\\n

You are advised to review this Privacy Policy periodically for any changes.\\nChanges to this Privacy Policy are effective when they are posted on this page.

\\n

Contact Us

\\n

If you have any questions about this Privacy Policy, please contact us:

\\n

By email: Support@PlayForm.LTD.

\\n

By phone number: +359876668093.

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Privacy Policy\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/privacy-policy.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [PRIVACY POLICY]\\n - [Introduction]\\n - [Definitions]\\n - [Information Collection and Use]\\n - [Types of Data Collected]\\n - [Use of Data]\\n - [Retention of Data]\\n - [Transfer of Data]\\n - [Disclosure of Data]\\n - [Security of Data]\\n - [Your Data Protection Rights Under General Data Protection Regulation (GDPR)]\\n - [Your Data Protection Rights under the California Privacy Protection\\n Act (CalOPPA)]\\n - [Your Data Protection Rights under the California Consumer Privacy\\n Act (CCPA)]\\n - [Service Providers]\\n - [Payments]\\n - [Links to Other Sites]\\n - [Children's Privacy]\\n - [Changes to This Privacy Policy]\\n - [Contact Us]\\n\\n[privacy policy]: #privacy-policy\\n[introduction]: #introduction\\n[definitions]: #definitions\\n[information collection and use]: #information-collection-and-use\\n[types of data collected]: #types-of-data-collected\\n[use of data]: #use-of-data\\n[retention of data]: #retention-of-data\\n[transfer of data]: #transfer-of-data\\n[disclosure of data]: #disclosure-of-data\\n[security of data]: #security-of-data\\n[your data protection rights under general data protection regulation (gdpr)]:\\n\\t#your-data-protection-rights-under-general-data-protection-regulation-gdpr\\n[your data protection rights under the california privacy protection act (caloppa)]:\\n\\t#your-data-protection-rights-under-the-california-privacy-protection-act-caloppa\\n[your data protection rights under the california consumer privacy act (ccpa)]:\\n\\t#your-data-protection-rights-under-the-california-consumer-privacy-act-ccpa\\n[service providers]: #service-providers\\n[payments]: #payments\\n[links to other sites]: #links-to-other-sites\\n[children's privacy]: #childrens-privacy\\n[changes to this privacy policy]: #changes-to-this-privacy-policy\\n[contact us]: #contact-us\\n\\n# PRIVACY POLICY\\n\\nEffective date: 01.12.2016 / January 12th 2016\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\n## Introduction\\n\\nWelcome to **PlayForm ltd.**.\\n\\n**PlayForm ltd.** (“**us**”, “**we**”, or “**our**”) operates\\nhttps://PlayForm.LTD and PlayForm mobile application (hereinafter referred to\\nas “**Service**”).\\n\\nOur Privacy Policy governs your visit to https://PlayForm.LTD and PlayForm\\nmobile application, and explains how we collect, safeguard and disclose\\ninformation that results from your use of our Service.\\n\\nWe use your data to provide and improve Service. By using Service, you agree to\\nthe collection and use of information in accordance with this policy. Unless\\notherwise defined in this Privacy Policy, the terms used in this Privacy Policy\\nhave the same meanings as in our Terms and Conditions.\\n\\nOur Terms and Conditions (“**Terms**”) govern all use of our Service and\\ntogether with the Privacy Policy constitutes your agreement with us\\n(“**agreement**”).\\n\\n## Definitions\\n\\n**SERVICE** means the https://PlayForm.LTD website and PlayForm mobile\\napplication operated by **PlayForm ltd.**\\n\\n**PERSONAL DATA** means data about a living individual who can be identified\\nfrom those data (or from those and other information either in our possession or\\nlikely to come into our possession).\\n\\n**USAGE DATA** is data collected automatically either generated by the use of\\nService or from Service infrastructure itself (for example, the duration of a\\npage visit).\\n\\n**DATA CONTROLLER** means a natural or legal person who (either alone or jointly\\nor in common with other persons) determines the purposes for which and the\\nmanner in which any personal data are, or are to be, processed. For the purpose\\nof this Privacy Policy, we are a Data Controller of your data.\\n\\n**DATA PROCESSORS (OR SERVICE PROVIDERS)** means any natural or legal person who\\nprocesses the data on behalf of the Data Controller. We may use the services of\\nvarious Service Providers in order to process your data more effectively.\\n\\n**DATA SUBJECT** is any living individual who is the subject of Personal Data.\\n\\n**THE USER** is the individual using our Service. The User corresponds to the\\nData Subject, who is the subject of Personal Data.\\n\\n## Information Collection and Use\\n\\nWe collect several different types of information for various purposes to\\nprovide and improve our Service to you.\\n\\n## Types of Data Collected\\n\\n**Personal Data**\\n\\nWhile using our Service, we may ask you to provide us with certain personally\\nidentifiable information that can be used to contact or identify you\\n(“**Personal Data**”). Personally identifiable information may include, but is\\nnot limited to:\\n\\na. Email address\\n\\nb. First name and last name\\n\\nc. Phone number\\n\\nd. Address, State, Province, ZIP/Postal code, City\\n\\ne. Usage Data\\n\\nWe may use your Personal Data to contact you with newsletters, marketing or\\npromotional materials and other information that may be of interest to you. You\\nmay opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at Support@PlayForm.LTD.\\n\\n**Usage Data**\\n\\nWe may also collect information that your browser sends whenever you visit our\\nService or when you access Service by or through a mobile device (“Usage Data”).\\n\\nThis Usage Data may include information such as your computer's Internet\\nProtocol address (e.g., IP address), browser type, browser version, the pages of\\nour Service that you visit, the time and date of your visit, the time spent on\\nthose pages, unique device identifiers and other diagnostic data.\\n\\nWhen you access Service with a mobile device, this Usage Data may include\\ninformation such as the type of mobile device you use, your mobile device unique\\nID, the IP address of your mobile device, your mobile operating system, the type\\nof mobile Internet browser you use, unique device identifiers and other\\ndiagnostic data.\\n\\n**Tracking Data**\\n\\nWe use tracking technologies to track the activity on our Service and we hold\\ncertain information.\\n\\nTracking technologies are used such as beacons, tags and scripts to collect and\\ntrack information and to improve and analyze our Service.\\n\\nPlayForm’s websites and online services may use “cookies.” Cookies enable you to\\nuse shopping carts and to personalize your experience on our sites, tell us\\nwhich parts of our websites people have visited, help us measure the\\neffectiveness of ads and web searches, and give us insights into user behavior\\nso we can improve our communications and products.\\n\\n## Use of Data\\n\\n**PlayForm ltd.** Uses the collected data for various purposes:\\n\\na. to provide and maintain our Service;\\n\\nb. to notify you about changes to our Service;\\n\\nc. to allow you to participate in interactive features of our Service when you\\nchoose to do so;\\n\\nd. to provide customer support;\\n\\ne. to gather analysis or valuable information so that we can improve our\\nService;\\n\\nf. to monitor the usage of our Service;\\n\\ng. to detect, prevent and address technical issues;\\n\\nh. to fulfill any other purpose for which you provide it;\\n\\ni. to carry out our obligations and enforce our rights arising from any\\ncontracts entered into between you and us, including for billing and collection;\\n\\nj. to provide you with notices about your account and/or subscription, including\\nexpiration and renewal notices, email-instructions, etc.;\\n\\nk. to provide you with news, special offers and general information about other\\ngoods, services and events which we offer that are similar to those that you\\nhave already purchased or enquired about unless you have opted not to receive\\nsuch information;\\n\\nl. in any other way we may describe when you provide the information;\\n\\nm. for any other purpose with your consent.\\n\\n## Retention of Data\\n\\nWe will retain your Personal Data only for as long as is necessary for the\\npurposes set out in this Privacy Policy. We will retain and use your Personal\\nData to the extent necessary to comply with our legal obligations (for example,\\nif we are required to retain your data to comply with applicable laws), resolve\\ndisputes, and enforce our legal agreements and policies.\\n\\nWe will also retain Usage Data for internal analysis purposes. Usage Data is\\ngenerally retained for a shorter period, except when this data is used to\\nstrengthen the security or to improve the functionality of our Service, or we\\nare legally obligated to retain this data for longer time periods.\\n\\n## Transfer of Data\\n\\nYour information, including Personal Data, may be transferred to – and\\nmaintained on – computers located outside of your state, province, country or\\nother governmental jurisdiction where the data protection laws may differ from\\nthose of your jurisdiction.\\n\\nIf you are located outside United States and choose to provide information to\\nus, please note that we transfer the data, including Personal Data, to United\\nStates and process it there.\\n\\nYour consent to this Privacy Policy followed by your submission of such\\ninformation represents your agreement to that transfer.\\n\\n**PlayForm ltd.** Will take all the steps reasonably necessary to ensure that\\nyour data is treated securely and in accordance with this Privacy Policy and no\\ntransfer of your Personal Data will take place to an organization or a country\\nunless there are adequate controls in place including the security of your data\\nand other personal information.\\n\\n## Disclosure of Data\\n\\nWe may disclose personal information that we collect, or you provide:\\n\\na. **Disclosure for Law Enforcement**.\\n\\nUnder certain circumstances, we may be required to disclose your Personal Data\\nif required to do so by law or in response to valid requests by public\\nauthorities.\\n\\nb. **Business Transaction**.\\n\\nIf we or our subsidiaries are involved in a merger, acquisition or asset sale,\\nyour Personal Data may be transferred.\\n\\nc. **Other cases. We may disclose your information also**:\\n\\ni. to our subsidiaries and affiliates;\\n\\nii. to fulfill the purpose for which you provide it;\\n\\niii. for the purpose of including your company’s logo on our website;\\n\\niv. for any other purpose disclosed by us when you provide the information;\\n\\nv. with your consent in any other cases;\\n\\nvi. if we believe disclosure is necessary or appropriate to protect the rights,\\nproperty, or safety of the Company, our customers, or others.\\n\\n## Security of Data\\n\\nThe security of your data is important to us but remember that no method of\\ntransmission over the Internet or method of electronic storage is 100% secure.\\nWhile we strive to use commercially acceptable means to protect your Personal\\nData, we cannot guarantee its absolute security.\\n\\n## Your Data Protection Rights Under General Data Protection Regulation (GDPR)\\n\\nIf you are a resident of the European Union (EU) and European Economic Area\\n(EEA), you have certain data protection rights, covered by GDPR. – See more at\\nhttps://eur-lex.europa.eu/eli/reg/2016/679/oj\\n\\nWe aim to take reasonable steps to allow you to correct, amend, delete, or limit\\nthe use of your Personal Data.\\n\\nIf you wish to be informed what Personal Data, we hold about you and if you want\\nit to be removed from our systems, please email us at Support@PlayForm.LTD.\\n\\nIn certain circumstances, you have the following data protection rights:\\n\\na. the right to access, update or to delete the information we have on you;\\n\\nb. the right of rectification. You have the right to have your information\\nrectified if that information is inaccurate or incomplete;\\n\\nc. the right to object. You have the right to object to our processing of your\\nPersonal Data;\\n\\nd. the right of restriction. You have the right to request that we restrict the\\nprocessing of your personal information;\\n\\ne. the right to data portability. You have the right to be provided with a copy\\nof your Personal Data in a structured, machine-readable and commonly used\\nformat;\\n\\nf. the right to withdraw consent. You also have the right to withdraw your\\nconsent at any time where we rely on your consent to process your personal\\ninformation;\\n\\nPlease note that we may ask you to verify your identity before responding to\\nsuch requests. Please note, we may not able to provide Service without some\\nnecessary data.\\n\\nYou have the right to complain to a Data Protection Authority about our\\ncollection and use of your Personal Data. For more information, please contact\\nyour local data protection authority in the European Economic Area (EEA).\\n\\n## Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)\\n\\nCalOPPA is the first state law in the nation to require commercial websites and\\nonline services to post a privacy policy. The law’s reach stretches well beyond\\nCalifornia to require a person or company in the United States (and conceivable\\nthe world) that operates websites collecting personally identifiable information\\nfrom California consumers to post a conspicuous privacy policy on its website\\nstating exactly the information being collected and those individuals with whom\\nit is being shared, and to comply with this policy. – See more at:\\nhttps://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3\\n\\nAccording to CalOPPA we agree to the following:\\n\\na. users can visit our site anonymously;\\n\\nb. our Privacy Policy link includes the word “Privacy”, and can easily be found\\non the page specified above on the home page of our website;\\n\\nc. users will be notified of any privacy policy changes on our Privacy Policy\\nPage;\\n\\nd. users are able to change their personal information by emailing us at\\nSupport@PlayForm.LTD.\\n\\nOur Policy on “Do Not Track” Signals:\\n\\nWe honor Do Not Track signals and do not track, or use advertising when a Do Not\\nTrack browser mechanism is in place. Do Not Track is a preference you can set in\\nyour web browser to inform websites that you do not want to be tracked.\\n\\nYou can enable or disable Do Not Track by visiting the Preferences or Settings\\npage of your web browser.\\n\\n## Your Data Protection Rights under the California Consumer Privacy Act (CCPA)\\n\\nIf you are a California resident, you are entitled to learn what data we collect\\nabout you, ask to delete your data and not to sell (share) it. To exercise your\\ndata protection rights, you can make certain requests and ask us:\\n\\na. **What personal information we have about you**. If you make this request, we\\nwill return to you:\\n\\ni. The categories of personal information we have collected about you.\\n\\nii. The categories of sources from which we collect your personal information.\\n\\niii. The business or commercial purpose for collecting or selling your personal\\ninformation.\\n\\niv. The categories of third parties with whom we share personal information.\\n\\nv. The specific pieces of personal information we have collected about you.\\n\\nvi. A list of categories of personal information that we have sold, along with\\nthe category of any other company we sold it to. If we have not sold your\\npersonal information, we will inform you of that fact.\\n\\nvii. A list of categories of personal information that we have disclosed for a\\nbusiness purpose, along with the category of any other company we shared it\\nwith.\\n\\nPlease note, you are entitled to ask us to provide you with this information up\\nto two times in a rolling twelve-month period. When you make this request, the\\ninformation provided may be limited to the personal information we collected\\nabout you in the previous 12 months.\\n\\nb. **To delete your personal information**. If you make this request, we will\\ndelete the personal information we hold about you as of the date of your request\\nfrom our records and direct any service providers to do the same. In some cases,\\ndeletion may be accomplished through de-identification of the information. If\\nyou choose to delete your personal information, you may not be able to use\\ncertain functions that require your personal information to operate.\\n\\nc. **To stop selling your personal information**. If you submit a request to\\nstop selling your personal information, we will stop selling it. If you are a\\nCalifornia resident, to opt-out of the sale of your personal information, click\\n“Do Not Sell My Personal Information” at the bottom of our home page to submit\\nyour request.\\n\\nPlease note, if you ask us to delete or stop selling your data, it may impact\\nyour experience with us, and you may not be able to participate in certain\\nprograms or membership services which require the usage of your personal\\ninformation to function. But in no circumstances, we will discriminate against\\nyou for exercising your rights.\\n\\nTo exercise your California data protection rights described above, please send\\nyour request(s) by one of the following means:\\n\\nBy email: Support@PlayForm.LTD\\n\\nBy phone number: +359876668093\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia\\n\\nYour data protection rights, described above, are covered by the CCPA, short for\\nthe California Consumer Privacy Act. To find out more, visit the official\\nCalifornia Legislative Information website. The CCPA took effect on 01/01/2020.\\n\\n## Service Providers\\n\\nWe may employ third party companies and individuals to facilitate our Service\\n(“**Service Providers**”), provide Service on our behalf, perform\\nService-related services or assist us in analyzing how our Service is used.\\n\\nThese third parties have access to your Personal Data only to perform these\\ntasks on our behalf and are obligated not to disclose or use it for any other\\npurpose.\\n\\n## Payments\\n\\nWe may provide paid products and/or services within Service. In that case, we\\nuse third-party services for payment processing (e.g., payment processors).\\n\\nWe will not store or collect your payment card details. That information is\\nprovided directly to our third-party payment processors whose use of your\\npersonal information is governed by their Privacy Policy. These payment\\nprocessors adhere to the standards set by PCI-DSS as managed by the PCI Security\\nStandards Council, which is a joint effort of brands like Visa, Mastercard,\\nAmerican Express and Discover. PCI-DSS requirements help ensure the secure\\nhandling of payment information.\\n\\nThe payment processors we work with are:\\n\\n**PayPal or Braintree**:\\n\\nTheir Privacy Policy can be viewed at\\nhttps://www.paypal.com/webapps/mpp/ua/privacy-full\\n\\n**Apple Store In-App Payments**:\\n\\nTheir Privacy Policy can be viewed at:\\nhttps://www.apple.com/legal/privacy/en-ww/ /\\nhttps://support.apple.com/en-us/HT203027\\n\\n**Google Play In-App Payments**:\\n\\nTheir Privacy Policy can be viewed at:\\nhttps://policies.google.com/privacy?hl=en&gl=us /\\nhttps://payments.google.com/payments/apis-secure/u/0/get_legal_document?ldo=0&ldt=privacynotice&ldl=en\\n\\n**Stripe**:\\n\\nTheir Privacy Policy can be viewed at: https://stripe.com/us/privacy\\n\\n## Links to Other Sites\\n\\nOur Service may contain links to other sites that are not operated by us. If you\\nclick a third-party link, you will be directed to that third party's site. We\\nstrongly advise you to review the Privacy Policy of every site you visit.\\n\\nWe have no control over and assume no responsibility for the content, privacy\\npolicies or practices of any third-party sites or services.\\n\\n## Children's Privacy\\n\\nOur Services are not intended for use by children under the age of 18\\n(“**Child**” or “**Children**”).\\n\\nWe do not knowingly collect personally identifiable information from Children\\nunder 18. If you become aware that a Child has provided us with Personal Data,\\nplease contact us. If we become aware that we have collected Personal Data from\\nChildren without verification of parental consent, we take steps to remove that\\ninformation from our servers.\\n\\n## Changes to This Privacy Policy\\n\\nWe may update our Privacy Policy from time to time. We will notify you of any\\nchanges by posting the new Privacy Policy on this page.\\n\\nWe will let you know via email and/or a prominent notice on our Service, prior\\nto the change becoming effective and update “effective date” at the top of this\\nPrivacy Policy.\\n\\nYou are advised to review this Privacy Policy periodically for any changes.\\nChanges to this Privacy Policy are effective when they are posted on this page.\\n\\n## Contact Us\\n\\nIf you have any questions about this Privacy Policy, please contact us:\\n\\nBy email: Support@PlayForm.LTD.\\n\\nBy phone number: +359876668093.\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia.\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"privacy-policy\",\"text\":\"PRIVACY POLICY\"},{\"depth\":2,\"slug\":\"introduction\",\"text\":\"Introduction\"},{\"depth\":2,\"slug\":\"definitions\",\"text\":\"Definitions\"},{\"depth\":2,\"slug\":\"information-collection-and-use\",\"text\":\"Information Collection and Use\"},{\"depth\":2,\"slug\":\"types-of-data-collected\",\"text\":\"Types of Data Collected\"},{\"depth\":2,\"slug\":\"use-of-data\",\"text\":\"Use of Data\"},{\"depth\":2,\"slug\":\"retention-of-data\",\"text\":\"Retention of Data\"},{\"depth\":2,\"slug\":\"transfer-of-data\",\"text\":\"Transfer of Data\"},{\"depth\":2,\"slug\":\"disclosure-of-data\",\"text\":\"Disclosure of Data\"},{\"depth\":2,\"slug\":\"security-of-data\",\"text\":\"Security of Data\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-general-data-protection-regulation-gdpr\",\"text\":\"Your Data Protection Rights Under General Data Protection Regulation (GDPR)\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-the-california-privacy-protection-act-caloppa\",\"text\":\"Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)\"},{\"depth\":2,\"slug\":\"your-data-protection-rights-under-the-california-consumer-privacy-act-ccpa\",\"text\":\"Your Data Protection Rights under the California Consumer Privacy Act (CCPA)\"},{\"depth\":2,\"slug\":\"service-providers\",\"text\":\"Service Providers\"},{\"depth\":2,\"slug\":\"payments\",\"text\":\"Payments\"},{\"depth\":2,\"slug\":\"links-to-other-sites\",\"text\":\"Links to Other Sites\"},{\"depth\":2,\"slug\":\"childrens-privacy\",\"text\":\"Children’s Privacy\"},{\"depth\":2,\"slug\":\"changes-to-this-privacy-policy\",\"text\":\"Changes to This Privacy Policy\"},{\"depth\":2,\"slug\":\"contact-us\",\"text\":\"Contact Us\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":"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"} \ No newline at end of file diff --git a/Target/chunks/terms-of-service_DT2W3qow.mjs.map b/Target/chunks/terms-of-service_tGGEQQqk.mjs.map similarity index 99% rename from Target/chunks/terms-of-service_DT2W3qow.mjs.map rename to Target/chunks/terms-of-service_tGGEQQqk.mjs.map index 9d74bdc2..755d0dc5 100644 --- a/Target/chunks/terms-of-service_DT2W3qow.mjs.map +++ b/Target/chunks/terms-of-service_tGGEQQqk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"terms-of-service_DT2W3qow.mjs","sources":["../../Source/Content/en/terms-of-service.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

TERMS OF SERVICE

\\n

Effective date: 01.12.2016 / January 12th 2016
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

Introduction

\\n

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you\\nhave just clicked our Terms of Service, please pause, grab a cup of coffee and\\ncarefully read the following pages. It will take you approximately 20 minutes.

\\n

These Terms of Service (“Terms”, “Terms of Service”) govern your use of\\nour web pages located at https://PlayForm.LTD and our mobile application\\nPlayForm (together or individually “Service”) operated by PlayForm ltd.

\\n

Our Privacy Policy also governs your use of our Service and explains how we\\ncollect, safeguard and disclose information that results from your use of our\\nweb pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

\\n

Your agreement with us includes these Terms and our Privacy Policy\\n(“Agreements”). You acknowledge that you have read and understood\\nAgreements, and agree to be bound of them.

\\n

If you do not agree with (or cannot comply with) Agreements, then you may not\\nuse the Service, but please let us know by emailing at Support@PlayForm.LTD so\\nwe can try to find a solution. These Terms apply to all visitors, users and\\nothers who wish to access or use Service.

\\n

Thank you for being responsible.

\\n

Communications

\\n

By creating an Account on our Service, you agree to subscribe to newsletters,\\nmarketing or promotional materials and other information we may send. However,\\nyou may opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at.

\\n

Purchases

\\n

If you wish to purchase any product or service made available through Service\\n(“Purchase”), you may be asked to supply certain information relevant to\\nyour Purchase including, without limitation, your credit card number, the\\nexpiration date of your credit card, your billing address, and your shipping\\ninformation.

\\n

You represent and warrant that:

\\n

a) you have the legal right to use any credit card(s) or other payment method(s)\\nin connection with any Purchase; and that

\\n

b) the information you supply to us is true, correct and complete.

\\n

We may employ the use of third-party services for the purpose of facilitating\\npayment and the completion of Purchases. By submitting your information, you\\ngrant us the right to provide the information to these third parties subject to\\nour Privacy Policy.

\\n

We reserve the right to refuse or cancel your order at any time for reasons\\nincluding but not limited to: product or service availability, errors in the\\ndescription or price of the product or service, error in your order or other\\nreasons.

\\n

We reserve the right to refuse or cancel your order if fraud or an unauthorized\\nor illegal transaction is suspected.

\\n

Contests, Sweepstakes and Promotions

\\n

Any contests, sweepstakes or other promotions (collectively, “Promotions”)\\nmade available through Service may be governed by rules that are separate from\\nthese Terms of Service. If you participate in any Promotions, please review the\\napplicable rules as well as our Privacy Policy. If the rules for a Promotion\\nconflict with these Terms of Service, Promotion rules will apply.

\\n

Subscriptions

\\n

Some parts of Service are billed on a subscription basis\\n(“Subscription(s)”). You will be billed in advance on a recurring and\\nperiodic basis (“Billing Cycle”). Billing cycles are set either on a monthly\\nor annual basis, depending on the type of subscription plan you select when\\npurchasing a Subscription.

\\n

At the end of each Billing Cycle, your Subscription will automatically renew\\nunder the exact same conditions unless you cancel it or PlayForm ltd. cancels\\nit. You may cancel your Subscription renewal either through your online account\\nmanagement page or by contacting PlayForm ltd. customer support team.

\\n

A valid payment method, including credit card or PayPal, is required to process\\nthe payment for your subscription. You shall provide PlayForm ltd. with accurate\\nand complete billing information including full name, address, state, zip code,\\ntelephone number, and a valid payment method information. By submitting such\\npayment information, you automatically authorize PlayForm ltd. to charge all\\nSubscription fees incurred through your account to any such payment instruments.

\\n

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue\\nan electronic invoice indicating that you must proceed manually, within a\\ncertain deadline date, with the full payment corresponding to the billing period\\nas indicated on the invoice.

\\n

Free Trial

\\n

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free\\ntrial for a limited period of time (“Free Trial”).

\\n

You may be required to enter your billing information in order to sign up for\\nFree Trial.

\\n

If you do enter your billing information when signing up for Free Trial, you\\nwill not be charged by PlayForm ltd. until Free Trial has expired. On the last\\nday of Free Trial period, unless you cancelled your Subscription, you will be\\nautomatically charged the applicable Subscription fees for the type of\\nSubscription you have selected.

\\n

At any time and without notice, PlayForm ltd. reserves the right to

\\n

a) modify Terms of Service of Free Trial offer, or

\\n

b) cancel such Free Trial offer.

\\n

Fee Changes

\\n

PlayForm ltd., in its sole discretion and at any time, may modify Subscription\\nfees for the Subscriptions. Any Subscription fee change will become effective at\\nthe end of the then-current Billing Cycle.

\\n

PlayForm ltd. will provide you with a reasonable prior notice of any change in\\nSubscription fees to give you an opportunity to terminate your Subscription\\nbefore such change becomes effective.

\\n

Your continued use of Service after Subscription fee change comes into effect\\nconstitutes your agreement to pay the modified Subscription fee amount.

\\n

Refunds

\\n

We issue refunds for Contracts within fourteen (14) days of the original\\npurchase of the Contract.

\\n

Content

\\n

Our Service allows you to post, link, store, share and otherwise make available\\ncertain information, text, graphics, videos, or other material (“Content”).\\nYou are responsible for Content that you post on or through Service, including\\nits legality, reliability, and appropriateness.

\\n

By posting Content on or through Service, You represent and warrant that:

\\n

a) Content is yours (you own it) and/or you have the right to use it and the\\nright to grant us the rights and license as provided in these Terms, and

\\n

b) that the posting of your Content on or through Service does not violate the\\nprivacy rights, publicity rights, copyrights, contract rights or any other\\nrights of any person or entity. We reserve the right to terminate the account of\\nanyone found to be infringing on a copyright.

\\n

You retain any and all of your rights to any Content you submit, post or display\\non or through Service and you are responsible for protecting those rights. We\\ntake no responsibility and assume no liability for Content you or any\\nthird-party posts on or through Service. However, by posting Content using\\nService you grant us the right and license to use, modify, publicly perform,\\npublicly display, reproduce, and distribute such Content on and through Service.\\nYou agree that this license includes the right for us to make your Content\\navailable to other users of Service, who may also use your Content subject to\\nthese Terms.

\\n

PlayForm ltd. has the right but not the obligation to monitor and edit all\\nContent provided by users.

\\n

In addition, Content found on or through this Service are the property of\\nPlayForm ltd. or used with permission. You may not distribute, modify, transmit,\\nreuse, download, repost, copy, or use said Content, whether in whole or in part,\\nfor commercial purposes or for personal gain, without express advance written\\npermission from us.

\\n

Prohibited Uses

\\n

You may use Service only for lawful purposes and in accordance with Terms. You\\nagree not to use Service:

\\n

a. In any way that violates any applicable national or international law or\\nregulation.

\\n

b. For the purpose of exploiting, harming, or attempting to exploit or harm\\nminors in any way by exposing them to inappropriate content or otherwise.

\\n

c. To transmit, or procure the sending of, any advertising or promotional\\nmaterial, including any “junk mail”, “chain letter,” “spam,” or any other\\nsimilar solicitation.

\\n

d. To impersonate or attempt to impersonate Company, a Company employee, another\\nuser, or any other person or entity.

\\n

e. In any way that infringes upon the rights of others, or in any way is\\nillegal, threatening, fraudulent, or harmful, or in connection with any\\nunlawful, illegal, fraudulent, or harmful purpose or activity.

\\n

f. To engage in any other conduct that restricts or inhibits anyone’s use or\\nenjoyment of Service, or which, as determined by us, may harm or offend Company\\nor users of Service or expose them to liability.

\\n

Additionally, you agree not to:

\\n

a. Use Service in any manner that could disable, overburden, damage, or impair\\nService or interfere with any other party’s use of Service, including their\\nability to engage in real time activities through Service.

\\n

b. Use any robot, spider, or other automatic device, process, or means to access\\nService for any purpose, including monitoring or copying any of the material on\\nService.

\\n

c. Use any manual process to monitor or copy any of the material on Service or\\nfor any other unauthorized purpose without our prior written consent.

\\n

d. Use any device, software, or routine that interferes with the proper working\\nof Service.

\\n

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material\\nwhich is malicious or technologically harmful.

\\n

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt\\nany parts of Service, the server on which Service is stored, or any server,\\ncomputer, or database connected to Service.

\\n

g. Attack Service via a denial-of-service attack or a distributed\\ndenial-of-service attack.

\\n

h. Take any action that may damage or falsify Company rating.

\\n

i. Otherwise attempt to interfere with the proper working of Service.

\\n

No Use by Minors

\\n

Service is intended only for access and use by individuals at least eighteen\\n(18) years old. By accessing or using any of Company, you warrant and represent\\nthat you are at least eighteen (18) years of age and with the full authority,\\nright, and capacity to enter into this agreement and abide by all of the terms\\nand conditions of Terms. If you are not at least eighteen (18) years old, you\\nare prohibited from both the access and usage of Service.

\\n

Accounts

\\n

When you create an account with us, you guarantee that you are above the age of\\n18, and that the information you provide us is accurate, complete, and current\\nat all times. Inaccurate, incomplete, or obsolete information may result in the\\nimmediate termination of your account on Service.

\\n

You are responsible for maintaining the confidentiality of your account and\\npassword, including but not limited to the restriction of access to your\\ncomputer and/or account. You agree to accept responsibility for any and all\\nactivities or actions that occur under your account and/or password, whether\\nyour password is with our Service or a third-party service. You must notify us\\nimmediately upon becoming aware of any breach of security or unauthorized use of\\nyour account.

\\n

You may not use as a username the name of another person or entity or that is\\nnot lawfully available for use, a name or trademark that is subject to any\\nrights of another person or entity other than you, without appropriate\\nauthorization. You may not use as a username any name that is offensive, vulgar\\nor obscene.

\\n

We reserve the right to refuse service, terminate accounts, remove or edit\\ncontent, or cancel orders in our sole discretion.

\\n

Intellectual Property

\\n

Service and its original content (excluding Content provided by users), features\\nand functionality are and will remain the exclusive property of PlayForm ltd.\\nand its licensors. Service is protected by copyright, trademark, and other laws\\nof the United States and foreign countries. Our trademarks and trade dress may\\nnot be used in connection with any product or service without the prior written\\nconsent of PlayForm ltd.

\\n

Copyright Policy

\\n

We respect the intellectual property rights of others. It is our policy to\\nrespond to any claim that Content posted on Service infringes on the copyright\\nor other intellectual property rights (“Infringement”) of any person or\\nentity.

\\n

If you are a copyright owner, or authorized on behalf of one, and you believe\\nthat the copyrighted work has been copied in a way that constitutes copyright\\ninfringement, please submit your claim via email to dmca@PlayForm.LTD, with\\nthe subject line: “Copyright Infringement” and include in your claim a\\ndetailed description of the alleged Infringement as detailed below, under “DMCA\\nNotice and Procedure for Copyright Infringement Claims”

\\n

You may be held accountable for damages (including costs and attorneys’ fees)\\nfor misrepresentation or bad-faith claims on the infringement of any Content\\nfound on and/or through Service on your copyright.

\\n\\n

You may submit a notification pursuant to the Digital Millennium Copyright Act\\n(DMCA) by providing our Copyright Agent with the following information in\\nwriting (see 17 U.S.C 512(c)(3) for further detail):

\\n

a. an electronic or physical signature of the person authorized to act on behalf\\nof the owner of the copyright’s interest;

\\n

b. a description of the copyrighted work that you claim has been infringed,\\nincluding the URL (i.e., web page address) of the location where the copyrighted\\nwork exists or a copy of the copyrighted work;

\\n

c. identification of the URL or other specific location on Service where the\\nmaterial that you claim is infringing is located;

\\n

d. your address, telephone number, and email address;

\\n

e. a statement by you that you have a good faith belief that the disputed use is\\nnot authorized by the copyright owner, its agent, or the law;

\\n

f. a statement by you, made under penalty of perjury, that the above information\\nin your notice is accurate and that you are the copyright owner or authorized to\\nact on the copyright owner’s behalf.

\\n

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

\\n

Error Reporting and Feedback

\\n

You may provide us either directly at Support@PlayForm.LTD or via third party\\nsites and tools with information and feedback concerning errors, suggestions for\\nimprovements, ideas, problems, complaints, and other matters related to our\\nService (“Feedback”). You acknowledge and agree that:

\\n

a) you shall not retain, acquire or assert any intellectual property right or\\nother right, title or interest in or to the Feedback;

\\n

b) Company may have development ideas similar to the Feedback;

\\n

c) Feedback does not contain confidential information or proprietary information\\nfrom you or any third party; and

\\n

d) Company is not under any obligation of confidentiality with respect to the\\nFeedback. In the event the transfer of the ownership to the Feedback is not\\npossible due to applicable mandatory laws, you grant Company and its affiliates\\nan exclusive, transferable, irrevocable, free-of-charge, sub-licensable,\\nunlimited and perpetual right to use (including copy, modify, create derivative\\nworks, publish, distribute and commercialize) Feedback in any manner and for any\\npurpose.

\\n\\n

Our Service may contain links to third party web sites or services that are not\\nowned or controlled by PlayForm ltd.

\\n

PlayForm ltd. has no control over, and assumes no responsibility for the\\ncontent, privacy policies, or practices of any third-party web sites or\\nservices. We do not warrant the offerings of any of these entities/individuals\\nor their websites.

\\n

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE,\\nDIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY\\nOR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES\\nAVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

\\n

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY\\nTHIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

\\n

Disclaimer Of Warranty

\\n

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS.\\nCOMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,\\nAS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS\\nINCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR\\nCONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

\\n

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR\\nREPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY,\\nACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING,\\nNEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT\\nTHE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE\\nSERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS\\nWILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE\\nFREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES\\nOR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR\\nEXPECTATIONS.

\\n

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\\nSTATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\\nMERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

\\n

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED\\nUNDER APPLICABLE LAW.

\\n

Limitation Of Liability

\\n

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS,\\nEMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL,\\nOR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL\\nRELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON\\nAPPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER\\nIN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT\\nOF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM\\nFOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY\\nVIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR\\nREGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF\\nSUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE\\nPART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR\\nSERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE\\nDAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE,\\nINCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY\\nNOT APPLY TO YOU.

\\n

Termination

\\n

We may terminate or suspend your account and bar access to Service immediately,\\nwithout prior notice or liability, under our sole discretion, for any reason\\nwhatsoever and without limitation, including but not limited to a breach of\\nTerms.

\\n

If you wish to terminate your account, you may simply discontinue using Service.

\\n

All provisions of Terms which by their nature should survive termination shall\\nsurvive termination, including, without limitation, ownership provisions,\\nwarranty disclaimers, indemnity and limitations of liability.

\\n

Governing Law

\\n

These Terms shall be governed and construed in accordance with the laws of\\nRepublic of Bulgaria without regard to its conflict of law provisions.

\\n

Our failure to enforce any right or provision of these Terms will not be\\nconsidered a waiver of those rights. If any provision of these Terms is held to\\nbe invalid or unenforceable by a court, the remaining provisions of these Terms\\nwill remain in effect. These Terms constitute the entire agreement between us\\nregarding our Service and supersede and replace any prior agreements we might\\nhave had between us regarding Service.

\\n

Changes To Service

\\n

We reserve the right to withdraw or amend our Service, and any service or\\nmaterial we provide via Service, in our sole discretion without notice. We will\\nnot be liable if for any reason all or any part of Service is unavailable at any\\ntime or for any period. From time to time, we may restrict access to some parts\\nof Service, or the entire Service, to users, including registered users.

\\n

Amendments To Terms

\\n

We may amend Terms at any time by posting the amended terms on this site. It is\\nyour responsibility to review these Terms periodically.

\\n

Your continued use of the Platform following the posting of revised Terms means\\nthat you accept and agree to the changes. You are expected to check this page\\nfrequently so you are aware of any changes, as they are binding on you.

\\n

By continuing to access or use our Service after any revisions become effective,\\nyou agree to be bound by the revised terms. If you do not agree to the new\\nterms, you are no longer authorized to use Service.

\\n

Waiver And Severability

\\n

No waiver by Company of any term or condition set forth in Terms shall be deemed\\na further or continuing waiver of such term or condition or a waiver of any\\nother term or condition, and any failure of Company to assert a right or\\nprovision under Terms shall not constitute a waiver of such right or provision.

\\n

If any provision of Terms is held by a court or other tribunal of competent\\njurisdiction to be invalid, illegal or unenforceable for any reason, such\\nprovision shall be eliminated or limited to the minimum extent such that the\\nremaining provisions of Terms will continue in full force and effect.

\\n

Acknowledgement

\\n

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE\\nREAD THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

\\n

Contact Us

\\n

Please send your feedback, comments, requests for technical support:

\\n

By email: Support@PlayForm.LTD

\\n

By phone number: +359876668093.

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Terms of Service\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/terms-of-service.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [TERMS OF SERVICE]\\n - [Introduction]\\n - [Communications]\\n - [Purchases]\\n - [Contests, Sweepstakes and Promotions]\\n - [Subscriptions]\\n - [Free Trial]\\n - [Fee Changes]\\n - [Refunds]\\n - [Content]\\n - [Prohibited Uses]\\n - [No Use by Minors]\\n - [Accounts]\\n - [Intellectual Property]\\n - [Copyright Policy]\\n - [DMCA Notice and Procedure for Copyright Infringement Claims]\\n - [Error Reporting and Feedback]\\n - [Links To Other Web Sites]\\n - [Disclaimer Of Warranty]\\n - [Limitation Of Liability]\\n - [Termination]\\n - [Governing Law]\\n - [Changes To Service]\\n - [Amendments To Terms]\\n - [Waiver And Severability]\\n - [Acknowledgement]\\n - [Contact Us]\\n\\n[terms of service]: #terms-of-service\\n[introduction]: #introduction\\n[communications]: #communications\\n[purchases]: #purchases\\n[contests, sweepstakes and promotions]: #contests-sweepstakes-and-promotions\\n[subscriptions]: #subscriptions\\n[free trial]: #free-trial\\n[fee changes]: #fee-changes\\n[refunds]: #refunds\\n[content]: #content\\n[prohibited uses]: #prohibited-uses\\n[no use by minors]: #no-use-by-minors\\n[accounts]: #accounts\\n[intellectual property]: #intellectual-property\\n[copyright policy]: #copyright-policy\\n[dmca notice and procedure for copyright infringement claims]:\\n\\t#dmca-notice-and-procedure-for-copyright-infringement-claims\\n[error reporting and feedback]: #error-reporting-and-feedback\\n[links to other web sites]: #links-to-other-web-sites\\n[disclaimer of warranty]: #disclaimer-of-warranty\\n[limitation of liability]: #limitation-of-liability\\n[termination]: #termination\\n[governing law]: #governing-law\\n[changes to service]: #changes-to-service\\n[amendments to terms]: #amendments-to-terms\\n[waiver and severability]: #waiver-and-severability\\n[acknowledgement]: #acknowledgement\\n[contact us]: #contact-us\\n\\n# TERMS OF SERVICE\\n\\nEffective date: 01.12.2016 / January 12th 2016\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\n## Introduction\\n\\nWelcome to PlayForm ltd. (“**Company**”, “**we**”, “**our**”, “**us**”)! As you\\nhave just clicked our Terms of Service, please pause, grab a cup of coffee and\\ncarefully read the following pages. It will take you approximately 20 minutes.\\n\\nThese Terms of Service (“**Terms**”, “**Terms of Service**”) govern your use of\\nour web pages located at https://PlayForm.LTD and our mobile application\\nPlayForm (together or individually “**Service**”) operated by PlayForm ltd.\\n\\nOur Privacy Policy also governs your use of our Service and explains how we\\ncollect, safeguard and disclose information that results from your use of our\\nweb pages. Please read it here https://PlayForm.LTD/Privacy-Policy.\\n\\nYour agreement with us includes these Terms and our Privacy Policy\\n(“**Agreements**”). You acknowledge that you have read and understood\\nAgreements, and agree to be bound of them.\\n\\nIf you do not agree with (or cannot comply with) Agreements, then you may not\\nuse the Service, but please let us know by emailing at Support@PlayForm.LTD so\\nwe can try to find a solution. These Terms apply to all visitors, users and\\nothers who wish to access or use Service.\\n\\nThank you for being responsible.\\n\\n## Communications\\n\\nBy creating an Account on our Service, you agree to subscribe to newsletters,\\nmarketing or promotional materials and other information we may send. However,\\nyou may opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at.\\n\\n## Purchases\\n\\nIf you wish to purchase any product or service made available through Service\\n(“**Purchase**”), you may be asked to supply certain information relevant to\\nyour Purchase including, without limitation, your credit card number, the\\nexpiration date of your credit card, your billing address, and your shipping\\ninformation.\\n\\nYou represent and warrant that:\\n\\na) you have the legal right to use any credit card(s) or other payment method(s)\\nin connection with any Purchase; and that\\n\\nb) the information you supply to us is true, correct and complete.\\n\\nWe may employ the use of third-party services for the purpose of facilitating\\npayment and the completion of Purchases. By submitting your information, you\\ngrant us the right to provide the information to these third parties subject to\\nour Privacy Policy.\\n\\nWe reserve the right to refuse or cancel your order at any time for reasons\\nincluding but not limited to: product or service availability, errors in the\\ndescription or price of the product or service, error in your order or other\\nreasons.\\n\\nWe reserve the right to refuse or cancel your order if fraud or an unauthorized\\nor illegal transaction is suspected.\\n\\n## Contests, Sweepstakes and Promotions\\n\\nAny contests, sweepstakes or other promotions (collectively, “**Promotions**”)\\nmade available through Service may be governed by rules that are separate from\\nthese Terms of Service. If you participate in any Promotions, please review the\\napplicable rules as well as our Privacy Policy. If the rules for a Promotion\\nconflict with these Terms of Service, Promotion rules will apply.\\n\\n## Subscriptions\\n\\nSome parts of Service are billed on a subscription basis\\n(“**Subscription**(**s**)”). You will be billed in advance on a recurring and\\nperiodic basis (“**Billing Cycle**”). Billing cycles are set either on a monthly\\nor annual basis, depending on the type of subscription plan you select when\\npurchasing a Subscription.\\n\\nAt the end of each Billing Cycle, your Subscription will automatically renew\\nunder the exact same conditions unless you cancel it or PlayForm ltd. cancels\\nit. You may cancel your Subscription renewal either through your online account\\nmanagement page or by contacting PlayForm ltd. customer support team.\\n\\nA valid payment method, including credit card or PayPal, is required to process\\nthe payment for your subscription. You shall provide PlayForm ltd. with accurate\\nand complete billing information including full name, address, state, zip code,\\ntelephone number, and a valid payment method information. By submitting such\\npayment information, you automatically authorize PlayForm ltd. to charge all\\nSubscription fees incurred through your account to any such payment instruments.\\n\\nShould automatic billing fail to occur for any reason, PlayForm ltd. will issue\\nan electronic invoice indicating that you must proceed manually, within a\\ncertain deadline date, with the full payment corresponding to the billing period\\nas indicated on the invoice.\\n\\n## Free Trial\\n\\nPlayForm ltd. may, at its sole discretion, offer a Subscription with a free\\ntrial for a limited period of time (“**Free Trial**”).\\n\\nYou may be required to enter your billing information in order to sign up for\\nFree Trial.\\n\\nIf you do enter your billing information when signing up for Free Trial, you\\nwill not be charged by PlayForm ltd. until Free Trial has expired. On the last\\nday of Free Trial period, unless you cancelled your Subscription, you will be\\nautomatically charged the applicable Subscription fees for the type of\\nSubscription you have selected.\\n\\nAt any time and without notice, PlayForm ltd. reserves the right to\\n\\na) modify Terms of Service of Free Trial offer, or\\n\\nb) cancel such Free Trial offer.\\n\\n## Fee Changes\\n\\nPlayForm ltd., in its sole discretion and at any time, may modify Subscription\\nfees for the Subscriptions. Any Subscription fee change will become effective at\\nthe end of the then-current Billing Cycle.\\n\\nPlayForm ltd. will provide you with a reasonable prior notice of any change in\\nSubscription fees to give you an opportunity to terminate your Subscription\\nbefore such change becomes effective.\\n\\nYour continued use of Service after Subscription fee change comes into effect\\nconstitutes your agreement to pay the modified Subscription fee amount.\\n\\n## Refunds\\n\\nWe issue refunds for Contracts within fourteen (14) days of the original\\npurchase of the Contract.\\n\\n## Content\\n\\nOur Service allows you to post, link, store, share and otherwise make available\\ncertain information, text, graphics, videos, or other material (“**Content**”).\\nYou are responsible for Content that you post on or through Service, including\\nits legality, reliability, and appropriateness.\\n\\nBy posting Content on or through Service, You represent and warrant that:\\n\\na) Content is yours (you own it) and/or you have the right to use it and the\\nright to grant us the rights and license as provided in these Terms, and\\n\\nb) that the posting of your Content on or through Service does not violate the\\nprivacy rights, publicity rights, copyrights, contract rights or any other\\nrights of any person or entity. We reserve the right to terminate the account of\\nanyone found to be infringing on a copyright.\\n\\nYou retain any and all of your rights to any Content you submit, post or display\\non or through Service and you are responsible for protecting those rights. We\\ntake no responsibility and assume no liability for Content you or any\\nthird-party posts on or through Service. However, by posting Content using\\nService you grant us the right and license to use, modify, publicly perform,\\npublicly display, reproduce, and distribute such Content on and through Service.\\nYou agree that this license includes the right for us to make your Content\\navailable to other users of Service, who may also use your Content subject to\\nthese Terms.\\n\\nPlayForm ltd. has the right but not the obligation to monitor and edit all\\nContent provided by users.\\n\\nIn addition, Content found on or through this Service are the property of\\nPlayForm ltd. or used with permission. You may not distribute, modify, transmit,\\nreuse, download, repost, copy, or use said Content, whether in whole or in part,\\nfor commercial purposes or for personal gain, without express advance written\\npermission from us.\\n\\n## Prohibited Uses\\n\\nYou may use Service only for lawful purposes and in accordance with Terms. You\\nagree not to use Service:\\n\\na. In any way that violates any applicable national or international law or\\nregulation.\\n\\nb. For the purpose of exploiting, harming, or attempting to exploit or harm\\nminors in any way by exposing them to inappropriate content or otherwise.\\n\\nc. To transmit, or procure the sending of, any advertising or promotional\\nmaterial, including any “junk mail”, “chain letter,” “spam,” or any other\\nsimilar solicitation.\\n\\nd. To impersonate or attempt to impersonate Company, a Company employee, another\\nuser, or any other person or entity.\\n\\ne. In any way that infringes upon the rights of others, or in any way is\\nillegal, threatening, fraudulent, or harmful, or in connection with any\\nunlawful, illegal, fraudulent, or harmful purpose or activity.\\n\\nf. To engage in any other conduct that restricts or inhibits anyone’s use or\\nenjoyment of Service, or which, as determined by us, may harm or offend Company\\nor users of Service or expose them to liability.\\n\\nAdditionally, you agree not to:\\n\\na. Use Service in any manner that could disable, overburden, damage, or impair\\nService or interfere with any other party’s use of Service, including their\\nability to engage in real time activities through Service.\\n\\nb. Use any robot, spider, or other automatic device, process, or means to access\\nService for any purpose, including monitoring or copying any of the material on\\nService.\\n\\nc. Use any manual process to monitor or copy any of the material on Service or\\nfor any other unauthorized purpose without our prior written consent.\\n\\nd. Use any device, software, or routine that interferes with the proper working\\nof Service.\\n\\ne. Introduce any viruses, trojan horses, worms, logic bombs, or other material\\nwhich is malicious or technologically harmful.\\n\\nf. Attempt to gain unauthorized access to, interfere with, damage, or disrupt\\nany parts of Service, the server on which Service is stored, or any server,\\ncomputer, or database connected to Service.\\n\\ng. Attack Service via a denial-of-service attack or a distributed\\ndenial-of-service attack.\\n\\nh. Take any action that may damage or falsify Company rating.\\n\\ni. Otherwise attempt to interfere with the proper working of Service.\\n\\n## No Use by Minors\\n\\nService is intended only for access and use by individuals at least eighteen\\n(18) years old. By accessing or using any of Company, you warrant and represent\\nthat you are at least eighteen (18) years of age and with the full authority,\\nright, and capacity to enter into this agreement and abide by all of the terms\\nand conditions of Terms. If you are not at least eighteen (18) years old, you\\nare prohibited from both the access and usage of Service.\\n\\n## Accounts\\n\\nWhen you create an account with us, you guarantee that you are above the age of\\n18, and that the information you provide us is accurate, complete, and current\\nat all times. Inaccurate, incomplete, or obsolete information may result in the\\nimmediate termination of your account on Service.\\n\\nYou are responsible for maintaining the confidentiality of your account and\\npassword, including but not limited to the restriction of access to your\\ncomputer and/or account. You agree to accept responsibility for any and all\\nactivities or actions that occur under your account and/or password, whether\\nyour password is with our Service or a third-party service. You must notify us\\nimmediately upon becoming aware of any breach of security or unauthorized use of\\nyour account.\\n\\nYou may not use as a username the name of another person or entity or that is\\nnot lawfully available for use, a name or trademark that is subject to any\\nrights of another person or entity other than you, without appropriate\\nauthorization. You may not use as a username any name that is offensive, vulgar\\nor obscene.\\n\\nWe reserve the right to refuse service, terminate accounts, remove or edit\\ncontent, or cancel orders in our sole discretion.\\n\\n## Intellectual Property\\n\\nService and its original content (excluding Content provided by users), features\\nand functionality are and will remain the exclusive property of PlayForm ltd.\\nand its licensors. Service is protected by copyright, trademark, and other laws\\nof the United States and foreign countries. Our trademarks and trade dress may\\nnot be used in connection with any product or service without the prior written\\nconsent of PlayForm ltd.\\n\\n## Copyright Policy\\n\\nWe respect the intellectual property rights of others. It is our policy to\\nrespond to any claim that Content posted on Service infringes on the copyright\\nor other intellectual property rights (“**Infringement**”) of any person or\\nentity.\\n\\nIf you are a copyright owner, or authorized on behalf of one, and you believe\\nthat the copyrighted work has been copied in a way that constitutes copyright\\ninfringement, please submit your claim via email to dmca@PlayForm.LTD, with\\nthe subject line: “**Copyright Infringement**” and include in your claim a\\ndetailed description of the alleged Infringement as detailed below, under “DMCA\\nNotice and Procedure for Copyright Infringement Claims”\\n\\nYou may be held accountable for damages (including costs and attorneys' fees)\\nfor misrepresentation or bad-faith claims on the infringement of any Content\\nfound on and/or through Service on your copyright.\\n\\n## DMCA Notice and Procedure for Copyright Infringement Claims\\n\\nYou may submit a notification pursuant to the Digital Millennium Copyright Act\\n(DMCA) by providing our Copyright Agent with the following information in\\nwriting (see 17 U.S.C 512(c)(3) for further detail):\\n\\na. an electronic or physical signature of the person authorized to act on behalf\\nof the owner of the copyright's interest;\\n\\nb. a description of the copyrighted work that you claim has been infringed,\\nincluding the URL (i.e., web page address) of the location where the copyrighted\\nwork exists or a copy of the copyrighted work;\\n\\nc. identification of the URL or other specific location on Service where the\\nmaterial that you claim is infringing is located;\\n\\nd. your address, telephone number, and email address;\\n\\ne. a statement by you that you have a good faith belief that the disputed use is\\nnot authorized by the copyright owner, its agent, or the law;\\n\\nf. a statement by you, made under penalty of perjury, that the above information\\nin your notice is accurate and that you are the copyright owner or authorized to\\nact on the copyright owner's behalf.\\n\\nYou can contact our Copyright Agent via email at dmca@PlayForm.LTD\\n\\n## Error Reporting and Feedback\\n\\nYou may provide us either directly at Support@PlayForm.LTD or via third party\\nsites and tools with information and feedback concerning errors, suggestions for\\nimprovements, ideas, problems, complaints, and other matters related to our\\nService (“**Feedback**”). You acknowledge and agree that:\\n\\na) you shall not retain, acquire or assert any intellectual property right or\\nother right, title or interest in or to the Feedback;\\n\\nb) Company may have development ideas similar to the Feedback;\\n\\nc) Feedback does not contain confidential information or proprietary information\\nfrom you or any third party; and\\n\\nd) Company is not under any obligation of confidentiality with respect to the\\nFeedback. In the event the transfer of the ownership to the Feedback is not\\npossible due to applicable mandatory laws, you grant Company and its affiliates\\nan exclusive, transferable, irrevocable, free-of-charge, sub-licensable,\\nunlimited and perpetual right to use (including copy, modify, create derivative\\nworks, publish, distribute and commercialize) Feedback in any manner and for any\\npurpose.\\n\\n## Links To Other Web Sites\\n\\nOur Service may contain links to third party web sites or services that are not\\nowned or controlled by PlayForm ltd.\\n\\nPlayForm ltd. has no control over, and assumes no responsibility for the\\ncontent, privacy policies, or practices of any third-party web sites or\\nservices. We do not warrant the offerings of any of these entities/individuals\\nor their websites.\\n\\nYOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE,\\nDIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY\\nOR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES\\nAVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.\\n\\nWE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY\\nTHIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.\\n\\n## Disclaimer Of Warranty\\n\\nTHESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS.\\nCOMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,\\nAS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS\\nINCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR\\nCONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.\\n\\nNEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR\\nREPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY,\\nACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING,\\nNEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT\\nTHE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE\\nSERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS\\nWILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE\\nFREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES\\nOR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR\\nEXPECTATIONS.\\n\\nCOMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\\nSTATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\\nMERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.\\n\\nTHE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED\\nUNDER APPLICABLE LAW.\\n\\n## Limitation Of Liability\\n\\nEXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS,\\nEMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL,\\nOR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS' FEES AND ALL\\nRELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON\\nAPPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER\\nIN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT\\nOF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM\\nFOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY\\nVIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR\\nREGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF\\nSUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE\\nPART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR\\nSERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE\\nDAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE,\\nINCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY\\nNOT APPLY TO YOU.\\n\\n## Termination\\n\\nWe may terminate or suspend your account and bar access to Service immediately,\\nwithout prior notice or liability, under our sole discretion, for any reason\\nwhatsoever and without limitation, including but not limited to a breach of\\nTerms.\\n\\nIf you wish to terminate your account, you may simply discontinue using Service.\\n\\nAll provisions of Terms which by their nature should survive termination shall\\nsurvive termination, including, without limitation, ownership provisions,\\nwarranty disclaimers, indemnity and limitations of liability.\\n\\n## Governing Law\\n\\nThese Terms shall be governed and construed in accordance with the laws of\\nRepublic of Bulgaria without regard to its conflict of law provisions.\\n\\nOur failure to enforce any right or provision of these Terms will not be\\nconsidered a waiver of those rights. If any provision of these Terms is held to\\nbe invalid or unenforceable by a court, the remaining provisions of these Terms\\nwill remain in effect. These Terms constitute the entire agreement between us\\nregarding our Service and supersede and replace any prior agreements we might\\nhave had between us regarding Service.\\n\\n## Changes To Service\\n\\nWe reserve the right to withdraw or amend our Service, and any service or\\nmaterial we provide via Service, in our sole discretion without notice. We will\\nnot be liable if for any reason all or any part of Service is unavailable at any\\ntime or for any period. From time to time, we may restrict access to some parts\\nof Service, or the entire Service, to users, including registered users.\\n\\n## Amendments To Terms\\n\\nWe may amend Terms at any time by posting the amended terms on this site. It is\\nyour responsibility to review these Terms periodically.\\n\\nYour continued use of the Platform following the posting of revised Terms means\\nthat you accept and agree to the changes. You are expected to check this page\\nfrequently so you are aware of any changes, as they are binding on you.\\n\\nBy continuing to access or use our Service after any revisions become effective,\\nyou agree to be bound by the revised terms. If you do not agree to the new\\nterms, you are no longer authorized to use Service.\\n\\n## Waiver And Severability\\n\\nNo waiver by Company of any term or condition set forth in Terms shall be deemed\\na further or continuing waiver of such term or condition or a waiver of any\\nother term or condition, and any failure of Company to assert a right or\\nprovision under Terms shall not constitute a waiver of such right or provision.\\n\\nIf any provision of Terms is held by a court or other tribunal of competent\\njurisdiction to be invalid, illegal or unenforceable for any reason, such\\nprovision shall be eliminated or limited to the minimum extent such that the\\nremaining provisions of Terms will continue in full force and effect.\\n\\n## Acknowledgement\\n\\nBY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE\\nREAD THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.\\n\\n## Contact Us\\n\\nPlease send your feedback, comments, requests for technical support:\\n\\nBy email: Support@PlayForm.LTD\\n\\nBy phone number: +359876668093.\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia.\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"terms-of-service\",\"text\":\"TERMS OF SERVICE\"},{\"depth\":2,\"slug\":\"introduction\",\"text\":\"Introduction\"},{\"depth\":2,\"slug\":\"communications\",\"text\":\"Communications\"},{\"depth\":2,\"slug\":\"purchases\",\"text\":\"Purchases\"},{\"depth\":2,\"slug\":\"contests-sweepstakes-and-promotions\",\"text\":\"Contests, Sweepstakes and Promotions\"},{\"depth\":2,\"slug\":\"subscriptions\",\"text\":\"Subscriptions\"},{\"depth\":2,\"slug\":\"free-trial\",\"text\":\"Free Trial\"},{\"depth\":2,\"slug\":\"fee-changes\",\"text\":\"Fee Changes\"},{\"depth\":2,\"slug\":\"refunds\",\"text\":\"Refunds\"},{\"depth\":2,\"slug\":\"content\",\"text\":\"Content\"},{\"depth\":2,\"slug\":\"prohibited-uses\",\"text\":\"Prohibited Uses\"},{\"depth\":2,\"slug\":\"no-use-by-minors\",\"text\":\"No Use by Minors\"},{\"depth\":2,\"slug\":\"accounts\",\"text\":\"Accounts\"},{\"depth\":2,\"slug\":\"intellectual-property\",\"text\":\"Intellectual Property\"},{\"depth\":2,\"slug\":\"copyright-policy\",\"text\":\"Copyright Policy\"},{\"depth\":2,\"slug\":\"dmca-notice-and-procedure-for-copyright-infringement-claims\",\"text\":\"DMCA Notice and Procedure for Copyright Infringement Claims\"},{\"depth\":2,\"slug\":\"error-reporting-and-feedback\",\"text\":\"Error Reporting and Feedback\"},{\"depth\":2,\"slug\":\"links-to-other-web-sites\",\"text\":\"Links To Other Web Sites\"},{\"depth\":2,\"slug\":\"disclaimer-of-warranty\",\"text\":\"Disclaimer Of Warranty\"},{\"depth\":2,\"slug\":\"limitation-of-liability\",\"text\":\"Limitation Of Liability\"},{\"depth\":2,\"slug\":\"termination\",\"text\":\"Termination\"},{\"depth\":2,\"slug\":\"governing-law\",\"text\":\"Governing Law\"},{\"depth\":2,\"slug\":\"changes-to-service\",\"text\":\"Changes To Service\"},{\"depth\":2,\"slug\":\"amendments-to-terms\",\"text\":\"Amendments To Terms\"},{\"depth\":2,\"slug\":\"waiver-and-severability\",\"text\":\"Waiver And Severability\"},{\"depth\":2,\"slug\":\"acknowledgement\",\"text\":\"Acknowledgement\"},{\"depth\":2,\"slug\":\"contact-us\",\"text\":\"Contact Us\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"terms-of-service_tGGEQQqk.mjs","sources":["../../Source/Content/en/terms-of-service.md"],"sourcesContent":["\n\t\t\t\timport { unescapeHTML, spreadAttributes, createComponent, render, renderComponent, maybeRenderHead } from \"D:/Developer/node_modules/astro/dist/runtime/server/index.js\";\n\t\t\t\timport { AstroError, AstroErrorData } from \"D:/Developer/node_modules/astro/dist/core/errors/index.js\";\n\t\t\t\t\n\n\t\t\t\tconst html = () => \"\\n

TERMS OF SERVICE

\\n

Effective date: 01.12.2016 / January 12th 2016
\\nLast updated: 02.11.2022 / February 11th 2022

\\n

Introduction

\\n

Welcome to PlayForm ltd. (“Company”, “we”, “our”, “us”)! As you\\nhave just clicked our Terms of Service, please pause, grab a cup of coffee and\\ncarefully read the following pages. It will take you approximately 20 minutes.

\\n

These Terms of Service (“Terms”, “Terms of Service”) govern your use of\\nour web pages located at https://PlayForm.LTD and our mobile application\\nPlayForm (together or individually “Service”) operated by PlayForm ltd.

\\n

Our Privacy Policy also governs your use of our Service and explains how we\\ncollect, safeguard and disclose information that results from your use of our\\nweb pages. Please read it here https://PlayForm.LTD/Privacy-Policy.

\\n

Your agreement with us includes these Terms and our Privacy Policy\\n(“Agreements”). You acknowledge that you have read and understood\\nAgreements, and agree to be bound of them.

\\n

If you do not agree with (or cannot comply with) Agreements, then you may not\\nuse the Service, but please let us know by emailing at Support@PlayForm.LTD so\\nwe can try to find a solution. These Terms apply to all visitors, users and\\nothers who wish to access or use Service.

\\n

Thank you for being responsible.

\\n

Communications

\\n

By creating an Account on our Service, you agree to subscribe to newsletters,\\nmarketing or promotional materials and other information we may send. However,\\nyou may opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at.

\\n

Purchases

\\n

If you wish to purchase any product or service made available through Service\\n(“Purchase”), you may be asked to supply certain information relevant to\\nyour Purchase including, without limitation, your credit card number, the\\nexpiration date of your credit card, your billing address, and your shipping\\ninformation.

\\n

You represent and warrant that:

\\n

a) you have the legal right to use any credit card(s) or other payment method(s)\\nin connection with any Purchase; and that

\\n

b) the information you supply to us is true, correct and complete.

\\n

We may employ the use of third-party services for the purpose of facilitating\\npayment and the completion of Purchases. By submitting your information, you\\ngrant us the right to provide the information to these third parties subject to\\nour Privacy Policy.

\\n

We reserve the right to refuse or cancel your order at any time for reasons\\nincluding but not limited to: product or service availability, errors in the\\ndescription or price of the product or service, error in your order or other\\nreasons.

\\n

We reserve the right to refuse or cancel your order if fraud or an unauthorized\\nor illegal transaction is suspected.

\\n

Contests, Sweepstakes and Promotions

\\n

Any contests, sweepstakes or other promotions (collectively, “Promotions”)\\nmade available through Service may be governed by rules that are separate from\\nthese Terms of Service. If you participate in any Promotions, please review the\\napplicable rules as well as our Privacy Policy. If the rules for a Promotion\\nconflict with these Terms of Service, Promotion rules will apply.

\\n

Subscriptions

\\n

Some parts of Service are billed on a subscription basis\\n(“Subscription(s)”). You will be billed in advance on a recurring and\\nperiodic basis (“Billing Cycle”). Billing cycles are set either on a monthly\\nor annual basis, depending on the type of subscription plan you select when\\npurchasing a Subscription.

\\n

At the end of each Billing Cycle, your Subscription will automatically renew\\nunder the exact same conditions unless you cancel it or PlayForm ltd. cancels\\nit. You may cancel your Subscription renewal either through your online account\\nmanagement page or by contacting PlayForm ltd. customer support team.

\\n

A valid payment method, including credit card or PayPal, is required to process\\nthe payment for your subscription. You shall provide PlayForm ltd. with accurate\\nand complete billing information including full name, address, state, zip code,\\ntelephone number, and a valid payment method information. By submitting such\\npayment information, you automatically authorize PlayForm ltd. to charge all\\nSubscription fees incurred through your account to any such payment instruments.

\\n

Should automatic billing fail to occur for any reason, PlayForm ltd. will issue\\nan electronic invoice indicating that you must proceed manually, within a\\ncertain deadline date, with the full payment corresponding to the billing period\\nas indicated on the invoice.

\\n

Free Trial

\\n

PlayForm ltd. may, at its sole discretion, offer a Subscription with a free\\ntrial for a limited period of time (“Free Trial”).

\\n

You may be required to enter your billing information in order to sign up for\\nFree Trial.

\\n

If you do enter your billing information when signing up for Free Trial, you\\nwill not be charged by PlayForm ltd. until Free Trial has expired. On the last\\nday of Free Trial period, unless you cancelled your Subscription, you will be\\nautomatically charged the applicable Subscription fees for the type of\\nSubscription you have selected.

\\n

At any time and without notice, PlayForm ltd. reserves the right to

\\n

a) modify Terms of Service of Free Trial offer, or

\\n

b) cancel such Free Trial offer.

\\n

Fee Changes

\\n

PlayForm ltd., in its sole discretion and at any time, may modify Subscription\\nfees for the Subscriptions. Any Subscription fee change will become effective at\\nthe end of the then-current Billing Cycle.

\\n

PlayForm ltd. will provide you with a reasonable prior notice of any change in\\nSubscription fees to give you an opportunity to terminate your Subscription\\nbefore such change becomes effective.

\\n

Your continued use of Service after Subscription fee change comes into effect\\nconstitutes your agreement to pay the modified Subscription fee amount.

\\n

Refunds

\\n

We issue refunds for Contracts within fourteen (14) days of the original\\npurchase of the Contract.

\\n

Content

\\n

Our Service allows you to post, link, store, share and otherwise make available\\ncertain information, text, graphics, videos, or other material (“Content”).\\nYou are responsible for Content that you post on or through Service, including\\nits legality, reliability, and appropriateness.

\\n

By posting Content on or through Service, You represent and warrant that:

\\n

a) Content is yours (you own it) and/or you have the right to use it and the\\nright to grant us the rights and license as provided in these Terms, and

\\n

b) that the posting of your Content on or through Service does not violate the\\nprivacy rights, publicity rights, copyrights, contract rights or any other\\nrights of any person or entity. We reserve the right to terminate the account of\\nanyone found to be infringing on a copyright.

\\n

You retain any and all of your rights to any Content you submit, post or display\\non or through Service and you are responsible for protecting those rights. We\\ntake no responsibility and assume no liability for Content you or any\\nthird-party posts on or through Service. However, by posting Content using\\nService you grant us the right and license to use, modify, publicly perform,\\npublicly display, reproduce, and distribute such Content on and through Service.\\nYou agree that this license includes the right for us to make your Content\\navailable to other users of Service, who may also use your Content subject to\\nthese Terms.

\\n

PlayForm ltd. has the right but not the obligation to monitor and edit all\\nContent provided by users.

\\n

In addition, Content found on or through this Service are the property of\\nPlayForm ltd. or used with permission. You may not distribute, modify, transmit,\\nreuse, download, repost, copy, or use said Content, whether in whole or in part,\\nfor commercial purposes or for personal gain, without express advance written\\npermission from us.

\\n

Prohibited Uses

\\n

You may use Service only for lawful purposes and in accordance with Terms. You\\nagree not to use Service:

\\n

a. In any way that violates any applicable national or international law or\\nregulation.

\\n

b. For the purpose of exploiting, harming, or attempting to exploit or harm\\nminors in any way by exposing them to inappropriate content or otherwise.

\\n

c. To transmit, or procure the sending of, any advertising or promotional\\nmaterial, including any “junk mail”, “chain letter,” “spam,” or any other\\nsimilar solicitation.

\\n

d. To impersonate or attempt to impersonate Company, a Company employee, another\\nuser, or any other person or entity.

\\n

e. In any way that infringes upon the rights of others, or in any way is\\nillegal, threatening, fraudulent, or harmful, or in connection with any\\nunlawful, illegal, fraudulent, or harmful purpose or activity.

\\n

f. To engage in any other conduct that restricts or inhibits anyone’s use or\\nenjoyment of Service, or which, as determined by us, may harm or offend Company\\nor users of Service or expose them to liability.

\\n

Additionally, you agree not to:

\\n

a. Use Service in any manner that could disable, overburden, damage, or impair\\nService or interfere with any other party’s use of Service, including their\\nability to engage in real time activities through Service.

\\n

b. Use any robot, spider, or other automatic device, process, or means to access\\nService for any purpose, including monitoring or copying any of the material on\\nService.

\\n

c. Use any manual process to monitor or copy any of the material on Service or\\nfor any other unauthorized purpose without our prior written consent.

\\n

d. Use any device, software, or routine that interferes with the proper working\\nof Service.

\\n

e. Introduce any viruses, trojan horses, worms, logic bombs, or other material\\nwhich is malicious or technologically harmful.

\\n

f. Attempt to gain unauthorized access to, interfere with, damage, or disrupt\\nany parts of Service, the server on which Service is stored, or any server,\\ncomputer, or database connected to Service.

\\n

g. Attack Service via a denial-of-service attack or a distributed\\ndenial-of-service attack.

\\n

h. Take any action that may damage or falsify Company rating.

\\n

i. Otherwise attempt to interfere with the proper working of Service.

\\n

No Use by Minors

\\n

Service is intended only for access and use by individuals at least eighteen\\n(18) years old. By accessing or using any of Company, you warrant and represent\\nthat you are at least eighteen (18) years of age and with the full authority,\\nright, and capacity to enter into this agreement and abide by all of the terms\\nand conditions of Terms. If you are not at least eighteen (18) years old, you\\nare prohibited from both the access and usage of Service.

\\n

Accounts

\\n

When you create an account with us, you guarantee that you are above the age of\\n18, and that the information you provide us is accurate, complete, and current\\nat all times. Inaccurate, incomplete, or obsolete information may result in the\\nimmediate termination of your account on Service.

\\n

You are responsible for maintaining the confidentiality of your account and\\npassword, including but not limited to the restriction of access to your\\ncomputer and/or account. You agree to accept responsibility for any and all\\nactivities or actions that occur under your account and/or password, whether\\nyour password is with our Service or a third-party service. You must notify us\\nimmediately upon becoming aware of any breach of security or unauthorized use of\\nyour account.

\\n

You may not use as a username the name of another person or entity or that is\\nnot lawfully available for use, a name or trademark that is subject to any\\nrights of another person or entity other than you, without appropriate\\nauthorization. You may not use as a username any name that is offensive, vulgar\\nor obscene.

\\n

We reserve the right to refuse service, terminate accounts, remove or edit\\ncontent, or cancel orders in our sole discretion.

\\n

Intellectual Property

\\n

Service and its original content (excluding Content provided by users), features\\nand functionality are and will remain the exclusive property of PlayForm ltd.\\nand its licensors. Service is protected by copyright, trademark, and other laws\\nof the United States and foreign countries. Our trademarks and trade dress may\\nnot be used in connection with any product or service without the prior written\\nconsent of PlayForm ltd.

\\n

Copyright Policy

\\n

We respect the intellectual property rights of others. It is our policy to\\nrespond to any claim that Content posted on Service infringes on the copyright\\nor other intellectual property rights (“Infringement”) of any person or\\nentity.

\\n

If you are a copyright owner, or authorized on behalf of one, and you believe\\nthat the copyrighted work has been copied in a way that constitutes copyright\\ninfringement, please submit your claim via email to dmca@PlayForm.LTD, with\\nthe subject line: “Copyright Infringement” and include in your claim a\\ndetailed description of the alleged Infringement as detailed below, under “DMCA\\nNotice and Procedure for Copyright Infringement Claims”

\\n

You may be held accountable for damages (including costs and attorneys’ fees)\\nfor misrepresentation or bad-faith claims on the infringement of any Content\\nfound on and/or through Service on your copyright.

\\n\\n

You may submit a notification pursuant to the Digital Millennium Copyright Act\\n(DMCA) by providing our Copyright Agent with the following information in\\nwriting (see 17 U.S.C 512(c)(3) for further detail):

\\n

a. an electronic or physical signature of the person authorized to act on behalf\\nof the owner of the copyright’s interest;

\\n

b. a description of the copyrighted work that you claim has been infringed,\\nincluding the URL (i.e., web page address) of the location where the copyrighted\\nwork exists or a copy of the copyrighted work;

\\n

c. identification of the URL or other specific location on Service where the\\nmaterial that you claim is infringing is located;

\\n

d. your address, telephone number, and email address;

\\n

e. a statement by you that you have a good faith belief that the disputed use is\\nnot authorized by the copyright owner, its agent, or the law;

\\n

f. a statement by you, made under penalty of perjury, that the above information\\nin your notice is accurate and that you are the copyright owner or authorized to\\nact on the copyright owner’s behalf.

\\n

You can contact our Copyright Agent via email at dmca@PlayForm.LTD

\\n

Error Reporting and Feedback

\\n

You may provide us either directly at Support@PlayForm.LTD or via third party\\nsites and tools with information and feedback concerning errors, suggestions for\\nimprovements, ideas, problems, complaints, and other matters related to our\\nService (“Feedback”). You acknowledge and agree that:

\\n

a) you shall not retain, acquire or assert any intellectual property right or\\nother right, title or interest in or to the Feedback;

\\n

b) Company may have development ideas similar to the Feedback;

\\n

c) Feedback does not contain confidential information or proprietary information\\nfrom you or any third party; and

\\n

d) Company is not under any obligation of confidentiality with respect to the\\nFeedback. In the event the transfer of the ownership to the Feedback is not\\npossible due to applicable mandatory laws, you grant Company and its affiliates\\nan exclusive, transferable, irrevocable, free-of-charge, sub-licensable,\\nunlimited and perpetual right to use (including copy, modify, create derivative\\nworks, publish, distribute and commercialize) Feedback in any manner and for any\\npurpose.

\\n\\n

Our Service may contain links to third party web sites or services that are not\\nowned or controlled by PlayForm ltd.

\\n

PlayForm ltd. has no control over, and assumes no responsibility for the\\ncontent, privacy policies, or practices of any third-party web sites or\\nservices. We do not warrant the offerings of any of these entities/individuals\\nor their websites.

\\n

YOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE,\\nDIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY\\nOR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES\\nAVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.

\\n

WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY\\nTHIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.

\\n

Disclaimer Of Warranty

\\n

THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS.\\nCOMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,\\nAS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS\\nINCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR\\nCONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.

\\n

NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR\\nREPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY,\\nACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING,\\nNEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT\\nTHE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE\\nSERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS\\nWILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE\\nFREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES\\nOR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR\\nEXPECTATIONS.

\\n

COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\\nSTATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\\nMERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.

\\n

THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED\\nUNDER APPLICABLE LAW.

\\n

Limitation Of Liability

\\n

EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS,\\nEMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL,\\nOR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL\\nRELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON\\nAPPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER\\nIN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT\\nOF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM\\nFOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY\\nVIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR\\nREGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF\\nSUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE\\nPART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR\\nSERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE\\nDAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE,\\nINCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY\\nNOT APPLY TO YOU.

\\n

Termination

\\n

We may terminate or suspend your account and bar access to Service immediately,\\nwithout prior notice or liability, under our sole discretion, for any reason\\nwhatsoever and without limitation, including but not limited to a breach of\\nTerms.

\\n

If you wish to terminate your account, you may simply discontinue using Service.

\\n

All provisions of Terms which by their nature should survive termination shall\\nsurvive termination, including, without limitation, ownership provisions,\\nwarranty disclaimers, indemnity and limitations of liability.

\\n

Governing Law

\\n

These Terms shall be governed and construed in accordance with the laws of\\nRepublic of Bulgaria without regard to its conflict of law provisions.

\\n

Our failure to enforce any right or provision of these Terms will not be\\nconsidered a waiver of those rights. If any provision of these Terms is held to\\nbe invalid or unenforceable by a court, the remaining provisions of these Terms\\nwill remain in effect. These Terms constitute the entire agreement between us\\nregarding our Service and supersede and replace any prior agreements we might\\nhave had between us regarding Service.

\\n

Changes To Service

\\n

We reserve the right to withdraw or amend our Service, and any service or\\nmaterial we provide via Service, in our sole discretion without notice. We will\\nnot be liable if for any reason all or any part of Service is unavailable at any\\ntime or for any period. From time to time, we may restrict access to some parts\\nof Service, or the entire Service, to users, including registered users.

\\n

Amendments To Terms

\\n

We may amend Terms at any time by posting the amended terms on this site. It is\\nyour responsibility to review these Terms periodically.

\\n

Your continued use of the Platform following the posting of revised Terms means\\nthat you accept and agree to the changes. You are expected to check this page\\nfrequently so you are aware of any changes, as they are binding on you.

\\n

By continuing to access or use our Service after any revisions become effective,\\nyou agree to be bound by the revised terms. If you do not agree to the new\\nterms, you are no longer authorized to use Service.

\\n

Waiver And Severability

\\n

No waiver by Company of any term or condition set forth in Terms shall be deemed\\na further or continuing waiver of such term or condition or a waiver of any\\nother term or condition, and any failure of Company to assert a right or\\nprovision under Terms shall not constitute a waiver of such right or provision.

\\n

If any provision of Terms is held by a court or other tribunal of competent\\njurisdiction to be invalid, illegal or unenforceable for any reason, such\\nprovision shall be eliminated or limited to the minimum extent such that the\\nremaining provisions of Terms will continue in full force and effect.

\\n

Acknowledgement

\\n

BY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE\\nREAD THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.

\\n

Contact Us

\\n

Please send your feedback, comments, requests for technical support:

\\n

By email: Support@PlayForm.LTD

\\n

By phone number: +359876668093.

\\n

By mail: Delta Business Center, Ring Road N 251, Business Park Sofia.

\";\n\n\t\t\t\texport const frontmatter = {\"Title\":\"Terms of Service\"};\n\t\t\t\texport const file = \"D:/Developer/Application/PlayForm/WebSite/Source/Content/en/terms-of-service.md\";\n\t\t\t\texport const url = undefined;\n\t\t\t\texport function rawContent() {\n\t\t\t\t\treturn \" \\n \\n \\n\\n- [TERMS OF SERVICE]\\n - [Introduction]\\n - [Communications]\\n - [Purchases]\\n - [Contests, Sweepstakes and Promotions]\\n - [Subscriptions]\\n - [Free Trial]\\n - [Fee Changes]\\n - [Refunds]\\n - [Content]\\n - [Prohibited Uses]\\n - [No Use by Minors]\\n - [Accounts]\\n - [Intellectual Property]\\n - [Copyright Policy]\\n - [DMCA Notice and Procedure for Copyright Infringement Claims]\\n - [Error Reporting and Feedback]\\n - [Links To Other Web Sites]\\n - [Disclaimer Of Warranty]\\n - [Limitation Of Liability]\\n - [Termination]\\n - [Governing Law]\\n - [Changes To Service]\\n - [Amendments To Terms]\\n - [Waiver And Severability]\\n - [Acknowledgement]\\n - [Contact Us]\\n\\n[terms of service]: #terms-of-service\\n[introduction]: #introduction\\n[communications]: #communications\\n[purchases]: #purchases\\n[contests, sweepstakes and promotions]: #contests-sweepstakes-and-promotions\\n[subscriptions]: #subscriptions\\n[free trial]: #free-trial\\n[fee changes]: #fee-changes\\n[refunds]: #refunds\\n[content]: #content\\n[prohibited uses]: #prohibited-uses\\n[no use by minors]: #no-use-by-minors\\n[accounts]: #accounts\\n[intellectual property]: #intellectual-property\\n[copyright policy]: #copyright-policy\\n[dmca notice and procedure for copyright infringement claims]:\\n\\t#dmca-notice-and-procedure-for-copyright-infringement-claims\\n[error reporting and feedback]: #error-reporting-and-feedback\\n[links to other web sites]: #links-to-other-web-sites\\n[disclaimer of warranty]: #disclaimer-of-warranty\\n[limitation of liability]: #limitation-of-liability\\n[termination]: #termination\\n[governing law]: #governing-law\\n[changes to service]: #changes-to-service\\n[amendments to terms]: #amendments-to-terms\\n[waiver and severability]: #waiver-and-severability\\n[acknowledgement]: #acknowledgement\\n[contact us]: #contact-us\\n\\n# TERMS OF SERVICE\\n\\nEffective date: 01.12.2016 / January 12th 2016\\\\\\nLast updated: 02.11.2022 / February 11th 2022\\n\\n## Introduction\\n\\nWelcome to PlayForm ltd. (“**Company**”, “**we**”, “**our**”, “**us**”)! As you\\nhave just clicked our Terms of Service, please pause, grab a cup of coffee and\\ncarefully read the following pages. It will take you approximately 20 minutes.\\n\\nThese Terms of Service (“**Terms**”, “**Terms of Service**”) govern your use of\\nour web pages located at https://PlayForm.LTD and our mobile application\\nPlayForm (together or individually “**Service**”) operated by PlayForm ltd.\\n\\nOur Privacy Policy also governs your use of our Service and explains how we\\ncollect, safeguard and disclose information that results from your use of our\\nweb pages. Please read it here https://PlayForm.LTD/Privacy-Policy.\\n\\nYour agreement with us includes these Terms and our Privacy Policy\\n(“**Agreements**”). You acknowledge that you have read and understood\\nAgreements, and agree to be bound of them.\\n\\nIf you do not agree with (or cannot comply with) Agreements, then you may not\\nuse the Service, but please let us know by emailing at Support@PlayForm.LTD so\\nwe can try to find a solution. These Terms apply to all visitors, users and\\nothers who wish to access or use Service.\\n\\nThank you for being responsible.\\n\\n## Communications\\n\\nBy creating an Account on our Service, you agree to subscribe to newsletters,\\nmarketing or promotional materials and other information we may send. However,\\nyou may opt out of receiving any, or all, of these communications from us by\\nfollowing the unsubscribe link or by emailing at.\\n\\n## Purchases\\n\\nIf you wish to purchase any product or service made available through Service\\n(“**Purchase**”), you may be asked to supply certain information relevant to\\nyour Purchase including, without limitation, your credit card number, the\\nexpiration date of your credit card, your billing address, and your shipping\\ninformation.\\n\\nYou represent and warrant that:\\n\\na) you have the legal right to use any credit card(s) or other payment method(s)\\nin connection with any Purchase; and that\\n\\nb) the information you supply to us is true, correct and complete.\\n\\nWe may employ the use of third-party services for the purpose of facilitating\\npayment and the completion of Purchases. By submitting your information, you\\ngrant us the right to provide the information to these third parties subject to\\nour Privacy Policy.\\n\\nWe reserve the right to refuse or cancel your order at any time for reasons\\nincluding but not limited to: product or service availability, errors in the\\ndescription or price of the product or service, error in your order or other\\nreasons.\\n\\nWe reserve the right to refuse or cancel your order if fraud or an unauthorized\\nor illegal transaction is suspected.\\n\\n## Contests, Sweepstakes and Promotions\\n\\nAny contests, sweepstakes or other promotions (collectively, “**Promotions**”)\\nmade available through Service may be governed by rules that are separate from\\nthese Terms of Service. If you participate in any Promotions, please review the\\napplicable rules as well as our Privacy Policy. If the rules for a Promotion\\nconflict with these Terms of Service, Promotion rules will apply.\\n\\n## Subscriptions\\n\\nSome parts of Service are billed on a subscription basis\\n(“**Subscription**(**s**)”). You will be billed in advance on a recurring and\\nperiodic basis (“**Billing Cycle**”). Billing cycles are set either on a monthly\\nor annual basis, depending on the type of subscription plan you select when\\npurchasing a Subscription.\\n\\nAt the end of each Billing Cycle, your Subscription will automatically renew\\nunder the exact same conditions unless you cancel it or PlayForm ltd. cancels\\nit. You may cancel your Subscription renewal either through your online account\\nmanagement page or by contacting PlayForm ltd. customer support team.\\n\\nA valid payment method, including credit card or PayPal, is required to process\\nthe payment for your subscription. You shall provide PlayForm ltd. with accurate\\nand complete billing information including full name, address, state, zip code,\\ntelephone number, and a valid payment method information. By submitting such\\npayment information, you automatically authorize PlayForm ltd. to charge all\\nSubscription fees incurred through your account to any such payment instruments.\\n\\nShould automatic billing fail to occur for any reason, PlayForm ltd. will issue\\nan electronic invoice indicating that you must proceed manually, within a\\ncertain deadline date, with the full payment corresponding to the billing period\\nas indicated on the invoice.\\n\\n## Free Trial\\n\\nPlayForm ltd. may, at its sole discretion, offer a Subscription with a free\\ntrial for a limited period of time (“**Free Trial**”).\\n\\nYou may be required to enter your billing information in order to sign up for\\nFree Trial.\\n\\nIf you do enter your billing information when signing up for Free Trial, you\\nwill not be charged by PlayForm ltd. until Free Trial has expired. On the last\\nday of Free Trial period, unless you cancelled your Subscription, you will be\\nautomatically charged the applicable Subscription fees for the type of\\nSubscription you have selected.\\n\\nAt any time and without notice, PlayForm ltd. reserves the right to\\n\\na) modify Terms of Service of Free Trial offer, or\\n\\nb) cancel such Free Trial offer.\\n\\n## Fee Changes\\n\\nPlayForm ltd., in its sole discretion and at any time, may modify Subscription\\nfees for the Subscriptions. Any Subscription fee change will become effective at\\nthe end of the then-current Billing Cycle.\\n\\nPlayForm ltd. will provide you with a reasonable prior notice of any change in\\nSubscription fees to give you an opportunity to terminate your Subscription\\nbefore such change becomes effective.\\n\\nYour continued use of Service after Subscription fee change comes into effect\\nconstitutes your agreement to pay the modified Subscription fee amount.\\n\\n## Refunds\\n\\nWe issue refunds for Contracts within fourteen (14) days of the original\\npurchase of the Contract.\\n\\n## Content\\n\\nOur Service allows you to post, link, store, share and otherwise make available\\ncertain information, text, graphics, videos, or other material (“**Content**”).\\nYou are responsible for Content that you post on or through Service, including\\nits legality, reliability, and appropriateness.\\n\\nBy posting Content on or through Service, You represent and warrant that:\\n\\na) Content is yours (you own it) and/or you have the right to use it and the\\nright to grant us the rights and license as provided in these Terms, and\\n\\nb) that the posting of your Content on or through Service does not violate the\\nprivacy rights, publicity rights, copyrights, contract rights or any other\\nrights of any person or entity. We reserve the right to terminate the account of\\nanyone found to be infringing on a copyright.\\n\\nYou retain any and all of your rights to any Content you submit, post or display\\non or through Service and you are responsible for protecting those rights. We\\ntake no responsibility and assume no liability for Content you or any\\nthird-party posts on or through Service. However, by posting Content using\\nService you grant us the right and license to use, modify, publicly perform,\\npublicly display, reproduce, and distribute such Content on and through Service.\\nYou agree that this license includes the right for us to make your Content\\navailable to other users of Service, who may also use your Content subject to\\nthese Terms.\\n\\nPlayForm ltd. has the right but not the obligation to monitor and edit all\\nContent provided by users.\\n\\nIn addition, Content found on or through this Service are the property of\\nPlayForm ltd. or used with permission. You may not distribute, modify, transmit,\\nreuse, download, repost, copy, or use said Content, whether in whole or in part,\\nfor commercial purposes or for personal gain, without express advance written\\npermission from us.\\n\\n## Prohibited Uses\\n\\nYou may use Service only for lawful purposes and in accordance with Terms. You\\nagree not to use Service:\\n\\na. In any way that violates any applicable national or international law or\\nregulation.\\n\\nb. For the purpose of exploiting, harming, or attempting to exploit or harm\\nminors in any way by exposing them to inappropriate content or otherwise.\\n\\nc. To transmit, or procure the sending of, any advertising or promotional\\nmaterial, including any “junk mail”, “chain letter,” “spam,” or any other\\nsimilar solicitation.\\n\\nd. To impersonate or attempt to impersonate Company, a Company employee, another\\nuser, or any other person or entity.\\n\\ne. In any way that infringes upon the rights of others, or in any way is\\nillegal, threatening, fraudulent, or harmful, or in connection with any\\nunlawful, illegal, fraudulent, or harmful purpose or activity.\\n\\nf. To engage in any other conduct that restricts or inhibits anyone’s use or\\nenjoyment of Service, or which, as determined by us, may harm or offend Company\\nor users of Service or expose them to liability.\\n\\nAdditionally, you agree not to:\\n\\na. Use Service in any manner that could disable, overburden, damage, or impair\\nService or interfere with any other party’s use of Service, including their\\nability to engage in real time activities through Service.\\n\\nb. Use any robot, spider, or other automatic device, process, or means to access\\nService for any purpose, including monitoring or copying any of the material on\\nService.\\n\\nc. Use any manual process to monitor or copy any of the material on Service or\\nfor any other unauthorized purpose without our prior written consent.\\n\\nd. Use any device, software, or routine that interferes with the proper working\\nof Service.\\n\\ne. Introduce any viruses, trojan horses, worms, logic bombs, or other material\\nwhich is malicious or technologically harmful.\\n\\nf. Attempt to gain unauthorized access to, interfere with, damage, or disrupt\\nany parts of Service, the server on which Service is stored, or any server,\\ncomputer, or database connected to Service.\\n\\ng. Attack Service via a denial-of-service attack or a distributed\\ndenial-of-service attack.\\n\\nh. Take any action that may damage or falsify Company rating.\\n\\ni. Otherwise attempt to interfere with the proper working of Service.\\n\\n## No Use by Minors\\n\\nService is intended only for access and use by individuals at least eighteen\\n(18) years old. By accessing or using any of Company, you warrant and represent\\nthat you are at least eighteen (18) years of age and with the full authority,\\nright, and capacity to enter into this agreement and abide by all of the terms\\nand conditions of Terms. If you are not at least eighteen (18) years old, you\\nare prohibited from both the access and usage of Service.\\n\\n## Accounts\\n\\nWhen you create an account with us, you guarantee that you are above the age of\\n18, and that the information you provide us is accurate, complete, and current\\nat all times. Inaccurate, incomplete, or obsolete information may result in the\\nimmediate termination of your account on Service.\\n\\nYou are responsible for maintaining the confidentiality of your account and\\npassword, including but not limited to the restriction of access to your\\ncomputer and/or account. You agree to accept responsibility for any and all\\nactivities or actions that occur under your account and/or password, whether\\nyour password is with our Service or a third-party service. You must notify us\\nimmediately upon becoming aware of any breach of security or unauthorized use of\\nyour account.\\n\\nYou may not use as a username the name of another person or entity or that is\\nnot lawfully available for use, a name or trademark that is subject to any\\nrights of another person or entity other than you, without appropriate\\nauthorization. You may not use as a username any name that is offensive, vulgar\\nor obscene.\\n\\nWe reserve the right to refuse service, terminate accounts, remove or edit\\ncontent, or cancel orders in our sole discretion.\\n\\n## Intellectual Property\\n\\nService and its original content (excluding Content provided by users), features\\nand functionality are and will remain the exclusive property of PlayForm ltd.\\nand its licensors. Service is protected by copyright, trademark, and other laws\\nof the United States and foreign countries. Our trademarks and trade dress may\\nnot be used in connection with any product or service without the prior written\\nconsent of PlayForm ltd.\\n\\n## Copyright Policy\\n\\nWe respect the intellectual property rights of others. It is our policy to\\nrespond to any claim that Content posted on Service infringes on the copyright\\nor other intellectual property rights (“**Infringement**”) of any person or\\nentity.\\n\\nIf you are a copyright owner, or authorized on behalf of one, and you believe\\nthat the copyrighted work has been copied in a way that constitutes copyright\\ninfringement, please submit your claim via email to dmca@PlayForm.LTD, with\\nthe subject line: “**Copyright Infringement**” and include in your claim a\\ndetailed description of the alleged Infringement as detailed below, under “DMCA\\nNotice and Procedure for Copyright Infringement Claims”\\n\\nYou may be held accountable for damages (including costs and attorneys' fees)\\nfor misrepresentation or bad-faith claims on the infringement of any Content\\nfound on and/or through Service on your copyright.\\n\\n## DMCA Notice and Procedure for Copyright Infringement Claims\\n\\nYou may submit a notification pursuant to the Digital Millennium Copyright Act\\n(DMCA) by providing our Copyright Agent with the following information in\\nwriting (see 17 U.S.C 512(c)(3) for further detail):\\n\\na. an electronic or physical signature of the person authorized to act on behalf\\nof the owner of the copyright's interest;\\n\\nb. a description of the copyrighted work that you claim has been infringed,\\nincluding the URL (i.e., web page address) of the location where the copyrighted\\nwork exists or a copy of the copyrighted work;\\n\\nc. identification of the URL or other specific location on Service where the\\nmaterial that you claim is infringing is located;\\n\\nd. your address, telephone number, and email address;\\n\\ne. a statement by you that you have a good faith belief that the disputed use is\\nnot authorized by the copyright owner, its agent, or the law;\\n\\nf. a statement by you, made under penalty of perjury, that the above information\\nin your notice is accurate and that you are the copyright owner or authorized to\\nact on the copyright owner's behalf.\\n\\nYou can contact our Copyright Agent via email at dmca@PlayForm.LTD\\n\\n## Error Reporting and Feedback\\n\\nYou may provide us either directly at Support@PlayForm.LTD or via third party\\nsites and tools with information and feedback concerning errors, suggestions for\\nimprovements, ideas, problems, complaints, and other matters related to our\\nService (“**Feedback**”). You acknowledge and agree that:\\n\\na) you shall not retain, acquire or assert any intellectual property right or\\nother right, title or interest in or to the Feedback;\\n\\nb) Company may have development ideas similar to the Feedback;\\n\\nc) Feedback does not contain confidential information or proprietary information\\nfrom you or any third party; and\\n\\nd) Company is not under any obligation of confidentiality with respect to the\\nFeedback. In the event the transfer of the ownership to the Feedback is not\\npossible due to applicable mandatory laws, you grant Company and its affiliates\\nan exclusive, transferable, irrevocable, free-of-charge, sub-licensable,\\nunlimited and perpetual right to use (including copy, modify, create derivative\\nworks, publish, distribute and commercialize) Feedback in any manner and for any\\npurpose.\\n\\n## Links To Other Web Sites\\n\\nOur Service may contain links to third party web sites or services that are not\\nowned or controlled by PlayForm ltd.\\n\\nPlayForm ltd. has no control over, and assumes no responsibility for the\\ncontent, privacy policies, or practices of any third-party web sites or\\nservices. We do not warrant the offerings of any of these entities/individuals\\nor their websites.\\n\\nYOU ACKNOWLEDGE AND AGREE THAT PlayForm ltd. SHALL NOT BE RESPONSIBLE OR LIABLE,\\nDIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY\\nOR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES\\nAVAILABLE ON OR THROUGH ANY SUCH THIRD-PARTY WEB SITES OR SERVICES.\\n\\nWE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY\\nTHIRD-PARTY WEB SITES OR SERVICES THAT YOU VISIT.\\n\\n## Disclaimer Of Warranty\\n\\nTHESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS.\\nCOMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,\\nAS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS\\nINCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR\\nCONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.\\n\\nNEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR\\nREPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY,\\nACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING,\\nNEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT\\nTHE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE\\nSERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS\\nWILL BE CORRECTED, THAT THE SERVICES OR THE SERVER THAT MAKES IT AVAILABLE ARE\\nFREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE SERVICES OR ANY SERVICES\\nOR ITEMS OBTAINED THROUGH THE SERVICES WILL OTHERWISE MEET YOUR NEEDS OR\\nEXPECTATIONS.\\n\\nCOMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\\nSTATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\\nMERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.\\n\\nTHE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED\\nUNDER APPLICABLE LAW.\\n\\n## Limitation Of Liability\\n\\nEXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS,\\nEMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL,\\nOR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS' FEES AND ALL\\nRELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON\\nAPPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER\\nIN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT\\nOF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM\\nFOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY\\nVIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR\\nREGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF\\nSUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE\\nPART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR\\nSERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE\\nDAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE,\\nINCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY\\nNOT APPLY TO YOU.\\n\\n## Termination\\n\\nWe may terminate or suspend your account and bar access to Service immediately,\\nwithout prior notice or liability, under our sole discretion, for any reason\\nwhatsoever and without limitation, including but not limited to a breach of\\nTerms.\\n\\nIf you wish to terminate your account, you may simply discontinue using Service.\\n\\nAll provisions of Terms which by their nature should survive termination shall\\nsurvive termination, including, without limitation, ownership provisions,\\nwarranty disclaimers, indemnity and limitations of liability.\\n\\n## Governing Law\\n\\nThese Terms shall be governed and construed in accordance with the laws of\\nRepublic of Bulgaria without regard to its conflict of law provisions.\\n\\nOur failure to enforce any right or provision of these Terms will not be\\nconsidered a waiver of those rights. If any provision of these Terms is held to\\nbe invalid or unenforceable by a court, the remaining provisions of these Terms\\nwill remain in effect. These Terms constitute the entire agreement between us\\nregarding our Service and supersede and replace any prior agreements we might\\nhave had between us regarding Service.\\n\\n## Changes To Service\\n\\nWe reserve the right to withdraw or amend our Service, and any service or\\nmaterial we provide via Service, in our sole discretion without notice. We will\\nnot be liable if for any reason all or any part of Service is unavailable at any\\ntime or for any period. From time to time, we may restrict access to some parts\\nof Service, or the entire Service, to users, including registered users.\\n\\n## Amendments To Terms\\n\\nWe may amend Terms at any time by posting the amended terms on this site. It is\\nyour responsibility to review these Terms periodically.\\n\\nYour continued use of the Platform following the posting of revised Terms means\\nthat you accept and agree to the changes. You are expected to check this page\\nfrequently so you are aware of any changes, as they are binding on you.\\n\\nBy continuing to access or use our Service after any revisions become effective,\\nyou agree to be bound by the revised terms. If you do not agree to the new\\nterms, you are no longer authorized to use Service.\\n\\n## Waiver And Severability\\n\\nNo waiver by Company of any term or condition set forth in Terms shall be deemed\\na further or continuing waiver of such term or condition or a waiver of any\\nother term or condition, and any failure of Company to assert a right or\\nprovision under Terms shall not constitute a waiver of such right or provision.\\n\\nIf any provision of Terms is held by a court or other tribunal of competent\\njurisdiction to be invalid, illegal or unenforceable for any reason, such\\nprovision shall be eliminated or limited to the minimum extent such that the\\nremaining provisions of Terms will continue in full force and effect.\\n\\n## Acknowledgement\\n\\nBY USING SERVICE OR OTHER SERVICES PROVIDED BY US, YOU ACKNOWLEDGE THAT YOU HAVE\\nREAD THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM.\\n\\n## Contact Us\\n\\nPlease send your feedback, comments, requests for technical support:\\n\\nBy email: Support@PlayForm.LTD\\n\\nBy phone number: +359876668093.\\n\\nBy mail: Delta Business Center, Ring Road N 251, Business Park Sofia.\\n\";\n\t\t\t\t}\n\t\t\t\texport async function compiledContent() {\n\t\t\t\t\treturn await html();\n\t\t\t\t}\n\t\t\t\texport function getHeadings() {\n\t\t\t\t\treturn [{\"depth\":1,\"slug\":\"terms-of-service\",\"text\":\"TERMS OF SERVICE\"},{\"depth\":2,\"slug\":\"introduction\",\"text\":\"Introduction\"},{\"depth\":2,\"slug\":\"communications\",\"text\":\"Communications\"},{\"depth\":2,\"slug\":\"purchases\",\"text\":\"Purchases\"},{\"depth\":2,\"slug\":\"contests-sweepstakes-and-promotions\",\"text\":\"Contests, Sweepstakes and Promotions\"},{\"depth\":2,\"slug\":\"subscriptions\",\"text\":\"Subscriptions\"},{\"depth\":2,\"slug\":\"free-trial\",\"text\":\"Free Trial\"},{\"depth\":2,\"slug\":\"fee-changes\",\"text\":\"Fee Changes\"},{\"depth\":2,\"slug\":\"refunds\",\"text\":\"Refunds\"},{\"depth\":2,\"slug\":\"content\",\"text\":\"Content\"},{\"depth\":2,\"slug\":\"prohibited-uses\",\"text\":\"Prohibited Uses\"},{\"depth\":2,\"slug\":\"no-use-by-minors\",\"text\":\"No Use by Minors\"},{\"depth\":2,\"slug\":\"accounts\",\"text\":\"Accounts\"},{\"depth\":2,\"slug\":\"intellectual-property\",\"text\":\"Intellectual Property\"},{\"depth\":2,\"slug\":\"copyright-policy\",\"text\":\"Copyright Policy\"},{\"depth\":2,\"slug\":\"dmca-notice-and-procedure-for-copyright-infringement-claims\",\"text\":\"DMCA Notice and Procedure for Copyright Infringement Claims\"},{\"depth\":2,\"slug\":\"error-reporting-and-feedback\",\"text\":\"Error Reporting and Feedback\"},{\"depth\":2,\"slug\":\"links-to-other-web-sites\",\"text\":\"Links To Other Web Sites\"},{\"depth\":2,\"slug\":\"disclaimer-of-warranty\",\"text\":\"Disclaimer Of Warranty\"},{\"depth\":2,\"slug\":\"limitation-of-liability\",\"text\":\"Limitation Of Liability\"},{\"depth\":2,\"slug\":\"termination\",\"text\":\"Termination\"},{\"depth\":2,\"slug\":\"governing-law\",\"text\":\"Governing Law\"},{\"depth\":2,\"slug\":\"changes-to-service\",\"text\":\"Changes To Service\"},{\"depth\":2,\"slug\":\"amendments-to-terms\",\"text\":\"Amendments To Terms\"},{\"depth\":2,\"slug\":\"waiver-and-severability\",\"text\":\"Waiver And Severability\"},{\"depth\":2,\"slug\":\"acknowledgement\",\"text\":\"Acknowledgement\"},{\"depth\":2,\"slug\":\"contact-us\",\"text\":\"Contact Us\"}];\n\t\t\t\t}\n\n\t\t\t\texport const Content = createComponent((result, _props, slots) => {\n\t\t\t\t\tconst { layout, ...content } = frontmatter;\n\t\t\t\t\tcontent.file = file;\n\t\t\t\t\tcontent.url = url;\n\n\t\t\t\t\treturn render`${maybeRenderHead(result)}${unescapeHTML(html())}`;\n\t\t\t\t});\n\t\t\t\texport default Content;\n\t\t\t\t"],"names":["render"],"mappings":"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"} \ No newline at end of file diff --git a/Target/index.html b/Target/index.html index 1106bff0..0d1c8309 100644 --- a/Target/index.html +++ b/Target/index.html @@ -1 +1 @@ -☁️ PlayForm —

☁️ Cloud —

\ No newline at end of file +☁️ PlayForm —

☁️ Cloud —

\ No newline at end of file diff --git a/Target/manifest_BKclx7Ru.mjs.map b/Target/manifest_WX__GKuA.mjs.map similarity index 63% rename from Target/manifest_BKclx7Ru.mjs.map rename to Target/manifest_WX__GKuA.mjs.map index 26ab4a2e..b3166b61 100644 --- a/Target/manifest_BKclx7Ru.mjs.map +++ b/Target/manifest_WX__GKuA.mjs.map @@ -1 +1 @@ -{"version":3,"file":"manifest_BKclx7Ru.mjs","sources":["../../../../node_modules/astro/dist/core/middleware/noop-middleware.js","../../../../node_modules/astro/dist/actions/runtime/virtual/shared.js","../../../../node_modules/astro/dist/core/routing/manifest/generator.js","../../../../node_modules/astro/dist/core/routing/manifest/serialization.js","../../../../node_modules/astro/dist/core/app/common.js"],"sourcesContent":["import { NOOP_MIDDLEWARE_HEADER } from \"../constants.js\";\nconst NOOP_MIDDLEWARE_FN = (ctx, next) => {\n ctx.request.headers.set(NOOP_MIDDLEWARE_HEADER, \"true\");\n return next();\n};\nexport {\n NOOP_MIDDLEWARE_FN\n};\n","import { parse as devalueParse, stringify as devalueStringify } from \"devalue\";\nimport { REDIRECT_STATUS_CODES } from \"../../../core/constants.js\";\nimport { ActionsReturnedInvalidDataError } from \"../../../core/errors/errors-data.js\";\nimport { AstroError } from \"../../../core/errors/errors.js\";\nimport { ACTION_QUERY_PARAMS as _ACTION_QUERY_PARAMS } from \"../../consts.js\";\nconst ACTION_QUERY_PARAMS = _ACTION_QUERY_PARAMS;\nconst ACTION_ERROR_CODES = [\n \"BAD_REQUEST\",\n \"UNAUTHORIZED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"TIMEOUT\",\n \"CONFLICT\",\n \"PRECONDITION_FAILED\",\n \"PAYLOAD_TOO_LARGE\",\n \"UNSUPPORTED_MEDIA_TYPE\",\n \"UNPROCESSABLE_CONTENT\",\n \"TOO_MANY_REQUESTS\",\n \"CLIENT_CLOSED_REQUEST\",\n \"INTERNAL_SERVER_ERROR\"\n];\nconst codeToStatusMap = {\n // Implemented from tRPC error code table\n // https://trpc.io/docs/server/error-handling#error-codes\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n TIMEOUT: 405,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500\n};\nconst statusToCodeMap = Object.entries(codeToStatusMap).reduce(\n // reverse the key-value pairs\n (acc, [key, value]) => ({ ...acc, [value]: key }),\n {}\n);\nclass ActionError extends Error {\n type = \"AstroActionError\";\n code = \"INTERNAL_SERVER_ERROR\";\n status = 500;\n constructor(params) {\n super(params.message);\n this.code = params.code;\n this.status = ActionError.codeToStatus(params.code);\n if (params.stack) {\n this.stack = params.stack;\n }\n }\n static codeToStatus(code) {\n return codeToStatusMap[code];\n }\n static statusToCode(status) {\n return statusToCodeMap[status] ?? \"INTERNAL_SERVER_ERROR\";\n }\n static fromJson(body) {\n if (isInputError(body)) {\n return new ActionInputError(body.issues);\n }\n if (isActionError(body)) {\n return new ActionError(body);\n }\n return new ActionError({\n code: \"INTERNAL_SERVER_ERROR\"\n });\n }\n}\nfunction isActionError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionError\";\n}\nfunction isInputError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionInputError\" && \"issues\" in error && Array.isArray(error.issues);\n}\nclass ActionInputError extends ActionError {\n type = \"AstroActionInputError\";\n // We don't expose all ZodError properties.\n // Not all properties will serialize from server to client,\n // and we don't want to import the full ZodError object into the client.\n issues;\n fields;\n constructor(issues) {\n super({\n message: `Failed to validate: ${JSON.stringify(issues, null, 2)}`,\n code: \"BAD_REQUEST\"\n });\n this.issues = issues;\n this.fields = {};\n for (const issue of issues) {\n if (issue.path.length > 0) {\n const key = issue.path[0].toString();\n this.fields[key] ??= [];\n this.fields[key]?.push(issue.message);\n }\n }\n }\n}\nasync function callSafely(handler) {\n try {\n const data = await handler();\n return { data, error: void 0 };\n } catch (e) {\n if (e instanceof ActionError) {\n return { data: void 0, error: e };\n }\n return {\n data: void 0,\n error: new ActionError({\n message: e instanceof Error ? e.message : \"Unknown error\",\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n}\nfunction getActionQueryString(name) {\n const searchParams = new URLSearchParams({ [_ACTION_QUERY_PARAMS.actionName]: name });\n return `?${searchParams.toString()}`;\n}\nfunction serializeActionResult(res) {\n if (res.error) {\n if (import.meta.env?.DEV) {\n actionResultErrorStack.set(res.error.stack);\n }\n let body2;\n if (res.error instanceof ActionInputError) {\n body2 = {\n type: res.error.type,\n issues: res.error.issues,\n fields: res.error.fields\n };\n } else {\n body2 = {\n ...res.error,\n message: res.error.message\n };\n }\n return {\n type: \"error\",\n status: res.error.status,\n contentType: \"application/json\",\n body: JSON.stringify(body2)\n };\n }\n if (res.data === void 0) {\n return {\n type: \"empty\",\n status: 204\n };\n }\n let body;\n try {\n body = devalueStringify(res.data, {\n // Add support for URL objects\n URL: (value) => value instanceof URL && value.href\n });\n } catch (e) {\n let hint = ActionsReturnedInvalidDataError.hint;\n if (res.data instanceof Response) {\n hint = REDIRECT_STATUS_CODES.includes(res.data.status) ? \"If you need to redirect when the action succeeds, trigger a redirect where the action is called. See the Actions guide for server and client redirect examples: https://docs.astro.build/en/guides/actions.\" : \"If you need to return a Response object, try using a server endpoint instead. See https://docs.astro.build/en/guides/endpoints/#server-endpoints-api-routes\";\n }\n throw new AstroError({\n ...ActionsReturnedInvalidDataError,\n message: ActionsReturnedInvalidDataError.message(String(e)),\n hint\n });\n }\n return {\n type: \"data\",\n status: 200,\n contentType: \"application/json+devalue\",\n body\n };\n}\nfunction deserializeActionResult(res) {\n if (res.type === \"error\") {\n let json;\n try {\n json = JSON.parse(res.body);\n } catch {\n return {\n data: void 0,\n error: new ActionError({\n message: res.body,\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n if (import.meta.env?.PROD) {\n return { error: ActionError.fromJson(json), data: void 0 };\n } else {\n const error = ActionError.fromJson(json);\n error.stack = actionResultErrorStack.get();\n return {\n error,\n data: void 0\n };\n }\n }\n if (res.type === \"empty\") {\n return { data: void 0, error: void 0 };\n }\n return {\n data: devalueParse(res.body, {\n URL: (href) => new URL(href)\n }),\n error: void 0\n };\n}\nconst actionResultErrorStack = /* @__PURE__ */ function actionResultErrorStackFn() {\n let errorStack;\n return {\n set(stack) {\n errorStack = stack;\n },\n get() {\n return errorStack;\n }\n };\n}();\nexport {\n ACTION_ERROR_CODES,\n ACTION_QUERY_PARAMS,\n ActionError,\n ActionInputError,\n callSafely,\n deserializeActionResult,\n getActionQueryString,\n isActionError,\n isInputError,\n serializeActionResult\n};\n","function sanitizeParams(params) {\n return Object.fromEntries(\n Object.entries(params).map(([key, value]) => {\n if (typeof value === \"string\") {\n return [key, value.normalize().replace(/#/g, \"%23\").replace(/\\?/g, \"%3F\")];\n }\n return [key, value];\n })\n );\n}\nfunction getParameter(part, params) {\n if (part.spread) {\n return params[part.content.slice(3)] || \"\";\n }\n if (part.dynamic) {\n if (!params[part.content]) {\n throw new TypeError(`Missing parameter: ${part.content}`);\n }\n return params[part.content];\n }\n return part.content.normalize().replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\").replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n}\nfunction getSegment(segment, params) {\n const segmentPath = segment.map((part) => getParameter(part, params)).join(\"\");\n return segmentPath ? \"/\" + segmentPath : \"\";\n}\nfunction getRouteGenerator(segments, addTrailingSlash) {\n return (params) => {\n const sanitizedParams = sanitizeParams(params);\n let trailing = \"\";\n if (addTrailingSlash === \"always\" && segments.length) {\n trailing = \"/\";\n }\n const path = segments.map((segment) => getSegment(segment, sanitizedParams)).join(\"\") + trailing;\n return path || \"/\";\n };\n}\nexport {\n getRouteGenerator\n};\n","import { getRouteGenerator } from \"./generator.js\";\nfunction serializeRouteData(routeData, trailingSlash) {\n return {\n ...routeData,\n generate: void 0,\n pattern: routeData.pattern.source,\n redirectRoute: routeData.redirectRoute ? serializeRouteData(routeData.redirectRoute, trailingSlash) : void 0,\n fallbackRoutes: routeData.fallbackRoutes.map((fallbackRoute) => {\n return serializeRouteData(fallbackRoute, trailingSlash);\n }),\n _meta: { trailingSlash }\n };\n}\nfunction deserializeRouteData(rawRouteData) {\n return {\n route: rawRouteData.route,\n type: rawRouteData.type,\n pattern: new RegExp(rawRouteData.pattern),\n params: rawRouteData.params,\n component: rawRouteData.component,\n generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),\n pathname: rawRouteData.pathname || void 0,\n segments: rawRouteData.segments,\n prerender: rawRouteData.prerender,\n redirect: rawRouteData.redirect,\n redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,\n fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {\n return deserializeRouteData(fallback);\n }),\n isIndex: rawRouteData.isIndex\n };\n}\nexport {\n deserializeRouteData,\n serializeRouteData\n};\n","import { decodeKey } from \"../encryption.js\";\nimport { NOOP_MIDDLEWARE_FN } from \"../middleware/noop-middleware.js\";\nimport { deserializeRouteData } from \"../routing/manifest/serialization.js\";\nfunction deserializeManifest(serializedManifest) {\n const routes = [];\n for (const serializedRoute of serializedManifest.routes) {\n routes.push({\n ...serializedRoute,\n routeData: deserializeRouteData(serializedRoute.routeData)\n });\n const route = serializedRoute;\n route.routeData = deserializeRouteData(serializedRoute.routeData);\n }\n const assets = new Set(serializedManifest.assets);\n const componentMetadata = new Map(serializedManifest.componentMetadata);\n const inlinedScripts = new Map(serializedManifest.inlinedScripts);\n const clientDirectives = new Map(serializedManifest.clientDirectives);\n const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);\n const key = decodeKey(serializedManifest.key);\n return {\n // in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)\n middleware() {\n return { onRequest: NOOP_MIDDLEWARE_FN };\n },\n ...serializedManifest,\n assets,\n componentMetadata,\n inlinedScripts,\n clientDirectives,\n routes,\n serverIslandNameMap,\n key\n };\n}\nexport {\n deserializeManifest\n};\n"],"names":[],"mappings":";;;;;;;;AACA,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAC1C,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC;AACzD,EAAE,OAAO,IAAI,EAAE;AACf,CAAC;;ACiBD,MAAM,eAAkB,GAAA;AAAA;AAAA;AAAA,EAGtB,WAAa,EAAA,GAAA;AAAA,EACb,YAAc,EAAA,GAAA;AAAA,EACd,SAAW,EAAA,GAAA;AAAA,EACX,SAAW,EAAA,GAAA;AAAA,EACX,OAAS,EAAA,GAAA;AAAA,EACT,QAAU,EAAA,GAAA;AAAA,EACV,mBAAqB,EAAA,GAAA;AAAA,EACrB,iBAAmB,EAAA,GAAA;AAAA,EACnB,sBAAwB,EAAA,GAAA;AAAA,EACxB,qBAAuB,EAAA,GAAA;AAAA,EACvB,iBAAmB,EAAA,GAAA;AAAA,EACnB,qBAAuB,EAAA,GAAA;AAAA,EACvB,qBAAuB,EAAA;AACzB,CAAA;AACwB,MAAA,CAAO,OAAQ,CAAA,eAAe,CAAE,CAAA,MAAA;AAAA;AAAA,EAEtD,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,MAAO,EAAE,GAAG,GAAK,EAAA,CAAC,KAAK,GAAG,GAAI,EAAA,CAAA;AAAA,EAC/C;AACF;;AC1CA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,WAAW;AAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACjD,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClF;AACA,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AACzB,KAAK;AACL,GAAG;AACH;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AACpC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,MAAM,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D;AACA,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACtH;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;AACrC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAChF,EAAE,OAAO,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,EAAE;AAC7C;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AACvD,EAAE,OAAO,CAAC,MAAM,KAAK;AACrB,IAAI,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC;AAClD,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,IAAI,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC1D,MAAM,QAAQ,GAAG,GAAG;AACpB;AACA,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ;AACpG,IAAI,OAAO,IAAI,IAAI,GAAG;AACtB,GAAG;AACH;;ACvBA,SAAS,oBAAoB,CAAC,YAAY,EAAE;AAC5C,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,YAAY,CAAC,KAAK;AAC7B,IAAI,IAAI,EAAE,YAAY,CAAC,IAAI;AAC3B,IAAI,OAAO,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;AAC7C,IAAI,MAAM,EAAE,YAAY,CAAC,MAAM;AAC/B,IAAI,SAAS,EAAE,YAAY,CAAC,SAAS;AACrC,IAAI,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;AACxF,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC7C,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ;AACnC,IAAI,SAAS,EAAE,YAAY,CAAC,SAAS;AACrC,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ;AACnC,IAAI,aAAa,EAAE,YAAY,CAAC,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;AACzG,IAAI,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AAClE,MAAM,OAAO,oBAAoB,CAAC,QAAQ,CAAC;AAC3C,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,YAAY,CAAC;AAC1B,GAAG;AACH;;AC5BA,SAAS,mBAAmB,CAAC,kBAAkB,EAAE;AACjD,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,eAAe,IAAI,kBAAkB,CAAC,MAAM,EAAE;AAC3D,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,MAAM,GAAG,eAAe;AACxB,MAAM,SAAS,EAAE,oBAAoB,CAAC,eAAe,CAAC,SAAS;AAC/D,KAAK,CAAC;AACN,IAAI,MAAM,KAAK,GAAG,eAAe;AACjC,IAAI,KAAK,CAAC,SAAS,GAAG,oBAAoB,CAAC,eAAe,CAAC,SAAS,CAAC;AACrE;AACA,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACnD,EAAE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AACzE,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACnE,EAAE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AACvE,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;AAC7E,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC/C,EAAE,OAAO;AACT;AACA,IAAI,UAAU,GAAG;AACjB,MAAM,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAC9C,KAAK;AACL,IAAI,GAAG,kBAAkB;AACzB,IAAI,MAAM;AACV,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,MAAM;AACV,IAAI,mBAAmB;AACvB,IAAI;AACJ,GAAG;AACH;;;;;;","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file +{"version":3,"file":"manifest_WX__GKuA.mjs","sources":["../../../../node_modules/astro/dist/core/middleware/noop-middleware.js","../../../../node_modules/astro/dist/actions/runtime/virtual/shared.js","../../../../node_modules/astro/dist/core/routing/manifest/generator.js","../../../../node_modules/astro/dist/core/routing/manifest/serialization.js","../../../../node_modules/astro/dist/core/app/common.js"],"sourcesContent":["import { NOOP_MIDDLEWARE_HEADER } from \"../constants.js\";\nconst NOOP_MIDDLEWARE_FN = (ctx, next) => {\n ctx.request.headers.set(NOOP_MIDDLEWARE_HEADER, \"true\");\n return next();\n};\nexport {\n NOOP_MIDDLEWARE_FN\n};\n","import { parse as devalueParse, stringify as devalueStringify } from \"devalue\";\nimport { REDIRECT_STATUS_CODES } from \"../../../core/constants.js\";\nimport { ActionsReturnedInvalidDataError } from \"../../../core/errors/errors-data.js\";\nimport { AstroError } from \"../../../core/errors/errors.js\";\nimport { ACTION_QUERY_PARAMS as _ACTION_QUERY_PARAMS } from \"../../consts.js\";\nconst ACTION_QUERY_PARAMS = _ACTION_QUERY_PARAMS;\nconst ACTION_ERROR_CODES = [\n \"BAD_REQUEST\",\n \"UNAUTHORIZED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"TIMEOUT\",\n \"CONFLICT\",\n \"PRECONDITION_FAILED\",\n \"PAYLOAD_TOO_LARGE\",\n \"UNSUPPORTED_MEDIA_TYPE\",\n \"UNPROCESSABLE_CONTENT\",\n \"TOO_MANY_REQUESTS\",\n \"CLIENT_CLOSED_REQUEST\",\n \"INTERNAL_SERVER_ERROR\"\n];\nconst codeToStatusMap = {\n // Implemented from tRPC error code table\n // https://trpc.io/docs/server/error-handling#error-codes\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n TIMEOUT: 405,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500\n};\nconst statusToCodeMap = Object.entries(codeToStatusMap).reduce(\n // reverse the key-value pairs\n (acc, [key, value]) => ({ ...acc, [value]: key }),\n {}\n);\nclass ActionError extends Error {\n type = \"AstroActionError\";\n code = \"INTERNAL_SERVER_ERROR\";\n status = 500;\n constructor(params) {\n super(params.message);\n this.code = params.code;\n this.status = ActionError.codeToStatus(params.code);\n if (params.stack) {\n this.stack = params.stack;\n }\n }\n static codeToStatus(code) {\n return codeToStatusMap[code];\n }\n static statusToCode(status) {\n return statusToCodeMap[status] ?? \"INTERNAL_SERVER_ERROR\";\n }\n static fromJson(body) {\n if (isInputError(body)) {\n return new ActionInputError(body.issues);\n }\n if (isActionError(body)) {\n return new ActionError(body);\n }\n return new ActionError({\n code: \"INTERNAL_SERVER_ERROR\"\n });\n }\n}\nfunction isActionError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionError\";\n}\nfunction isInputError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionInputError\" && \"issues\" in error && Array.isArray(error.issues);\n}\nclass ActionInputError extends ActionError {\n type = \"AstroActionInputError\";\n // We don't expose all ZodError properties.\n // Not all properties will serialize from server to client,\n // and we don't want to import the full ZodError object into the client.\n issues;\n fields;\n constructor(issues) {\n super({\n message: `Failed to validate: ${JSON.stringify(issues, null, 2)}`,\n code: \"BAD_REQUEST\"\n });\n this.issues = issues;\n this.fields = {};\n for (const issue of issues) {\n if (issue.path.length > 0) {\n const key = issue.path[0].toString();\n this.fields[key] ??= [];\n this.fields[key]?.push(issue.message);\n }\n }\n }\n}\nasync function callSafely(handler) {\n try {\n const data = await handler();\n return { data, error: void 0 };\n } catch (e) {\n if (e instanceof ActionError) {\n return { data: void 0, error: e };\n }\n return {\n data: void 0,\n error: new ActionError({\n message: e instanceof Error ? e.message : \"Unknown error\",\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n}\nfunction getActionQueryString(name) {\n const searchParams = new URLSearchParams({ [_ACTION_QUERY_PARAMS.actionName]: name });\n return `?${searchParams.toString()}`;\n}\nfunction serializeActionResult(res) {\n if (res.error) {\n if (import.meta.env?.DEV) {\n actionResultErrorStack.set(res.error.stack);\n }\n let body2;\n if (res.error instanceof ActionInputError) {\n body2 = {\n type: res.error.type,\n issues: res.error.issues,\n fields: res.error.fields\n };\n } else {\n body2 = {\n ...res.error,\n message: res.error.message\n };\n }\n return {\n type: \"error\",\n status: res.error.status,\n contentType: \"application/json\",\n body: JSON.stringify(body2)\n };\n }\n if (res.data === void 0) {\n return {\n type: \"empty\",\n status: 204\n };\n }\n let body;\n try {\n body = devalueStringify(res.data, {\n // Add support for URL objects\n URL: (value) => value instanceof URL && value.href\n });\n } catch (e) {\n let hint = ActionsReturnedInvalidDataError.hint;\n if (res.data instanceof Response) {\n hint = REDIRECT_STATUS_CODES.includes(res.data.status) ? \"If you need to redirect when the action succeeds, trigger a redirect where the action is called. See the Actions guide for server and client redirect examples: https://docs.astro.build/en/guides/actions.\" : \"If you need to return a Response object, try using a server endpoint instead. See https://docs.astro.build/en/guides/endpoints/#server-endpoints-api-routes\";\n }\n throw new AstroError({\n ...ActionsReturnedInvalidDataError,\n message: ActionsReturnedInvalidDataError.message(String(e)),\n hint\n });\n }\n return {\n type: \"data\",\n status: 200,\n contentType: \"application/json+devalue\",\n body\n };\n}\nfunction deserializeActionResult(res) {\n if (res.type === \"error\") {\n let json;\n try {\n json = JSON.parse(res.body);\n } catch {\n return {\n data: void 0,\n error: new ActionError({\n message: res.body,\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n if (import.meta.env?.PROD) {\n return { error: ActionError.fromJson(json), data: void 0 };\n } else {\n const error = ActionError.fromJson(json);\n error.stack = actionResultErrorStack.get();\n return {\n error,\n data: void 0\n };\n }\n }\n if (res.type === \"empty\") {\n return { data: void 0, error: void 0 };\n }\n return {\n data: devalueParse(res.body, {\n URL: (href) => new URL(href)\n }),\n error: void 0\n };\n}\nconst actionResultErrorStack = /* @__PURE__ */ function actionResultErrorStackFn() {\n let errorStack;\n return {\n set(stack) {\n errorStack = stack;\n },\n get() {\n return errorStack;\n }\n };\n}();\nexport {\n ACTION_ERROR_CODES,\n ACTION_QUERY_PARAMS,\n ActionError,\n ActionInputError,\n callSafely,\n deserializeActionResult,\n getActionQueryString,\n isActionError,\n isInputError,\n serializeActionResult\n};\n","function sanitizeParams(params) {\n return Object.fromEntries(\n Object.entries(params).map(([key, value]) => {\n if (typeof value === \"string\") {\n return [key, value.normalize().replace(/#/g, \"%23\").replace(/\\?/g, \"%3F\")];\n }\n return [key, value];\n })\n );\n}\nfunction getParameter(part, params) {\n if (part.spread) {\n return params[part.content.slice(3)] || \"\";\n }\n if (part.dynamic) {\n if (!params[part.content]) {\n throw new TypeError(`Missing parameter: ${part.content}`);\n }\n return params[part.content];\n }\n return part.content.normalize().replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\").replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n}\nfunction getSegment(segment, params) {\n const segmentPath = segment.map((part) => getParameter(part, params)).join(\"\");\n return segmentPath ? \"/\" + segmentPath : \"\";\n}\nfunction getRouteGenerator(segments, addTrailingSlash) {\n return (params) => {\n const sanitizedParams = sanitizeParams(params);\n let trailing = \"\";\n if (addTrailingSlash === \"always\" && segments.length) {\n trailing = \"/\";\n }\n const path = segments.map((segment) => getSegment(segment, sanitizedParams)).join(\"\") + trailing;\n return path || \"/\";\n };\n}\nexport {\n getRouteGenerator\n};\n","import { getRouteGenerator } from \"./generator.js\";\nfunction serializeRouteData(routeData, trailingSlash) {\n return {\n ...routeData,\n generate: void 0,\n pattern: routeData.pattern.source,\n redirectRoute: routeData.redirectRoute ? serializeRouteData(routeData.redirectRoute, trailingSlash) : void 0,\n fallbackRoutes: routeData.fallbackRoutes.map((fallbackRoute) => {\n return serializeRouteData(fallbackRoute, trailingSlash);\n }),\n _meta: { trailingSlash }\n };\n}\nfunction deserializeRouteData(rawRouteData) {\n return {\n route: rawRouteData.route,\n type: rawRouteData.type,\n pattern: new RegExp(rawRouteData.pattern),\n params: rawRouteData.params,\n component: rawRouteData.component,\n generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),\n pathname: rawRouteData.pathname || void 0,\n segments: rawRouteData.segments,\n prerender: rawRouteData.prerender,\n redirect: rawRouteData.redirect,\n redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,\n fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {\n return deserializeRouteData(fallback);\n }),\n isIndex: rawRouteData.isIndex,\n origin: rawRouteData.origin\n };\n}\nexport {\n deserializeRouteData,\n serializeRouteData\n};\n","import { decodeKey } from \"../encryption.js\";\nimport { NOOP_MIDDLEWARE_FN } from \"../middleware/noop-middleware.js\";\nimport { deserializeRouteData } from \"../routing/manifest/serialization.js\";\nfunction deserializeManifest(serializedManifest) {\n const routes = [];\n for (const serializedRoute of serializedManifest.routes) {\n routes.push({\n ...serializedRoute,\n routeData: deserializeRouteData(serializedRoute.routeData)\n });\n const route = serializedRoute;\n route.routeData = deserializeRouteData(serializedRoute.routeData);\n }\n const assets = new Set(serializedManifest.assets);\n const componentMetadata = new Map(serializedManifest.componentMetadata);\n const inlinedScripts = new Map(serializedManifest.inlinedScripts);\n const clientDirectives = new Map(serializedManifest.clientDirectives);\n const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);\n const key = decodeKey(serializedManifest.key);\n return {\n // in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)\n middleware() {\n return { onRequest: NOOP_MIDDLEWARE_FN };\n },\n ...serializedManifest,\n assets,\n componentMetadata,\n inlinedScripts,\n clientDirectives,\n routes,\n serverIslandNameMap,\n key\n };\n}\nexport {\n deserializeManifest\n};\n"],"names":[],"mappings":";;;;;;;;AACA,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAC1C,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC;AACzD,EAAE,OAAO,IAAI,EAAE;AACf,CAAC;;ACiBD,MAAM,eAAkB,GAAA;AAAA;AAAA;AAAA,EAGtB,WAAa,EAAA,GAAA;AAAA,EACb,YAAc,EAAA,GAAA;AAAA,EACd,SAAW,EAAA,GAAA;AAAA,EACX,SAAW,EAAA,GAAA;AAAA,EACX,OAAS,EAAA,GAAA;AAAA,EACT,QAAU,EAAA,GAAA;AAAA,EACV,mBAAqB,EAAA,GAAA;AAAA,EACrB,iBAAmB,EAAA,GAAA;AAAA,EACnB,sBAAwB,EAAA,GAAA;AAAA,EACxB,qBAAuB,EAAA,GAAA;AAAA,EACvB,iBAAmB,EAAA,GAAA;AAAA,EACnB,qBAAuB,EAAA,GAAA;AAAA,EACvB,qBAAuB,EAAA;AACzB,CAAA;AACwB,MAAA,CAAO,OAAQ,CAAA,eAAe,CAAE,CAAA,MAAA;AAAA;AAAA,EAEtD,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,MAAO,EAAE,GAAG,GAAK,EAAA,CAAC,KAAK,GAAG,GAAI,EAAA,CAAA;AAAA,EAC/C;AACF;;AC1CA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,WAAW;AAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACjD,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClF;AACA,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AACzB,KAAK;AACL,GAAG;AACH;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AACpC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,MAAM,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D;AACA,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACtH;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;AACrC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAChF,EAAE,OAAO,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,EAAE;AAC7C;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AACvD,EAAE,OAAO,CAAC,MAAM,KAAK;AACrB,IAAI,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC;AAClD,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,IAAI,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC1D,MAAM,QAAQ,GAAG,GAAG;AACpB;AACA,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ;AACpG,IAAI,OAAO,IAAI,IAAI,GAAG;AACtB,GAAG;AACH;;ACvBA,SAAS,oBAAoB,CAAC,YAAY,EAAE;AAC5C,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,YAAY,CAAC,KAAK;AAC7B,IAAI,IAAI,EAAE,YAAY,CAAC,IAAI;AAC3B,IAAI,OAAO,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;AAC7C,IAAI,MAAM,EAAE,YAAY,CAAC,MAAM;AAC/B,IAAI,SAAS,EAAE,YAAY,CAAC,SAAS;AACrC,IAAI,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;AACxF,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC7C,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ;AACnC,IAAI,SAAS,EAAE,YAAY,CAAC,SAAS;AACrC,IAAI,QAAQ,EAAE,YAAY,CAAC,QAAQ;AACnC,IAAI,aAAa,EAAE,YAAY,CAAC,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;AACzG,IAAI,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AAClE,MAAM,OAAO,oBAAoB,CAAC,QAAQ,CAAC;AAC3C,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,YAAY,CAAC,OAAO;AACjC,IAAI,MAAM,EAAE,YAAY,CAAC;AACzB,GAAG;AACH;;AC7BA,SAAS,mBAAmB,CAAC,kBAAkB,EAAE;AACjD,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,eAAe,IAAI,kBAAkB,CAAC,MAAM,EAAE;AAC3D,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,MAAM,GAAG,eAAe;AACxB,MAAM,SAAS,EAAE,oBAAoB,CAAC,eAAe,CAAC,SAAS;AAC/D,KAAK,CAAC;AACN,IAAI,MAAM,KAAK,GAAG,eAAe;AACjC,IAAI,KAAK,CAAC,SAAS,GAAG,oBAAoB,CAAC,eAAe,CAAC,SAAS,CAAC;AACrE;AACA,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACnD,EAAE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AACzE,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACnE,EAAE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AACvE,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;AAC7E,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC/C,EAAE,OAAO;AACT;AACA,IAAI,UAAU,GAAG;AACjB,MAAM,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAC9C,KAAK;AACL,IAAI,GAAG,kBAAkB;AACzB,IAAI,MAAM;AACV,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,MAAM;AACV,IAAI,mBAAmB;AACvB,IAAI;AACJ,GAAG;AACH;;;;;;","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file