Onboarding

NCUC Onboarding Program - Welcome Letter

Dear New Member:

Thank you for joining the Noncommercial Users Constituency (NCUC)!

As you may know, the NCUC is the home for civil society organisations, public interest groups, and individuals in ICANN’s Generic Names Supporting Organization (GNSO). The GNSO is the place where different stakeholders are represented in ICANN’s activities and develop consensus policies for governing generic top-level domain names (gTLD) like .com, .net, and .org.

You are now a part of the ICANN community, so we would like to provide you with enough context to understand what we stand for, and to lay the foundation for deeper learning so that you can become an active participant in our work. Over the coming weeks, we will introduce you to the nuances that surround the fascinating work that we do and provide you with a ‘birds eye view’ of the various issues we are working on and how they relate to issues inside and outside of the ICANN ecosystem. We were all new here at one time, and we understand how difficult it can be to build a solid foundation of knowledge to become an active ICANNer. That said, once a week for the next seven weeks we will email you some tips and insights that we hope will make it easier for you to participate in our work and to have an immediate impact of your own.

On a lot of the topics we advocate for there are no universally-agreed definitions or perspectives, and there is certainly no one prescribed manner of analysing an issue. Given the global dimension of Internet governance, we believe it helps to think of issues more in terms of ‘shared understandings’ of what our values represent. At the NCUC we are a bunch of different actors working together to achieve a common goal: to protect and support non-commercial communication and activity on the Internet, including personal and political speech, research and educational communication, and expression about hobbies, interests and ideas.

Help and guidance is on hand to help you find a path to involvement within our activities. To that end, we would like to know more about you (if you are an individual member) and/or your organization (if you have joined us under organizational membership)! This information will be used solely to help us to connect you with mentors, working groups, and activities that we think will be of interest. Please note that answers will not be posted publicly.

* Please share with us more about your background (your background and your organization’s background). What experiences you would like us to know about?

* What issues, concerns, and hopes bring you (and your organization) to ICANN? How do you see the NCUC within this panorama?

* What are your (and your organization’s) areas of interest and expertise? Technical, legal, research, advocacy, communications, others? ICANN needs them all!

* Do you know about any of the current working groups, working parties, or other activities that are taking place at ICANN? Have you joined any already, or are there any that you are interested in joining? (We are here to help you navigate and identify potential areas of interest. So don’t feel pressured if you haven’t made up your mind yet, or are unsure of where you might be able to engage more closely.)

* We have three “policy development process” working groups now developing rules for the ICANN community and the Domain Name System. Do any of these interest you? If so, please check one or more of the boxes.

– Rights Protection Mechanisms Working Group – the rules that created the Trademark Clearinghouse, Uniform Rapid Suspension and Uniform Dispute Resolution Policy (domain name allocation and revocation procedures). This is a good entry point if you have knowledge of or interests in intellectual property.

– Registration Directory Services Working Group – looking at the rules for collection of domain name registration data (which today includes the name, address, phone number, and email address of every registrant), and the future of its collection, publication, and availability to those with a desire and/or need. This is a good entry point if you advocate for or are interested in privacy and data protection.

– New gTLD Subsequent Procedures Working Group – researching and writing the ‘rules of the road’ for the next round of new generic top-levels domains (the new ‘applicant guidebook’ for the next round of new gTLD allocations is expected to open in 2020).

Please forward your responses to this email address: onboarding@lists.ncuc.org. Participation is optional, and a friendly reminder – if you do reply, we will not post your answers publicly.

We know that it might seem like the landscape here within the NCUC and ICANN might be difficult to navigate. It is, but it is not impossible and will start to make more sense soon. We want to help you too. Please reach out to us with your questions, concerns, comments, and feedback: onboarding@lists.ncuc.org. Our mentors check this inbox periodically and are on-hand to help you assimilate into our community and into the various working groups.

Best wishes,
NCUC Chair & NCUC Onboarding Team

Overview 1 What is the NCUC?

The NCUC amplifies the voice of individuals and civil society organizations in the development of the Domain Name System and this area of the Internet’s infrastructure. We have real voting power in ICANN’s policy-making processes and work to develop and support positions that favour non-commercial communication and activity online.

Here’s how we do it. We:
* Mobilize civil society actors to participate in ICANN.
* Elect representatives to the GNSO Council, which coordinates the policy development process for generic Top Level Domains.
* Collaborate and interact with other stakeholders in ICANN on matters of common concern, including businesses, governments, and others.
* Develop and advocate policy positions.
Send members around the world to engage and participate in important agenda setting and decision making processes.
* Organize conferences and events exploring global Internet governance issues.

We have a proud history that stretches back 20 years. Our principled and consistent stances in support of Internet freedoms and human rights have allowed us to successfully take a noncommercial outlook on policy matters within ICANN today. If you would like to learn more about where we have come from, please read this essay by Milton Mueller.

Also, you may find the following videos useful for getting a taste for what our constituency stands for. And be sure to look out for these faces at future ICANN meetings!

* What is the NCUC? – https://www.youtube.com/watch?v=7O98MF9eZbo. Includes NCUC members Robin Gross, Wendy Seltzer, Kathy Kleiman, Avri Doria, and Milton Mueller speaking about why you might want to get involved in the NCUC (running time: 2:41).

* What are non-commercial uses of the Domain Name System? An extended interview with Rafik Dammak, former chair of the NCUC’s Executive Committee – https://www.youtube.com/watch?v=tmdhr4P3kQA (running time: 9:04).

* What are the NCUC’s values? An interview with Bill Drake (a long term NCUC member and also former chair of NCUC) as he shares some tips and insights for newcomers to the constituency – https://www.youtube.com/watch?v=fGRQSRjJQAU (running time: 7:32).

* A brief history of the NCUC and its origins. A lecture from Milton Mueller – https://www.youtube.com/watch?v=sRlrqSyAibU (running time: 5:41).

Overview 2 - What is actually within ICANN’s purview?

Definitions of Internet governance vary in scope, but there are typically two elements: the running of the technical infrastructure of the Internet (which is what we are primarily concerned with – things like the allocation of unique identifiers) and the impact of the Internet on society (sometimes described as the Internet’s public policy issues, things like content control, and combatting cybercrime). These definitions continue to be explored and debated by the stakeholders who participate in Internet governance processes.

ICANN is just one part of the Internet governance ecosystem. It carries out a narrow technical function which raises very important and interesting policy issues that are a part of the broader Internet governance debate. Our work focuses on the infrastructure and management of critical Internet resources, particularly domain names, and we are not a platform for broader public policy making.
We mention this to be honest with you from the beginning about where we – with your help! – can have an impact. Sometimes people join the NCUC, interested in very legitimate and interesting topics, but topics which are not dealt with at all at ICANN. Through the onboarding materials, we hope that you grasp some of the main issues that derive from the ICANN’s management of critical Internet resources.

What is ICANN’s Structure – the Big Picture – and the Multistakeholder Model?

The Internet is an ecosystem full of stakeholders – actors like businesses, governments, researchers, civil society organisations, the technical community, noncommercial and individual end-users, and others – who play a vital role in the Internet’s evolution. The ways in which the participation of these actors is allowed or encouraged influences the degree to which these stakeholders are seen to have a credible and effective voice in the governance of the Internet.

The Internet has historically been developed through policy development processes which are transparent, collaborative, and bottom-up. Some stakeholder groups consider this model to be a threat to their sphere of influence, and these actors have worked to maintain a more top-down approach to governance decisions. Nonetheless, multistakeholderism has largely prevailed and today ICANN’s governance framework is a multistakeholder one. It is the idea that there is no one decision-maker of the Internet – a multitude of stakeholders (and not only government agencies) pass rules for the Internet’s infrastructure and the Domain Name System. We write the rules together and we all have a voice in the process on an equal footing with everybody else – but only if we turn up in the first place and participate in the debates. The idea is that Internet governance should mimic the structure of the Internet itself – borderless and open to all.

ICANN has a Board of Directors which holds the ultimate authority to approve or reject policy recommendations. The Board is elected by Supporting Organizations on the basis of advice from a Nominating Committee and certain advisory groups.

ICANN has three Large “Supporting Organizations” (SOs) which are responsible for developing and making policy recommendations to the Board:

* Address Supporting Organizations – for the groups who run the Internet Protocol numbers (also called IP addresses) around the world, including their allocation, transfer, and record-keeping.
* Country Code Supporting Organization – for the entities and organizations who run each of the country code top-level domains (or ccTLDs) like .jp, and who choose to participate in the ICANN process.
* Generic Names Supporting Organization (GNSO) – the group that sets out the policies for generic top-level domain names, both the 30-year old ones including .com, .net and .org, and the much newer ones, some just being delegated now, including .xyz, .ninja, and .radio.

Once policy recommendations have been made, they are also reviewed and advice is provided by a series of advisory committees that represent special interests in the ICANN community. It is important to note that these committees do not get involved with policy development. They include:

– Government Advisory Committee (GAC)
– At-Large Advisory Committee (ALAC)
– Security and Stability Advisory Committee (SSAC)
– Root Server System Advisory Committee (RSSAC).

ICANN staff are responsible for executing and implementing policies developed by the ICANN community and adopted by the ICANN Board.

The ICANN Ombudsman is an independent, impartial, and neutral person contracted to ICANN, with jurisdiction over problems and complaints made about decisions, actions, or inactions by ICANN, the Board of Directors, or unfair treatment of a community member by ICANN staff, Board, or a constituency body.

The Nominating Committee (NomCom)is a team of community volunteers responsible for the selection of eight ICANN Board members, and portions of the At-Large Advisory Committee, the Country Code Names Supporting Organisation, and the Generic Names Supporting Organisation.

To get a taste for why people like ICANN’s multistakeholder model and the fun of this new type of policy-making process, please see the video created by NCUC co-founder Kathy Kleiman and Google: What is the Multistakeholder Model: https://www.youtube.com/watch?v=xR5csH7tIyc (running time: 3:59).

Additional Reading:

– ICANNWiki – not to be confused with wiki.ICANN.org – is a great resource for finding basic explanations of different concepts, and community member biographies. https://www.icannwiki.org

– The Internet Society has developed a graphic which provides a useful overview of the different actors who contribute to and broadly participate in how the Internet is governed, including those outside of ICANN’s remit. “https://www.internetsociety.org/sites/default/files/bp_Internet%20Ecosystem_032614_en.pdf”

Overview 3 - The GNSO, NCSG, and NCUC

Our part of the Internet governance world is the Generic Names Supporting Organization (GNSO). The GNSO makes the rules for the registries, registrars, and registrants who operate in generic top-level domains (gTLDs). They are the top-level domains not associated with a special country code, but more generally known and used, e.g., .com, .org, .lawyer, .hotel, and .search, among others.

1. In the gTLD world, we operate under a regime of “policy by contract”:
Registries (who run the databases for assigning, routing, and tracking domain names in all gTLDs, including .com, .org, .audio, .mom and .car), sign a Registry Agreement with ICANN to run these gTLDs.

2. Registrars (who sell domain names in the gTLDs, e.g. NCUC.org) to the public sign Registrar Accreditation Agreements with ICANN.

3. Registrants (who buy and use second level domain names, e.g. NCSG.org) sign domain name registration agreements with their Registrars that bind them to the rules created by ICANN.

Registries, registrars, and registrants agree by contract to follow the rules and policies created by ICANN, and these policies can be changed, deleted, revised, and removed.

Accordingly, the Generic Names Supporting Organization is divided into two “Houses” for voting purposes, much like the British Parliament or US Congress:

* One for the Registration Industry – Registries and Registrars – called the Contracted Parties House (for the contracts they sign with ICANN)
* One for the ‘user community’ – of commercial and noncommercial users – called the Non-Contracted Parties House (reflecting the fact that we don’t sign contracts directly with ICANN).

We are part of the Non-Contracted Parties House. Here’s our structure:

NONCOMMERCIAL STAKEHOLDERS GROUP
– Noncommercial Users Constituency (NCUC)
– Not-for-Profit Operational Concerns Constituency (NPOC)

COMMERCIAL STAKEHOLDERS GROUP
– Commercial & Business Users Constituency (BC)
– Intellectual Property Constituency (IPC)
– Internet Service & Connection Providers Constituency (ISPCP)

The following Stakeholder Group/Constituency has its own Chair:

Nocommercial stakeholder Group – Farzaneh Badii
Noncommercial Users Constituency – Renata Aquino Ribeiro
Not-for-Profit Operational Concerns Constituency – Joan Kerr
Commercial & Business Users Constituency – Claudia Selli
Intellectual Property Constituency – Brian Winterfeldt
Internet Service & Connection Providers Constituency – Wolf-ulrich Knoben

Each Stakeholder Group elects its own representatives to the GNSO Council, where representatives for the GNSO gather to manage and oversee the policy-making processes for generic top-level domains. Our current NCSG Councillors, who serve for two year terms, are:

Stephanie Perrin – Canada
Martin Silva Valent – Argentina
Rafik Dammak – Tunisia / Japan
Tatiana Tropina – Russia
Ayden Férdeline – Germany
Arsène Tungali – Republic of Congo

Note: These names were accurate as of 01 May 2018, but may have changed since time of publication.

As we would say in ICANN lingo: The NCUC plays a vital part in the GNSO’s bottom-up, multistakeholder policymaking process by voting for representatives to the GNSO Council and serving on the policy development working groups. We’ll talk about working groups in the next segment.

Overview 4 - What Policy is Set at ICANN?

There are multiple kinds of policy within the ICANN ecosystem:

1. Domain Name System (DNS) Policies are developed through formal policy development processes, as set forth by the ICANN Bylaws. These policies become part of the contracts signed by Registries, Registries and Registrants – part of the rules of the global Domain Name System. Examples include the New gTLD Program, the Inter-Registrar Transfer Policy, and the Expired Registration Recovery Policy, among many others. Our work in this area often focuses on protecting privacy, freedom of expression, human rights, fair use, and due process. This is what we are primarily involved with.

2. Operational Policies define how ICANN works as an organization. These include an array of Cross-Community Working Groups associated with enhancing ICANN’s accountability, transparency, and diversity. In addition, operational policies include those matters not subject to a formal policy development process, but where community input has been sought via public comment or other means in shaping them. Examples include a recent revision to the criteria for awarding an ICANN Fellowship, the language services policy for determining which meetings receive translation, and the conflict of interest policy for Board members.

3. General Practices. ICANN relies on established practices that ‘just exist’ and have not necessarily gone through a formalised approval process. Examples include acceptable behaviour and conduct from community members when asking questions to Board at a public comment forum.
In our world, we are mostly involved in DNS policy. These are the recommendations that are developed and refined by the ICANN community through the various Supporting Organizations and influenced by the Advisory Committees.

How is Domain Name System Policy Developed within the GNSO?

DNS policy is developed in different ways across the Supporting Organizations, but within the GNSO (where the NCUC sits), the process usually flows as follows:

– Firstly, the GNSO Council or ICANN’s Board will identify the issue. It is up to the GNSO Council to determine whether or not the issue will result in consensus policy.
” If yes, the GNSO Council will request a Preliminary Issue Report to scope the issue.
” ICANN Staff will produce and publish the Preliminary Issue Report for public comment. Following public comment, this feedback will be reviewed and incorporated into a Final Issue Report.

– The GNSO Council will consider the Final Issue Report and decide whether or not to initiate the formal Policy Development Process.
” If yes, the GNSO Council will develop and adopt a charter for the Policy Development Process working group.
” The GNSO Council will issue a call for volunteers to join the working group.

The working group is formed. The working group participants will meet regularly and consult with the community to develop their Initial Report. This Initial Report will be opened for public comment.
” After reviews and once community consensus is reached, the working group will submit its Final Report to the GNSO Council.

– The GNSO Council will deliberate the Final Report.
” If the recommendations are adopted, the GNSO Council will submit the Final Report to the ICANN Board.

– The ICANN Board will then consult with various Advisory Committees, and will generally put the recommendations out for comment from the wider Internet community. Taking into account the advice received, the ICANN Board will vote on the Final Report recommendations.

They key thing to note, here, is that policy development in the GNSO takes place at the working group level – so that’s where you need to be to get involved!

What are Policy Development Process Working Groups, and What is so Exciting About them Despite their Boring Name?

There are many ways in which you can become involved in ICANN’s multistakeholder, bottom-up, consensus-driven model for policy development.

The most effective way in which you can voice your position about an issue is to shape the dialogue and the deliberations of the policy topic. You can do this by joining a Working Group created by the GNSO Council.

These working groups are formally chartered within the ICANN structure to address policies and other issues facing the Internet community and the various stakeholders. They are composed of interested community volunteers with various types of interests and expertise.
Most working groups have a membership which is geographically dispersed, so the primary means of meeting is via teleconferences and online resources two to four times per month. The phone calls use toll-free audiobridge numbers to many countries, or the Secretariat can dial out to you. Many use the Adobe Connect platform, which is free, to participate in the meetings online.

If you are new to the community, it is generally easiest to join a working group as it is forming, but you can also join a working group that is already in progress. Doing so requires that you catch up with the work, research, and discussion that the group has already covered. You can do so by going through the recordings, briefing and transcripts of the previous meetings. You can also reach out to an NCUC focal point who can tell you more about how to get engaged.

Joining the Working Group: Procedures

If you wish to join a working group, email the GNSO Secretariat at gnso-secs@icann.org to indicate your interest in doing so. You must include your full name, time zone, preferred email address for correspondence, and indicate whether you wish to be a member or observer of the working group (you can change this status at any time).

You will then be invited to complete a short 90-minute course with ICANN staff to learn how to use the different online resources. In this tutorial you will be introduced to ICANN Learn, an e-learning platform with a growing number of tutorials on different community topics.
Shortly thereafter, you will be asked to complete a Statement of Interest (SOI) form. In this document, you publicly disclose who you work for and any other business relationships that might affect how you influence the working group. You cannot be disqualified from the group based on your SOI. It is posted so that others in the working group can understand what factors may influence your viewpoint. You will also be able to see the SOI of every other person in the working group.

What are my Responsibilities if I Join a Working Group?

Working groups address challenging and complex issues, and require a high level of collaboration with people from all types of backgrounds and different cultures. You will probably enjoy the work more if you stick to areas of particular interest, and seek to participate actively in only one or two working groups (at least at first).

No one can force you to take on more work than you choose to – we are a community of volunteers – but for maximum impact, you will need to participate in as many of the conference calls as possible. Attendance on calls is taken by ICANN staff and is publicly posted. In addition to attending meetings, you may be asked to assist in specific tasks such as:
” Developing and drafting working group documents,
” Contributing ideas and knowledge to working group discussions on the mailing list,
” Acting as a liaison between the working group and the NCUC and NCSG,
” Ensuring that NCSG statements are developed in an informed and timely way,
” Actively and constructively participating in the consensus decision making process
You should be aware that working groups are normally expected to operate under the principles of transparency and openness, which means that mailing list conversations are publicly archived, meetings are normally recorded and transcribed, and the public will be able to listen to or read your contribution. This is how the public can hold the ICANN community accountable for its work.

What Do I Get in Return?

As a volunteer, you will gain greater insight into how domain name policy is formed; a keen awareness of near-future developments that affect millions of users worldwide; and will have the opportunity to meet volunteers of similar interest from many different countries.

“You also get to see how the multistakeholder process works in action other than just reading about it. You will form a sense of collegiality with others from our, and other, stakeholder groups. You can fight for what you believe in, and be effective in making a change (however minimal). You can fight for more transparency and accountability. You can fight for freedom of expression in domain name policies. You can build a network of people who are the top experts in their field. You can become a leader or take an official position in the constituency and feel rewarded by serving the members and the community.”
– Farzaneh Badii, Chair of the NCUC

I Don’t Have Time to Join a Working Group, How Can I Help?

Many in the community who are short on time voice their positions about issues when a working group or operational matter has a call open for public comment.

The Public Comments page on the ICANN website lists every issue that is currently open for input from any Internet user around the world. It also has a calendar where you can find a list of upcoming issues that will be available for comment in the near future. Here you will find instructions on how to submit comments and read other comments that other stakeholders have already submitted.

The NCSG, on behalf of the members of the NCUC and NPOC, work hard to prepare comments that faithfully represent our joint concerns and recommendations. In order for the comment to be endorsed as the position of the NCSG, there should first be consultation with NCSG members, and it must be approved by the NCSG’s Policy Committee. Often there is discussion on the NCSG list on the different issues, but if there is not or there is a comment that you would like to help coordinate, please let the Chair know.

Throughout ICANN’s history, policy recommendations have been modified in order to incorporate the feedback received through public comments. As a recent example, the Applicant Guidebook that explains how to apply for a new gTLD was posted multiple times and drew more than 1,000 comments across six revisions, until the ICANN community reached consensus on it. It is crucially important that we weigh in on issues great and small.

Overview 5 - A Glimpse of NCUC’s Extensive History in ICANN Policies; The Values We Have Tried Hard to Instil in the GNSO

Generally speaking, civil society organizations and interested noncommercial individual users in the NCUC represent the public interest in Internet governance discussions related to domain name policy.

We organise bottom-up input and represent the interests of noncommercial Internet users who would otherwise be marginalised in the face of governmental and private sector priorities.

We have fought for the principles of free expression, privacy and data protection, fair use, freedom of association, and due process in ICANN activities. If these are issues you too care about, we invite you to join us! We need your input, ideas, expertise, and energy.

That said, given the diversity of opinion within our stakeholder group, we have a hard path to consensus. There are understandably often dissonant voices. But our lack of proper coordination can harm us at times. As a result, we thought it would be helpful to share with you some of the issues we have worked on, and some of the ideas we have tried so hard to inculcate in ICANN, in the hopes that collectively we might be able to band together more.

What are the positions of the NCUC?

The Executive Committee of the NCUC, in collaboration with NCUC members, has endorsed the following positions:
Domain Names Belong to Everyone

– Privacy Protection in Domain Names
– Fair & Balanced Domain Name Disputes
– Respect for Non-Commercial Uses and Users
– Diversity and Consumer Choice
– Human Rights
– Access to Knowledge and the Rights to Words
– Promote Growth and Development
– Support Multilingual Internet
– Global Internet Governance
– Accountable Internet Governance
– Freedom of Expression

Where could I get involved?

Whatever your skills, there’s somewhere in the NCUC where you can contribute!

Engagement and Outreach:
– Help us promote diversity and inclusion by leading targeted initiatives to bring new voices into our work.
– Outreach, engagement, and capacity building efforts are critical for maintaining a sustainable source of volunteers from diverse regions, ensuring that they are versed in ICANN policy issues and can effectively engage with other stakeholder groups.

Operations / Finance
– Review and provide comments on ICANN’s strategic plans and operating budget, as well as monitor and voice issues of concern.
– Request additional funding for the NCUC through the special budgetary request process, and help us apply these resources to advance non-commercial interests.

Hold the Empowered Community Accountable
– We are an integral part of ICANN’s multistakeholder community, and through our participation in policy play an important role in holding ICANN accountable.
– Our public interest-orientated contributions provide balance against commercial interests.
– In the Internet governance ecosystem, there are not many venues where everyone is treated equally. ICANN is the only place where non-commercial interests have equal structural influence. Civil society cannot effectively impact the evolution of the Internet if ICANN loses credibility and ceases to exist.

Policy Work
– Analyse and provide commentary, advice, or alternatives on ICANN policy proposals, deliverables, and decisions that reflect the views and needs of non-commercial Internet users.

Language Skills
– Internationalised Domain Names (IDNs) give users around the world the ability to access the Internet in their native tongue, making it easier for them to discover/remember websites and access local content.
– IDNs have the potential to increase the Internet penetration rate in emerging economies where the Latin script is not the primary alphabet.
– If you have language skills, create or contribute to the universal acceptance rules, Label Generation Rules, and other key IDN issues that impact your language so that we can make the Internet truly multilingual.

Overview 6 - Public ICANN Meetings

ICANN meetings are held three times each year in different regions of the globe to enable attendees from around the world to meet in person and to develop and implement Internet policies. There are three formats of ICANN meetings – A, B, and C – which affect the meeting’s duration and agenda. You can find information on the differences between the meeting types here: https://meetings.icann.org/en/future-meeting-strategy. All meetings are free to attend, but registration is required.

ICANN meetings offer a variety of sessions such as workshops, open forums, and working meetings, and there are also social events, giving you the best opportunity for face-to-face discussions and airing of opinions among knowledgeable people dedicated to the continued stable and secure operation of the Internet. Try to come to one when you feel ready!

There are also pre-meeting workshops and working sessions where the volunteer members of the supporting organizations and advisory committees initiate their work. ICANN staff will also hold webinars to prepare us for the face-to-face meetings and to update us on the work of other community members.

On the Sunday before the meeting begins, ICANN holds a series of training sessions – usually between 10:00 and 18:00 – just for newcomers to the community. Among the topics covered are an introduction to ICANN, how to use the ICANN engagement tools, and how the community interacts during and in between meetings. These sessions will help you participate more effectively in the ICANN community and attendance is recommended.

The working language for ICANN meetings is English, but translation, scribing and interpretation into other languages is available for high-demand sessions. Remote participation is possible for all sessions.

Detailed logistics and information about each meeting venue, registration, and remote participation can be found on the dedicated website created for each meeting.

ICANN offers travel assistance to some members of its supporting organizations and advisory committees. The NextGen@ICANN and Fellowship programs also provide travel support to bring new voices into the ICANN community.

Furthermore, thanks to the generosity of the NCUC’s donours, the NCUC is able to offer limited travel support to our members to enable participation in ICANN meetings and other, relevant conferences such as the Internet Governance Forum – more information on the travel policy can be found on our website: http://www.NCUC.org.

Overview 7 - You joined NCUC; what’s next?

– The best thing you can do is join a working group – either as an observer (where you watch the email but cannot participate in the deliberations) or, even better, as a member and get the invitation to the join in the meetings of the working group.
– You can change your status from being an observer to a member at any time; but if you become a member, you will need to fill out the Statement of Internet (SOI) form. Feel free to ask for assistance!
– Most of our conversations at the NCUC-level happen on the mailing list. The volume of correspondence you receive might be intimidating – it is advisable to create a dedicated email address only for ICANN communications so that your personal or work email accounts do not become overwhelmed.
– Listen first, type second. Learning mailing list etiquette (“netiquette”) is an art. ICANN Staff have produced a quick and useful tutorial here. You have to register to view the module, but registration is free: http://learn.icann.org/courses/newcomer-toolkit.
– You’ll find there are Skype channels which different participants use for informal, on-the-fly discussions. Ask around to find out which channels are currently being used.
– The ICANN YouTube channel is an excellent resource. Take a look at the short videos which ICANN staff have produced and subscribe to the channel. This way, you’ll periodically come across bite-sized introductions to timely developments in the ICANN ecosystem.
– Keep an eye out for invitations from ICANN staff to participate in the pre-meeting policy update webinars. These webinars last for 90 minutes and will give you a timely, high-level update as to what the community is up to. They happen three times per year. Periodically, leaders within the NCUC will organise a series of policy webinars to brief the membership on the latest policy developments of key topics that we are engaged in – we’ll announce these on the mailing list so you can plan ahead and join in, if you can.
– Commentary on ICANN is regularly published by other community members on CircleID, and in the media on The Register, DomainIncite, DomainPulse, DomainMondo, and the Internet Governance Project. There’s also a range of accounts on Twitter (including those of the NCUC and NCSG) which circulate interesting perspectives on different issues. Don’t believe everything you read, but it’s not a bad idea to check in on these sources occasionally to see what is being said about the working group you’re participating in or the issues you care about – or on the work that others are up to.
– Once a month, the NCSG Policy Committee will have a teleconference. This is open to all NCUC and NPOC members and other NCSG members, and is well worth listening in on.
– Find a mentor informally; look for someone else in our constituency who is active, interested in the same issues as you are, and making a difference. Come at them with structured questions and chances are they’ll be happy to help you find your place in our fun little world. If you are finding it difficult to find a mentor, you can ask the NCUC Chair or your regional Executive Committee representative for a recommendation.
– We have a number of focal points who can answer your questions on different policy issues. You can find them on our website: http://www.ncuc.org/focal-points/

The following materials follow the Welcome Letter sent by the Chair of the Noncommercial Users Constituency (NCUC) to the broader membership welcoming new members into the fold.

We have divided our material into chapters, which have been designed to be distributed by email (one chapter a week for seven weeks). The goal is to introduce ICANN and its policy development and policy making processes in ‘bite-size pieces.’

At the end of each email, we will invite comments and questions from the new member. The NCUC has now established a special listserv to which the new members will send their questions. NCUC’s onboarding team will monitor this listserv, with oversight from the Chair of the constituency. Depending on the nature of the question, mentees will respond, escalate to the mentors, or we may refer the question to subject matter experts throughout the Constituency.

We have received permission from the NCUC Chair to operationalise the implementation of this new system from August 2017.

Thank you for your very helpful discussions of this material at our Onboarding meetings. Input continues to be warmly welcomed!

— NCUC Onboarding Team

Kathy Kleiman, Ayden Férdeline, Louise Marie Hurel

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.5.2";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Content blocked

Please turn off your ad blocker.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o,status:e}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a,o;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com","https://syndicatedsearch.goog","https://googleadservices.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i):yield this.transitionToParking(n)}}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return this.adblock.state!==Blocking.BLOCKED&&(!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason))))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));