Mijn Communities
Help

Kennisbank Youforce API & bestandsuitwisseling

Sorteren op:
Developer portal, een account aanmaken, applicatie registreren en toegang tot de klantgegevens
Volledig artikel weergeven
12-10-2022 13:33 (Bijgewerkt op 03-11-2023)
  • 1 Antwoorden
  • 4 kudos
  • 8789 Weergaven
Deze pagina beschrijft de benodigde stappen om een Youforce-bestand te koppelen aan de File API.
Volledig artikel weergeven
04-10-2022 16:32 (Bijgewerkt op 13-11-2023)
  • 17 Antwoorden
  • 5 kudos
  • 6431 Weergaven
Status  De Bestandsuitwisseling module is nu “Algemeen Beschikbaar” voor HR Core Online gebruikers. Dit betekent dat je geen 4Me-ticket meer hoeft in te vullen om Bestandsuitwisseling voor jouw gebruikers te activeren, maar dat je zelf de autorisatie kunt toekennen in Autorisatiebeheer. Bestandsuitwisseling is de vervanger van handmatig Zenden/Ontvangen met IBU.   Enkele voordelen: Intuïtief en gebruiksvriendelijk Geen lokale installatie of configuratie nodig Betrouwbaar, veilig en automatisch opschalen tijdens piek uren Vanaf heden zal de applicatie Bestandsuitwisseling standaard beschikbaar in Autorisatiebeheer. De autorisatie van elke gebruiker voor de verschillende file types kan door de Autorisatiebeheer administrator worden gedaan door het toekennen van de juiste rechten.   Wat je moet doen Als je al de juiste rollen hebt gedefinieerd in Autorisatiebeheer, volg dan onderstaande stappen. Zo niet, volg dan eerst de stappen zoals beschreven in dit artikel en daarna de stappen zoals hieronder beschreven.   Stap 1: Voeg de applicatie Bestandsuitwisseling toe aan de gewenste rol(len) met de volgende rechten: Toegang tot Bestandsuitwisseling Zend testbestanden naar Bestandsuitwisseling Ontvang testbestanden van Bestandsuitwisseling Op dit punt hebben de gebruikers toegang tot Bestandsuitwisseling, maar alleen toegang tot testbestanden en nog geen toegang tot applicatie specifieke bestanden.   Stap 2: Voeg alle gewenste applicaties en hun specifieke rechten toe aan de juiste rollen: Betaalmanager Ontvang opdrachten van Betaalmanager Gemal Ontvang downloads van Betaalmanager Gemal HR Core Zend bestanden naar HR Core Online Ontvang bestanden van HR Core Online Oude Zend-Ontvang naam was Zenden naar Hosted BO4  / Ontvangen van Hosted BO4 Payroll Gemal Direct Ontvang bestanden van Payroll Gemal Direct Personeelsdossier Zend bestanden naar Personeelsdossier Ontvang bestanden van Personeelsdossier Salarisdossier Gemal Ontvang bestanden van Salarisdossier Gemal Youforce Account Beheer  Zend XSSO bestanden naar Gebruikersbeheer Self Service  Zend HI CSV bestand naar Self Service Zend HI XML bestand naar Self Service Managementinformatie Ontvang HR datafeed bestanden van Managementinformatie Stap 3. Controleer of je gebruikers die Bestandsuitwisseling al gebruiken ook de juiste rollen hebben toegewezen gekregen. Indien nodig kun je rechten toekennen aan individuele gebruikers.   Stap 4. Koppel de Youforce bestanden aan de Bestandsuitwisseling. Zie instructies.     Stap 5. Bestandsuitwisseling is op dit moment beschikbaar in Mijn Youforce, maar kan ook worden bereikt via de "Bestandsuitwisseling" -tegel op de Youforce Desktop. In dat laatste geval moet de tegel wel worden geautoriseerd via Toegangsbeheer.  Extra informatie Gebruikers moeten zich aanmelden via de nieuwe login om gebruik te kunnen maken van de Bestandsuitwisseling applicatie. Bestanden kunnen gedurende 1 maand worden opgehaald/ontvangen. Bestanden kunnen gedurende 1 maand zo nodig meerdere malen worden ontvangen. Ontvangen bestanden worden opgeslagen in de Download directory die in je browser is geconfigureerd. Wil je bestanden in verschillende directories ontvangen dan kan dat door je browser zo te configureren dat hij bij elke download vraagt om een directory waar de bestanden gedownload moeten worden. De Nederlandse taal wordt ondersteund. De gebruikte taal volgt de keuze die je bij de persoonlijke instellingen in Mijn Youforce hebt gemaakt. Het is al mogelijk om tegelijkertijd meerdere bestanden te ontvangen. Zie Release-opmerkingen Bestandsuitwisseling update 16-10-2023 De Gemal Salaris tabellen die je gebruikt worden bij elke vernieuwing automatisch op de J-schijf geplaatst in de nieuwe Payroll-Tables directory. Bestandsuitwisseling toont gebruiker informatie van degene(n) die een bestand hebben ontvangen of verzonden. Zie dit artikel voor meer informatie. Kennisartikelen Zenden en Ontvangen met de IBU stopt Hoe richt ik de rechten voor Mijn Youforce zo overzichtelijk mogelijk in 'autorisatiebeheer'? Youforce-bestanden koppelen aan Bestandsuitwisseling.   Hoe Bestandsuitwisseling testen met dummy-bestanden Releases voor bestandsuitwisseling  
Volledig artikel weergeven
29-08-2023 10:07 (Bijgewerkt op 19-02-2024)
  • 22 Antwoorden
  • 4 kudos
  • 5770 Weergaven
Domain model   The IAM model       Data mapping Person  The personal details of an employee. This could also contains person without a (active) employment. HR Core Beaufort: Persoon id The globally unique id assigned to an employee 32789 P01001 Persoonsnummer personCode The unique id assigned to the employee 32789 P01001 Persoonsnummer personId The globally unique id assigned to an employee 32789 P01001 Persoonsnummer initials The initials of the employee A.B. P00303 Voorletters firstNames The official given names of the employee Amy Beatrice P01002 Voornamen knownAs The name which is used by the employee as first name Amy P01003 Roepnaam lastNameAtBirth The last name at birth of the employee. Also known as the family name Vries P00301 Geboortenaam lastNameAtBirth Prefix The prefix of the employee's last name at birth de P00302 Geboortenaam voorvoegsels lastName The last name used by the employee at present Vries - Van Eijck P01008 Samengestelde naam lastNamePrefix The prefix of the employee's last name at present de P01009 Samengestelde naam voorvoegsel nameAssemble Order Code of the assemble order used by the core system for the last name. C P00304 Gebruik achternaam partnerName The last name of the employee's partner Eijck P00390 Partner naam partnerName Prefix The prefix of the partner's last name Van P00391 Voorvoegsel partner titlePrefix Formal title prefix drs. P00305 Titulatuur voor de naam titleSuffix Formal title suffix Msc P03937 Titulatuur achter de naam gender Gender of the employee Female P00330  Geslacht dateOfBirth Date of birth 1986-12-02 P00321 Geboorte datum deceased This field indicates if an employee is deceased when false the property is not returned true P01005  Datum overlijden UserUID Digital Identity of the user from the portal bdd38fd2-FAKE-4313-FAKE-671c786d0758   Ping ID directly from the portal youforceAccount Indicaties if the person do have a user account J P15013 Youforce gebruiker phoneNumbers List of phone numbers and types Home +3188 123 45 67 P01027 Telefoonnummer woonadres Business +3188 345 67 89 P01037  Telefoonnummer werk Mobile +316 12 34 56 78 P01036 Telefoonnummer mobiel emailAddresses List of email addresses of the employee Business b.user@example.com P01035 E-mail adres werk Private p.user@example.com P01034 E-mail adres privé Addresses List of addresses   type Home street Kerkstraat P01014  Straat houseNumber 1 P01016 Huisnummer houseNumber Addition C P01018  Huisnummer toevoeging postalCode 1234 AB P01020  Postcode city Amersfoort P01022  Woonplaats country NL P01024 Woonland effectiveDate 2023-08-01 P01012  Adres m.i.v.   type Postal street Poststraat P00365 Straatnaam houseNumber 1 P00367 Huisnummer houseNumber Addition A P00368 Huisnummer toevoeging postalCode 1234 AB P00313 Postcode city Amersfoort P00308 Plaatsnaam country NL P00847 Land effectiveDate 2023-08-01 P00847 Adres m.i.v.     Employments  The employment of the employee. A person can have multiple employments at the same time.   HR Core Beaufort: Dienstverband employmentCode The code of the employment 1 P01101  Volgnummer dienstverband originalHireDate The first hire date or original hire date of an employee within the organization. This date is important for the tenure or working anniversary of an employee 2010-10-01 P00834 Datum in dienst CAO dischargeDate The end date or discharge date of the employment. This is always an "up to and including" date. In case of no values the field will not be returned as part of te response body 2018-12-31 P00830  Datum uitdienst hireDate Date of hire for the employment 2017-05-01 P00322 Datum in dienst classification Cost allocation of the employment 123 P01110 Code doelgroep employmentType Code of the employment type 4 P01102 Soort arbeidsrelatie workingAmount Working amount of the employment. amountOfWork: numeric value representing the work amount 40   P01109 Uren per week unitOfWork: unit of work that specifies the unit for the amount Hours P01109 Uren per week periodOfwork: indicates the period for which amountOfWork and unitOfWork are defined Day Week Month Quarter P01109 Uren per week jobProfile The job profile code 9909 DEV P01107 Primaire functie organizationUnit The organization unit id 1234567 ZKH P01106 Hiërarchisch organisatorische eenheid Payroll Client Code     P01103  CEA-nummer Payroll Institution Code      P01104 Instelling nummer Company PayrollClientCode and PayrollInsituationCode combined       Assignments  The possible assignments of an employee for their employment. In example, employee works is assigned to a different department as temporary replacement or to help another department without changing his own employment. HR Core Beaufort: Inzet id Unique id of the role assignment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.   100 1 12 1234 20200923 system field Unique id of the assignment personCode The unique id assigned to the employee 32789 P01001 Persoonsnummer personId The globally unique id assigned to an employee 32789 P01001 Persoonsnummer employmentCode The code of the employment of the person 1 P01101  Volgnummer dienstverband startDate The start date of the assignments 2017-05-01 P01125 Ingang inzet endDate The end date of the assignment. This is always an "up to and including" date. In case of no values the field will not be returned as part of te response body 2017-11-30 P01126 Einde inzet jobProfile Job title or job profile code of the assignment. DEV P01122 Operationele functie organizationUnit The organization unit id of the assignment. PD P01121 Operationele organisatorische eenheid workingAmount Working amount of the employment.. amountOfWork: numeric value representing the work amount 40   P01123 Uren inzet per week unitOfWork: unit of work that specifies the unit for the amount Hours P01123 Uren inzet per week periodOfwork: indicates the period for which amountOfWork and unitOfWork are defined Week P01123 Uren inzet per week costCenter The cost center of a Assignment     P01128 - Kostenplaats Inzet costUnit The cost unit of an Assignment     P01129 - Kostendrager Inzet costType The cost type of an Assignment     P01127 - Kostensoort Inzet type Type of assignment     P01123 - Soort Inzet   Cost allocation  The cost allocation of an employee. The cost allocations are generated by Beaufort. An employee can multiple cost allocations. Mostly the cost allocation with sequence number 0 or the one with the highest percentages  is the main cost allocation.  HR Core Beaufort: Loonverdeling id Unique id of the cost allocation. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.   32789 1 0 system field Unique id of the assignment PersonCode The unique id assigned to the employee 32789   Persoonsnummer employmentCode The code of the employment of the person 1   Dienstverband volgnummer sequenceNumber Unique sequence number or row number of the cost allocation within the employee 0 P01131 regelnummer loonverdeling costTypeCode code of the cost type  4004 P01133 Kostensoort loonverdeling CostTypeName full name of the cost type Loonkosten   Omschrijving kostensoort (referentie tabel) costCenterCode code of the cost center 4000 P01134 Kostenplaats loonverdeling costCenterName full name of the cost center KNO Operaties   Omschrijving kostenplaats (referentie tabel) costUnitCode code of the cost unit 4100 P01135 Kostendrager loonverdeling costUnitName full name of the cost unit KNO   Omschrijving kostendrager (referentie tabel) percentage percentage of the cost allocation 100 P01132 loonverdeling loonverdeling   Organization Units  The organization structure describes the organization in terms of business unit, departments, divisions, etc. and how these are related to each other. Based on the organization structure it's clear “how” units are related and "which" department is responsible for "what". HR Core Beaufort: Organisatie eenheden validFrom The date from which the record is valid 2020-04-01 N/A Data niet beschikbaar in de API validUntil The date from which the record is no longer valid. Will contains a default date in case no “end date“ has been defined for the record. 2020-05-01 9999-12-31 N/A Data niet beschikbaar in de API id Unique id of the organization unit PD P01061 Code organisatorische eenheid shortName Code or short name of the Organization Unit PD P01061 Code organisatorische eenheid fullName Name or full title of the Organization Unit Product Development   Naam organisatorische eenheid parentOrgUnit Code of the parent organization unit PD_EU   Organisatie eenheid > Onderdeel van organizationUnitType Type of organization unit Divisie   Type organisatorische eenheid   Role Assignments  The role assignment describes "who" is responsible for “what“ and “when“ within the organization unit. HR Core Beaufort: Rol toewijzing validFrom The date from which the record is valid 2020-04-01 N/A Data niet beschikbaar in de API validUntil The date from which the record is no longer valid. Will contains a default date in case no “end date“ has been defined for the record. 2020-05-01 9999-12-31 N/A Data niet beschikbaar in de API id Unique id of the role assignment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user. R1 - N/A BO4 - 78000 1877 MGR 20200101   Id van het record personId The unique id assigned to the employee 10017   Persoonsnummer van de houder van de rol organizationUnit The organization unit id of the assignment. 459   Code van organisatorische eenheid shortName The code of the role MGR   Code van de rol personCode The code of the person 12345   Persoonsnummer van de houder van de rol (gelijk aan personID) startDate Start date of role assignment 2013-04-17 N/A Data niet beschikbaar in de API endDate End date of role assignment 2020-01-31 N/A Data niet beschikbaar in de API   Job Profiles  All job profiles that have been defined within the tenant. HR Core Beaufort: Functie shortName Code or short name of the Job Profile SE Functie code fullName Name or full title of the Job Profile Software Engineer 5 Functie omschrijving jobFamily Code or short name of the Job Family PD5 Functie groep code validFrom The date from which the record is valid 2020-04-01 Data niet beschikbaar in de API validUntil The data from which the record is no longer valid. Contains a default date in case no “end date“ has been defined for the record. 9999-12-31 2020-05-01 Data niet beschikbaar in de API  
Volledig artikel weergeven
17-12-2021 21:56 (Bijgewerkt op 21-07-2023)
  • 0 Antwoorden
  • 0 kudos
  • 4877 Weergaven
Zenden en Ontvangen, waarbij IBU wordt gebruikt, en Bestandsuitwisseling, die gebruik maakt van de File API, zijn 2 verschillende Youforce modules. Ze hebben elk hun eigen bestanden. Standaard worden Youforce bestanden voor jou naar Zenden en Ontvangen gestuurd. Om de bestanden ook beschikbaar te krijgen voor Bestandsuitwisseling moet je sommige Youforce modules die je gebruikt vertellen dat ze de bestanden naar Bestandsuitwisseling sturen.   Deze pagina beschrijft voor elke module waar een aanpassing voor nodig is, de benodigde stappen om een Youforce-bestand te koppelen aan Bestandsuitwisseling.  Omdat  Bestandsuitwisseling ook gebruik maakt van de File API wordt in de beschrijvingen vaak alleen gerefereerd aan de File API. Hier mag je dus ook Bestandsuitwisseling voor lezen. Gebruik je straks zowel Bestandsuitwisseling (interactief) als File API (automatische koppeling) voor dezelfde Youforce module dan hoef je de stappen voor die module slechts 1x uit te voeren.   Voor de volgende Youforce-modules zijn aanpassingen nodig:     Payroll Gemal Direct Payroll Gemal - Ontvang Bestandsuitwisseling biedt de mogelijkheid om de bestanden die in een Payroll Gemal-productie zijn afgeroepen, te downloaden naar je lokale omgeving. Het gaat om het ophalen van data bestanden zoals bijv. de journaalposten, flexbestanden, loonstaten in csv; zoals deze in bestandsvorm bij Zenden en Ontvangen gedownload kunnen worden.   Onderstaande werkgevercode is voor alle klanten die met losse Gemal output (zie bestandsnamen verderop) werken in Zenden en Ontvangen en zij kunnen dit onderdeel via Bestandsuitwisseling laten verlopen zodra deze stap is uitgevoerd.   Hoe Werkgeverscode 30050 is vanaf 2022-10 beschikbaar in Gemal Direct Inrichting om de ontvangen bestanden naar beiden (IBU en File API) of alleen naar Bestandsuitwisseling (File API) te sturen. Deze werkgevercode vind je in Gemal Direct Inrichting via Selecteren werkgever-productie / werkgevergegevens / overzicht en bestanden / algemeen   Werkgeverscode 30050 File-API 0 = Bestanden via 'Zenden&Ontvangen' 1 = Bestanden via 'Zenden&Ontvangen' en via de File API  / Bestandsuitwisseling 2 = Bestanden via File API / Bestandsuitwisseling - (werkt voorlopig nog gelijk aan waarde 1, maar ben je over op Bestandsuitwisseling (File API), leg deze waarde dan vast)         Als de waarde 0 is, worden de bestanden op de oude/huidige manier verzonden. Een waarde van 1 maakt de bestanden ook beschikbaar in Bestandsuitwisseling. Waarde 2 heeft nu nog hetzelfde effect als 1, maar door dit vast te leggen als je over bent, krijgen we inzicht in de mate waarin klanten deze stap hebben gezet. Op termijn zal waarde 2 conform de beschrijving alleen via Bestandsuitwisseling worden verwerkt. Gewijzigde bestandsnamen LET OP! Daarnaast zijn de bestandsnamen als deze via Bestandsuitwisseling worden aangeboden, aangepast. Hierdoor wordt het meer helder welk bestand je daar ziet staan. In 'Zenden en Ontvangen' blijven de huidige benamingen van toepassing. Zie onderstaande figuur voor een weergave van de nieuwe namen.   Werkgeverscode 30050 hoeft alleen geregistreerd te worden bij instelling nummer 1.   Tenslotte: De Salaristabellen zijn voor HR Core On Premise klanten beschikbaar via  Bestandsuitwisseling. Na elke nieuwe publicatie van de Salaristabellen worden de Salaristabellen die je gebruikt automatisch beschikbaar gesteld in Bestandsuitwisseling. Voor HR Core Online klanten worden nieuwe versies van de Salaristabellen automatisch geplaatst op de J-Drive in de nieuwe Payroll-Tables directory. HR Core online HR Core Online Hosted - Ontvang   De bestanden moeten worden geplaatst in de nieuwe map 'Hosted-Klant-Files'. Vanuit deze map worden de bestanden gekoppeld aan Bestandsuitwisseling.  HR Core Online Hosted - Zend De ingestuurde bestanden worden op de J-schijf geplaatst in de map J:\Raet\Klant-Hosted net zoals je gewend was met IBU Zenden. Betaalmanager  Betaalmanager Gemal Downloads Betaalmanager Gemal Opdrachten Betaalmanager VIPS Disbursements Downloads Betaalmanager VIPS Disbursements Opdrachten   Betaalmanager biedt de mogelijkheid automatisch betaal- en downloadbestanden te ontvangen in de klantomgeving met behulp van Bestandsuitwisseling.  Op het scherm Beheer > Instellingen is het veld Zenden naar gesplitst in drie velden SEPA-betalingen zenden naar, Downloads zenden naar en non-SEPA zenden naar. Om instellingen aan te passen is rechts een knop Aanpassen toegevoegd:   Indien je op de knop Aanpassen klikt, dan wordt een apart scherm Instellingen rekening aanpassen getoond waarin je eventuele rekeninginstellingen kunt wijzigen:   Als je een nieuw IBAN van afschrijving gaat gebruiken, dan blijft de initiële inrichting: SEPA betalingen zenden naar EQUENS-CPS, Download zenden naar Zenden Ontvangen en Non-SEPA betalingen zenden naar Zenden Ontvangen.  Het is niet mogelijk om achteraf nog bestanden te achterhalen. Mocht je gebruik willen maken van de Bestandsuitwisseling/File Api, adviseren wij om de Online Help van de Betaalmanager door te lezen, waarin onder andere het volgende is opgenomen:   Als bij Beheer > Instellingen >  Aanpassen > SEPA betalingen zenden naar gekozen is voor verzenden naar File Api dan maakt de Betaal Manager het SEPA-betaalbestand aan en biedt dit aan aan de File Api. De betaalbestanden worden dan beschikbaar gesteld in Bestandsuitwisseling. De status van een verzonden betaalopdracht ziet u bij de details van de betaalopdracht bij Betaalopdrachten bekijken.  
Volledig artikel weergeven
13-11-2023 16:09 (Bijgewerkt op 06-12-2023)
  • 29 Antwoorden
  • 2 kudos
  • 3776 Weergaven
  Getting started Choose an API product Go to the API Library page and select an API. The status of an API is displayed using the following labels: General: the API is available in production. Controlled: the API is available for a limited amount of users. Deprecated: the API is being phased out. We do not accept any new connections. Concept: the API is currently under development, but you are welcome to take a look. If you plan to use an API in production, view the API requirements for that API, and ensure that you comply. If you would like to know more about the different statuses of an API please go here . Create an account To use an Youforce API product, you must register and create an account. An account is quick to set up and is free of charge. You only need your phone and company address to register. To register and create an account: 1. Click Create an account. 2. Enter your details. (Please register with your company email). 3. You will receive an SMS on your mobile to confirm. Getting an application After login, you can go to Your Apps and see all applications you have access to. Creating applications on the developer portal is done at this moment with a ticket through support. Please go to the support section for details. As soon as the request is processed the application will show up in the developer portal. Authentication The received token can be different based on the identity provider used   We follow current industry standards and best practices. Authentication/authorization is no exception. As part of the Identity and Access Management Strategy for system-to-system integrations, our APIs are based OAuth 2.0 and the authorization grant Client Credentials. Every API consumer system will be provisioned in our API Gateway as a Client Application (App). Client ID and Client Secret will be provided to be used by Apps as credentials. Thus, Apps will be able then to authenticate and get an access token (JWT) within the response payload. Subsequent requests authorization will be based on that access token previously retrieved.   Get the access token In order to grant access to a target API, Apps must first authenticate against our Authorization Server. The request payload must include the content type header and the HTTP body must include the required Client Credentials. curl -X POST https://api.youforce.com/authentication/token -H 'Cache-Control: no-cache' -H 'Content-Type: application/x-www-form-urlencoded' -d 'client_secret= iPWF123nlk2XYgUHV&client_id=qX0X S456YY4kJtDY5drCeZ0XT7nS5GxA&grant_type=client_credentials' Below, a response payload example containing the access token and the expiration time which is 15 min. After that time Apps need to re-authenticate to get a new access token. { 'access_token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJUaWNrZXRJZCI6IitMZWhGdVh3T0V2RTdtYk c4U3IyIiwiVXNlcklkIjoiSUMxMTI2NjYiLCJNZXN zYWdlSWQiOjAsIkNvbXBhbnlJZCI6NDAyODA 5MCwiRXhwaXJhdGlvbiI6NzIwMCwibmJmIjoiMTUyMjE zMzU5MTYwOSIsImV4cCI6IjE1MjIxMz M4OTE2MDkifQ. wSZGjncy4_CH98RIBdhTr9FsMtIIkVtV 3tkRoWvlrQQ', 'token_type': 'BearerToken', 'expires_in': '899', } An authorized API request After the Apps has received a valid token, they are ready to perform requests to any of our Youforce APIs. Apps must use the Authorization header containing the access token. In addition, will need to mark every request with the Client ID, using a custom header for that purpose. Below, a fetching data request example: curl -X GET 'https://api.youforce.com/requests/v1.0/expensesRequests/' -H 'Cache-Control: no-cache' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJUaWNrZXRJZCI6IitMZWhGdVh3T0V2 RTdtYkc4U3IyIiwiVXNlcklkIjoiSUMxMTI2NjYiLCJNZXN zYWdlSWQiOjAsIkNvbXBhbnlJZCI6NDA yODA5MCwiRXhwaXJhdGlvbiI6NzIwMCwibmJmIjoiMTUyMjE zMzU5MTYwOSIsImV4cCI6IjE1MjIxMzM4OTE2MDkifQ. wSZGjncy4_CH98RIBdhTr9FsMtIIkVtV3tkRoWvlrQQ' -H 'X-Client-Id: qX0XS456YY4kJtD Y5drCeZ0XT7nS5GxA' Authentication Error Response The error payload shown below, describes the 401 error response Apps will receive in case of any authentication error. { 'message': 'Authentication Error', 'correlationId': 'rrt-0d027480041e2a148-a-de-7885-572449-1', 'issuedAt': '2018-03-27T07:44:25.554Z', 'errorCode': 'unauthorized', 'statusCode': 401 } Miss use reasons for having authentication errors are: Wrong credentials Expired credentials Unauthorized access tokens Invalid Expired HTTPs support Our API's domain is secured by using digicert (SHA2) certificates, a world wide industry-recognized provider. Protocol TLS 1.2 (only) Key exchange ECDHE RSA with X25519 Cipher AES_256_GCM All HTTP Requests will be refused with a Not Found 404 error response.   Request header & responses Request headers Our APIs have headers in common Header Name Description Cache-Control The Cache-Control general-header field is used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain. In our authentication request the header is mandatory with the value Cach-Control: no-cache Content-Type The content type of the resource in case the request content in the body. Example: Content-Type: application/x-www-form-urlencoded Authorization The information required for request authentication Accept The Accept request-header field can be used to specify certain media types which are acceptable for the response. Example: Accept: text/plain X-raet-tenant-id This header is used to specify for which tenant the data is requested. For tokens with single tenant access this header is not mandatory x-raet-tenant-id: 1234567 Response codes Our APIs have response codes in common. Type Responses Situation Succes Codes 200 OK Synchronous read, update, and delete operations 201 Created Synchronous create requests   202 Accepted A-synchronous operations   204 No Content Referring to non-existing entity (e.g. after delete)   Redirection Codes 304 Not Modified Resource has not been modified. 308 Permanent redirect Resource has permanently moved.   Invalid Request Errors 400 Bad request Bad Request (e.g. validation errors) 401 Unauthorized Not Authorized: Missing or invalid access token   403 Forbidden Not Authorized: Authenticated, but user has no access to the API   404 Not Found Invalid  URL: Item does not exist (anymore). The canonical identifier (collection/{canonical id}) cannot be found. Not Authorized:  Authenticated, access to api, but user has no access to to the resource (data authorization).  From a security standpoint we don't expose the reason why the object could not be found because an  attacker can use this to figure out the internals of our system.   409 Conflict Concurrency problem: Record changed by another user   Server Errors 500 Internal server error Server Error (e.g. database failure, event could not be send) 503 Service unavailable Server Error (resource temporary not available)    
Volledig artikel weergeven
17-12-2021 08:53 (Bijgewerkt op 27-01-2022)
  • 0 Antwoorden
  • 0 kudos
  • 2287 Weergaven
User endpoint   The user endpoint supports the retrieval of users and to set an identity for a user, the following methods are supported as part of the users endpoint. https://api.youforce.com/iam/v1.0/users GET Allows retrieving a single employee based on employeeId for the tenant specified in the request header. https://api.youforce.com/iam/v1.0/users(employeeId=12345) Supports the following parameter as part of the resource path: employeeId - The unique id assigned to an employee Returns a 200 OKwhen successful PATCH Allows to update or set an identity for a specific user based on employeeId for the tenant specified in the request header. https://api.youforce.com/iam/v1.0/users(employeeId=12345)/identity Supports the following parameters as part of its request body: id- Ping Id of the employee which is to be used for SSO { "id": "user@customer.com" } Returns a 204 No content when successful Returns a 404 when the user account doesn't exists Visibility of the change in Youforce portal Please note that updating the identity through this endpoint will update the identity in the Youforce authentication system will NOT show the values in Youforce portal Our authentication system is not running on the same service as the portal UI. The synchronization is just one way: Changes done in the authentication system direct will not reflect in the Youforce portal UI Changes done in this UI will reflect in the authentication system This will be addressed in future, when we merge the two services. Datamapping Parameters Description Example Data type employeeId The unique id assigned to the employee by the HR Core 12345 string id User id of the employee used in the Youforce authentication system c7e230db-2a7f-4ef0-ad1d-9d30e7d94a2f string sourceId Username of the user in the Youforce portal XX123456 string identityId UPN/Identity in the customer authentication system that takes care of authentication Note: Only email format is supported user@customer.com string
Volledig artikel weergeven
30-12-2021 15:26 (Bijgewerkt op 24-08-2023)
  • 1 Antwoorden
  • 0 kudos
  • 1811 Weergaven
Swagger documentation The following swagger pages gives an overview of the endpoint: IAM endpoints    Filters Person endpoint The person endpoint supports the following query string parameters Parameter Description from and to  Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) person records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/persons? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z     Employee endpoint   THIS ENDPOINT HAS BEEN DEPRECATED Use the endpoints Person and Employment.   The employee endpoint supports the following query string parameters Parameter Description personCode    Returns a list of employee records filtered by personId https://api.youforce.com/iam/v1.0/employees?personCode=191166 personId Returns a list of employee records filtered by personId https://api.youforce.com/iam/v1.0/employees?personId=191166   organizationUnit Returns a list of all employee records filtered by organizationUnit id https://api.youforce.com/iam/v1.0/employees? organizationUnit=13612345 from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) employee records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/employees? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z   Employment endpoint The employee endpoint supports the following query string parameters Parameter Description personCode   Returns a list of employment records filtered by personId https://api.youforce.com/iam/v1.0/employments?personCode=191166 personId Returns a list of employment records filtered by personId https://api.youforce.com/iam/v1.0/employments?personId=191166 organizationUnit Returns a list of all employment records filtered by organizationUnit id https://api.youforce.com/iam/v1.0/employments? organizationUnit=13612345   from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) employment records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/employments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z   Assignment endpoint The assignments endpoint supports the following query string parameters   Parameter Description personId Returns a list of assignment records filtered by personId https://api.youforce.com/iam/v1.0/assignments?personId=191166 from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) assignment records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/assignments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z   Cost allocation endpoint The cost allocation endpoint supports the following query string parameters   Parameter Description   Id Returns the cost allocation by id https://api.youforce.com/iam/v1.0/costAllocations/100028%201%200   Person code Returns a list of cost allocations for a specific person. The list could contain records for different employments of the employee https://api.youforce.com/iam/v1.0/costAllocations?personCode=100028     Organization unit endpoint The organizationUnits endpoint supports the following query string parameters Parameter Description shortName Returns a list of all organizationUnit records filtered by shortName https://api.youforce.com/iam/v1.0/organizationUnits?company=1010A from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) organization unit records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/organizationUnits? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z   Role assignment endpoint The roleAssignments endpoint supports the following query string parameters     Parameter Description personId Returns a list of all role assignment records filtered by personId https://api.youforce.com/iam/v1.0/roleAssignments?personId=1010A shortName Returns a list of all role assignment records filtered by shortName https://api.youforce.com/iam/v1.0/roleAssignments?shortName=MGR from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) employee records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/roleAssignments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z   Job profile endpoint The jobProfiles endpoint supports the following query string parameters Parameter Description shortName Returns a list of all jobProfile records filtered by shortName https://api.youforce.com/iam/v1.0/jobProfiles?shortName=1010A from and to Date Time stamp filter: Date Time should be in UTC Format: YYYY-MM-DDTHH:MM:SS.sssZ Returns (active) jobProfile records that have changed within the provided date-time range. https://api.youforce.com/iam/v1.0/jobProfiles? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z  
Volledig artikel weergeven
20-12-2021 15:27 (Bijgewerkt op 06-11-2023)
  • 0 Antwoorden
  • 0 kudos
  • 1717 Weergaven
  Account aanmaken op Visma Developer Portal De Visma Developer portal is te bereiken via  https://oauth.developers.visma.com/service-registry/home   en maak via Create account een account aan             De portal zal via do.not.reply@mail.connect.visma.com  je een e-mail sturen met een Activatie account link.   Gebruik bij het registreren het Kvk-nummer als Organization number       Startscherm na inloggen       Desgewenst kun je een collega toevoegen via My team en New member. Jullie hebben dan beiden inzicht in de gegevens van de applicatie.       De volgende stap is het aanmaken van een applicatie. Een applicatie aanmaken   Door een applicatie aan te maken ontstaat er een API Key en een Secret Key die je gebruikt om de authenticatietoken op te halen.   Kies via het tabblad My Applications voor Add Application     Als application type selecteer Service, dit is het enige type wat door Visma|Raet wordt ondersteund.       Het aanmaken van de applicatie gaat via vier tabbladen, vul de gegevens in op het eerste tabblad Details. Weet dat de opgegeven Client Id wordt gebruikt als API key bij de API-aanroepen.   Je moet zelf de Client Id opgeven.    Testomgeving - Het is tevens mogelijk om gebruik te maken van onze sandbox. Met deze sandbox kun je testen. De applicatie voor de productieomgeving kan ook gekoppeld worden aan de sandbox. Maak hiervoor een 2e Invitation code  aan (deze stap wordt later toegelicht).    Via deze applicatie met bijbehorende Client Id en Secret krijg je toegang de data en of bestanden uit de Youforce/HRCoreOnline-omgeving(en). Eén API key-set kan toegang geven tot meerdere klantomgevingen. Via de Tenant Id die je als Header meestuurt bij het aanvragen van een authenticatie token bepaal je de benodigde klantomgeving.   Access Token Lifetime mag op de default waarde blijven staan. Een aanpassing van deze waarde heeft geen effect op werking van de API, alsmede de opties Include JSON Web Token ID en TestApplication.   Gebruik eerst Save as a draft om vervolgens de applicatie aan te maken via Create, via Next ga je naar het volgende tabblad.       Het tabblad Credentials stelt je in staat om de API Secret aan te maken. Let op, de Secret waarde wordt alleen getoond via de pop up bij het aanmaken, dus neem dit direct over. De pop up toont ook je eerder gekozen ID (API key).   Let op: Wordt de bestaande secret vergeten dan dien je een nieuwe aan te maken, deze wordt dan toegevoegd.       Via het tabblad Integrations selecteer de gewenste Youforce API, oftewel je ‘basis’ API, je gebruikt hiervoor New integration.         Visma Raet zal de opgegeven API’s goedkeuren. Dit gaat via een workflow in de portal, je hoeft daar niks voor te doen. De goedkeuring door Visma Raet kan enkele dagen duren en zolang de goedkeuring niet is verleend kan je de stap van de Visma App Store niet uitvoeren.       Per API dien je de Scope te selecteren welke gebruikt gaat worden in de applicatie. Op deze manier kun je bepaalde functionaliteiten (endpoints) binnen de Youforce API uitsluiten van je applicatie. Je kunt vanzelfsprekend ook alle Scopes selecteren, een API kan ook bestaan uit 1 Scope.       Het tabblad Integrations kan je niet direct bevestigen via Save, dat kan pas op het moment dat Visma|Raet de gekozen API’s bij de applicatie heeft goedgekeurd, dit gaat via een flow je hoeft hier niks voor te doen. De goedkeuring door Visma Raet kan enkele dagen duren en zolang de goedkeuring niet is verleend kan je de stap van de Visma App Store niet uitvoeren.   Je kan door te klikken op stap ‘Visma App store’ naar de laatste stap (mits Visma Raet de API('s) heeft goedgekeurd).             Tabblad Visma App Store, op dit moment stellen wij de Visma App Store niet ter beschikking aan onze klanten.    Voor toegang tot de klantdata genereer je een Invitation Code. Hoe je dit doet staat hieronder verder uitgelegd. Visma Raet zal de toegang tot de klant-data goedkeuren en dan direct de koppeling van klantdata aan je applicatie gereedmaken.       Na Start setup for Visma App Store ziet u onderstaand scherm en dan kies je bij Access level - Audience voor Invite only   Vul ook de url in waar uw product is uitgelegd.       Je bent nu klaar met het aanmaken van de applicatie, de optie Save wordt zichtbaar op het moment dat Visma Raet de applicatie heeft goedgekeurd, je kunt het aanmaken sluiten door bijvoorbeeld op Back to my Applications te klikken.    Wanneer Visma Raet de goedkeuring heeft verleend, ontvang je hier een e-mail van en kun je de volgende stap uitvoeren door de applicatie te koppelen aan klant-data. Dit staat uitgelegd in het volgende hoofdstuk ‘Invitatiecode aanmaken’.   Invitatiecode aanmaken Met een invitatiecode maak je het mogelijk de klantgegevens op te halen via je applicatie. Ga naar de Developer Portal https://oauth.developers.visma.com/service-registry/home    Kies voor My Applications. En klik op het potloodje achter de applicatie (Edit).      Kies voor het tabblad Visma App Store. En vervolgens New Invitation Code.       Bij Invitation description vul je de naam van de betreffende klant in. En klik vervolgens op Generate.         Visma Raet zal de toegang tot de klant-data goedkeuren en dan direct de koppeling van klantdata aan je applicatie gereedmaken.   Binnen het beheer van je applicatie en het scherm Integrations is via de tabblad Tenants (default wordt het tabblad Scopes getoond) terug te zien welke klanten (tenants) gekoppeld zijn aan je applicatie. Dit scherm laat ook de bijbehorende TenantID zien. De TenantID is benodigd bij het opvragen van de authenticatie token.     Voorbeeld van een Tenant ID     Testomgeving - Het is tevens mogelijk om gebruik te maken van onze sandbox. Met deze sandbox kun je testen. De applicatie voor de productieomgeving kan ook gekoppeld worden aan de sandbox. Maak hiervoor een Invitation code  aan en deel die met Visma Raet.  
Volledig artikel weergeven
14-08-2023 14:38 (Bijgewerkt op 02-10-2023)
  • 6 Antwoorden
  • 0 kudos
  • 1577 Weergaven
Beschrijving van SIVI Verzuimberichten, de inhoud van het bestand en de filter-mogelijkheden.
Volledig artikel weergeven
02-01-2023 12:58 (Bijgewerkt op 30-10-2023)
  • 2 Antwoorden
  • 0 kudos
  • 1516 Weergaven
Domain model       The Learning model     Data mapping Employee person details attribute description HR Core Beaufort id Unique id for the Person row within the tenant P01001 - Persoonsnummer personId Unique id for the Person row within the tenant P01001 - Persoonsnummer personCode The logical person code of the employee P01001 - Persoonsnummer Initials The initials of the employee. P00303 - Voorletters firstNames The official given names of the employee as stored in the HR Core system P01002 - Voornamen KnowAs The name which is used by the employee as his first name P01003 - Roepnaam lastNameAtBirth The last name at birth of the employee. Also known as the family name P00301 - Geboortenaam lastNameAtBirthPrefix The prefix of the last name at birth P00302 - Geboortenaam-voorvoegsels lastName The last which is currently used  by the employee as his last name P01008 - Samengestelde naam lastNamePrefix The prefix of the last name as used currently P01009 - Samengestelde naam-voorvoegsels nameAssembleOrder Code of the assemble order that the core system uses for the last name.    value E: birthname B: partnername & birthname C: birthname & partnername P: partnername P00304 - Gebruik achternaam partnerName The partner last name P00390 - Partner-naam partnerNamePrefix The prefix of the partner last name P00391 - Partner-voorvoegsels titlePrefix The formal title which will be used as a prefix before the name like Doctor, Professor, et cetera P00305 - Titulatuur voor de naam titleSuffix The formal title which will be used as postfix after the name like MSc or Master of Science P03937 - Titulatuur achter de naam gender Gender of the person. Supported values are Male / Female. Note: other type of genders will be shown as Not Known P00330 - Geslacht Mapping details: M → Male V, F → Female Other values will shown as Not Known birthDate Date of birth P00321 -Geboorte datum deceased Indicated if the employee deceased  Based on the date of deceased. If the employee is deceased the boolean is set to True 0302568 - Datum overlijden UserUID Digital Identity of the user from the portal Ping ID directly from the portal emailAddresses type address List of the addresses of the employee.  The fields are: type like Business, Private, et cetera address   Business: P01035 - E-mail adres werk Prive: P01034 - E-mail adres prive Addresses type street houseNumber houseNumberAdditional locationDesignation postalCode city region country effectiveDate List of the addresses of the employee.  The fields are: type like Home, Post, et cetera street name house number house number additional Location designation Postal code City Region Country code   Home: P01014 straatnaam P01016 Huisnummer P01018 Huisnummer toev P01020 Postcode P01022 Plaatsnaam P01024 Land P01012 adres m.i.v. Postal: P00365 straatnaam P00367 huisnummer P00368 huisnummer toev P00313 postcode P00308 plaatsnaam P00847 land P01011 Adres m.i.v. phoneNumbers type number list of phone numbers of the employee type like Business, Home, Mobile, et cetera number   Home: P01027 - telefoonnr woonadres Mobile : P01036 - Telefoonnr mobiel Business :P01037 - Telefoonnr werk     Employee employment details     HR Core Beaufort hireDate The hire date of the employment P00322 - Datum in dienst dischargeDate The end date or discharge date of the employment. P00830 - Datum uit dienst originalHireDate The first hire date or original hire date of an employee within the organization. P00834 -Datum in dienst CAO employmentType Type of employment with a short name for type like Internal employee, contractor, "Wachtgelder" P01102 - Soort arbeidsrelatie jobProfile job profile code of the employment The job profile is a code that refers to the entity job profile P01107 - Primaire functie organizationUnit organization unit of employment. The organization unit is a code that refers to the entity organization units P01106 - Hierarchische org. eenheid workingAmount amountOfWork unitOfWork periodOfWork Work amount of employment.  The amount of work Unit of work that specifies the amount of work like "hours", "days", et cetera Period of work like "week" or "month" amount of work = P01109 - Uren per week* *Beaufort supports only the amount of work in "hours" a "week" contractType Contract type of the employee. It is the code that refers to the entity contract type. P08259 - Code contract (on)bepaalde tijd classification Classification of the employee. It is the code that refers to the entity Classification. P01110 - Code doelgroep Payroll Client Code   P01103 - CEA-nummer Payroll Institution Code    P01104 - Instelling nummer Company PayrollClientCode and PayrollInsituationCode combined   bigNumber   P09165 - Big nummer   Cost allocations       Id Unique id of the cost allocation. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user. Unique id of the cost allocation row PersonCode The unique id assigned to the employee Persoonsnummer employmentCode The code of the employment of the person Dienstverband volgnummer sequenceNumber Unique sequence number or row number of the cost allocation within the employee P01131 -regelnummer loonverdeling costTypeCode code of the cost type  P01133 - Kostensoort loonverdeling CostTypeName full name of the cost type Omschrijving kostensoort (referentie tabel) costCenterCode code of the cost center P01134 -Kostenplaats loonverdeling costCenterName full name of the cost center Omschrijving kostenplaats (referentie tabel) costUnitCode code of the cost unit P01135 - Kostendrager loonverdeling costUnitName full name of the cost unit Omschrijving kostendrager (referentie tabel) percentage percentage of the cost allocation P01132 - loonverdeling loonverdeling   Organisation units Attribute Description HR Core Beaufort id Technical ID of the organisation unit   P01061 shortName Code or short name of the Organization Unit P01061 fullName Name or full title of the Organization Unit FullName parentOrgUnit Code of the parent organization unit Organisatie eenheid > Onderdeel van organizationUnitType type or organisation unit code orgUnit Type isBlocked True of false   Address     PhoneNumber     CostCenterCode     Role assignment Attribute description HR Core Beaufort id Unique id of the role assignment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user. Id van het record OrganizationUnitCode Code van organisatorische eenheid P01061 - Operationele org.eenheid shortName The code of the role P01062 - Rol roleName Description of the role P01062 - Rol personCode reference to the person Reference to Person code personID reference to the person Reference to Person ID startDate  start date of the role assignment startDate endDate   endDate    Job Profile Attribute Description HR Core Beaufort shortName Job profile code or short name functie code fullName Job profile name functie naam JobFamily Job family code functiegroep code    
Volledig artikel weergeven
21-12-2021 14:09 (Bijgewerkt op 23-08-2023)
  • 0 Antwoorden
  • 0 kudos
  • 1584 Weergaven
Eigen rubrieken toevoegen aan de API, wat is er mogelijk, wat moet je vooraf afstemmen en hoe vraag je het aan.
Volledig artikel weergeven
03-11-2022 08:58 (Bijgewerkt op 30-05-2023)
  • 0 Antwoorden
  • 4 kudos
  • 1415 Weergaven
A step-by-step guide that helps you to select and test an API and after that how to get support and access to data of a Youforce customer.
Volledig artikel weergeven
15-02-2022 09:55 (Bijgewerkt op 15-02-2022)
  • 0 Antwoorden
  • 1 kudos
  • 1325 Weergaven
De IAM API beschikt over een autorisatie mechanisme waarmee bepaald kan worden tot welke medewerkers en datasets een Identity & Access Management toegang heeft.  Het autorisatie mechanisme bestaat uit de volgende onderdelen:   Autorisatie op basis van API scopes Door het activeren van scopes kunnen externe systemen toegang krijgen tot één of meerdere endpoint en dataset. De scopes zijn vooraf door Visma Raet bepaald en omvatten één of meerdere endpoints, dataset en/of acties. Autorisatie op medewerkers  Met behulp van autorisaties filters kan worden bepaald welke medewerkers in de API beschikbaar komen.  Met dit document willen wij u informeren over de mogelijkheden van deze autorisatievormen in de API. Beide autorisatie mechanismes moeten door een consultant ingericht worden.     Autorisatie op basis van API scopes In de Visma developer portal zijn per API één of meerdere scopes gedefinieerd.  Door het activeren van deze scope krijgt een extern systeem toegang tot één of meerdere endpoint en/of data set. Binnen de API worden de volgende scopes onderscheiden.   Scope Omschrijving Endpoints Invitation_only Scope noodzakelijk om de API te kunnen activeren. Tijdens het activering proces wordt de contractafspraken gecontroleerd en vastgelegd.    Get_Basic Deze scope geeft nog geen toegang tot enige vorm van data maar is noodzakelijk voor de onboarding van klanten op de API of applicatie. Get basic data zoals medewerker- & organisatiedata GET Users GET persons GET employments GET employees GET assignments GET costAllocations GET organizationUnits GET roleAssignments GET jobProfiles Update_Identity Update van het veld Identity in de Youforce portal bij de medewerker. PATCH users GetPrivateContactDetails Voegt de privé contactgegevens aan de endpoint Person & Employee, zoals post- en woonadres, telefoonnummer vast & mobiel en het email adres. GET Employees   Dit betreft de volgende gegevens: ADRESGEVENS Home: P01014 straatnaam P01016 Huisnummer P01018 Huisnummer toev P01020 Postcode P01022 Plaatsnaam P01024 Land Postal: P00365 straatnaam P00367 huisnummer P00368 huisnummer toev P00313 postcode P00308 plaatsnaam P00847 land TELEFOONNUMMERS Home: P01027 - telefoonnr woonadres Mobile : P01036 - Telefoonnr mobiel EMAILADRES Prive: P01034 - E-mail adres prive Write_Basic Update de HRCoreOnline-velden Email adres werk en of telefoonnummer werk. P01035 - E-mail adres werk P01037  - Telefoonnummer werk   Uw consultant kan u helpen bij het activeren / deactiveren van deze scopes binnen de API.     Autorisatie op basis van autorisatie filters De autorisatie filters hebben betrekking op welke medewerkers zichtbaar zijn in de API. Standaard worden altijd alle medewerkers getoond in de API. Bij het activeren van de API kan een consultant filters inrichten zodat maar een beperkte groep medewerkers via de API beschikbaar komen.   Filteren in de API is mogelijk op de volgende Beaufort velden: P01102- Soort Arbeidsrelatie  P01103- Opdrachtgever  P01104- Instelling  P01110 - Code doelgroep  P05040 - Selectie rubriek Domain API - IAM  Een veel voorkomen filter is bijvoorbeeld op Soort Arbeidsrelatie waarbij alleen eigen medewerkers in het extern systeem opgenomen worden.  Maar ook een filter op de combinatie Opdrachtgever / Instelling geeft u de mogelijkheid om de medewerkers van één of meerdere specifieke instellingen in de API op te nemen.   Uw consultant kan u helpen bij het inrichten of wijzigen van de autorisatie filters.
Volledig artikel weergeven
06-02-2023 15:30 (Bijgewerkt op 16-01-2024)
  • 0 Antwoorden
  • 1 kudos
  • 1296 Weergaven
Dit document beschrijft de 'HelloID - Visma Raet IAM API’-connector. Een koppeling gebaseerd op de Visma Raet IAM API.
Volledig artikel weergeven
23-12-2021 15:49 (Bijgewerkt op 15-03-2022)
  • 0 Antwoorden
  • 1 kudos
  • 1179 Weergaven
Visma|Raet maakt nu gebruik van de Developer portal van Visma, een portal waar u API-applicaties kunt aanmaken en beheren. Met deze portal heeft u niet alleen toegang maar hebben uw collega's ook toegang tot de aangemaakte applicaties.   Wat moet u doen om gebruik te maken van de nieuwe portal?
Volledig artikel weergeven
25-01-2023 11:31 (Bijgewerkt op 24-05-2023)
  • 0 Antwoorden
  • 0 kudos
  • 1123 Weergaven
Artikel inhoud     Domein model  Het model   Entiteiten en velden Person (Persoon) Id / personId Technical and unique id. the Id is unique within the entity and tenant. The id is owned by the core system and can not changed by a user P01001 - Persoonsnummer PersonCode The logical code or number of the employee. P01001 - Persoonsnummer Initials The initials of the employee. Format depends P00303 - Voorletters firstNames The official given names of the employee as stored in the HR Core system P01002 - Voornamen KnownAs The name which is used by the employee as his first name P01003 - Roepnaam lastNameAtBirth The last name at birth of the employee. Also known as the family name P00301 - Geboortenaam lastNameAtBirthPrefix The prefix of the last name at birth P00302 - Geboortenaam-voorvoegsels lastName The last which is currently used by the employee as his last name P01008 - Samengestelde naam lastNamePrefix The prefix of the last name as used currently P01009 - Samengestelde naam-voorvoegsels nameAssembleOrder Code of the assemble order that the core system uses for the last Name. The assemble order is depending on the core system and the logic behind it. P00304 - Gebruik achternaam partnerName The partner last name P00390 - Partner-naam partnerNamePrefix The prefix of the partner last name P00391 - Partner-voorvoegsels titlePrefix The formal title which will be used as a prefix before the name like Doctor, Professor, et cetera P00305 - Titulatuur voor de naam titleSuffix The formal title which will be used as postfix after the name like MSc or Master of Science P03937 - Titulatuur achter de naam gender Gender of the person conform the ISO/IEC 5128 standard (0) Not known (1) Male (2) Female (9) Not applicable P00330 - Geslacht M = Man / Male V = Vrouw / Female dateOfBirth Date of Birth P00321 -Geboorte datum deceased Indicated if the employee deceased Note: most core systems have a date field. In the API this will be translated to boolean P01005 - Datum overlijden emailAddresses List of the email addresses of the employee. The fields are: type like Business, Private, etc. address Business: P01035 - E-mail adres werk Private: P01034 - E-mail adres prive phoneNumbers list of phone numbers of the employee type like Business, Home, Mobile, et cetera number Home: P01027 - telefoonnr woonadres Mobile : P01036 - Telefoonnr mobiel Business :P01037 - Telefoonnr werk FaxBusiness : P01039 Faxnr werk FaxHome : P01038 Faxnr prive Addresses list of addresses of the employee. The address fields are: addressType like Home, Post, etc. streetName Number streetNumberAdditional postalCode city country Home: P01014 straatnaam P01016 Huisnummer P01018 Huisnummer toev P01020 Postcode P01022 Plaatsnaam P01024 Land P01012 Adres m.i.v. Postal: P00365 straatnaam P00367 huisnummer P00368 huisnummer toev P00313 postcode P00308 plaatsnaam P00847 land P01011 Adres m.i.v.   Employment (Dienstverband) Id / employmentId Technical and unique id. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user. Object Id = "PersonCode" + ContractCode PersonCode / PersonId Person code to which the employment is related P01001 - Persoonsnummer employmentCode / ContractCode / ContractId Code of the contract P01101 - volgnr dienstverband PayrollClientCode Logical code of the payroll client. Filter option for Row Authorisation (configuration API) P01103 Opdrachtgever PayrollInstitutionCode Logical code of the payroll Institution. Filter option for Row Authorisation (configuration API) P01104 Instelling hireDate The hire date of the employment P00322 - Datum in dienst dischargeDate The end date or discharge date of the employment. This is always an "up to and including" date. In unknown the field will not be visible in the API P00830 - Datum uit dienst originalHireDate The first hire date of original hire date of an employee within the organization. This date is important for the tenure or working anniversary of an employee P00834 -Datum in dienst CAO employmentType Type of employment like Internal employee, contractor, "Wachtgelder" Filter option for Row Authorisation (configuration API) P01102 - Soort arbeidsrelatie contractType Type of the contact like indefinite period ('Onbepaalde tijd') or given time ('bepaalde tijd') P08259 - Code contract (on)bepaalde tijd jobProfile Official job title or job profile of the employment. The Job profile contains the following details: shortName: Code or short name of the job profile P01107 - Primaire functie classification group or classification of the employment. Generic field Filter option for Row Authorisation (configuration API) P01110 - Code doelgroep organizationUnit organization unit Id of employment. The Id is a reference to the entity org units P01106 - Hierarchische org. eenheid workingAmount Work amount of employment. amountOfWork: the amount of work unitOfWork: Unit of work that specifies the amount of work like "hours", "days", et cetera periodOfWork: Period of work like "week" or "month" parttimePercentage P01109 - Uren per week P00404 percentage deelbetrekking   SalaryDetails (Dienstverband) Id Technical and unique id. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.   PersonCode Person code to which the employment is related P01001 - Persoonsnummer employmentCode Code of the employment P01101 - volgnr dienstverband GENERAL     typePaidWorkerCode type of paid or unpaid worker P00332 Code soort loner SALARY DETAILS     payrollSchemeCode payroll scheme related to the collective agreement P00314 Code salarisregeling payrollScale Salary scale P01151 Salaris payrollSeniority Salary step or seniority within the salary scale P00326 Ancienniteit salaris payrollAmountNo salary amount number P01152 Inpassingsnr salaris       GARANTEED SALARY DETAILS     GuaranteedPayrollScale Garanteed salary scale. P01157 Garantieschaal nummer GuaranteedSeniority Garanteed step or seniority within the garanteed scale P01158 Ancienniteit garantieschaal GuaranteedPayrollAmountNo salary amount number P00318 garantie salaris       CALCULATED SALARY DETAILS     CalculatedSalary calculated gross salary by Beaufort P01161 Berekend bruto salaris CalculatedHourlySalary calculated gross hourly salary by Beaufort P01162 Berekend bruto uurloon CalculatedGuaranteedSalary calculated gross garanteed salary by Beaufort P01159 Berekend garantiesalaris CalculatedGuaranteedHourlySalary calculated gross garanteed hourly salary by Beaufort P01160 Berekend garantie uurloon   Assignments (Inzet) assignmentID Technical and unique id. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.   PersonCode / PersonId Person code to which the employment is related P01001 - Persoonsnummer employmentCode / ContractCode / ContractId Code of the contract P01101 - volgnr dienstverband startDate/validFrom The date when the assignments start P01125 - Ingang inzet endDate/ValidUntil The end date of the assignment. This is always an "up to and including" date. In unknown the field will not be visible in the API P01126 - Einde inzet jobProfile Job title or job profile of the assignment. The Job profile contains the following details: shortName: Code or short name of the job profile P01122 - Operationele functie organizationUnit Organization unit id of the assignment. The Organization Unit Id is a reference tot the organization unit entity P01121 - Operationele org. eenheid workingAmount work amount of the assignment. amountOfWork: the amount of work unitOfWork : Unit of work that specifies the amount of work like "hours", "days", et cetera periodOfWork: Period of work like "week" or "month" P01124 - Uren inzet per week costCenter the cost center of the Assignment P01128 - Kostenplaats Inzet costUnit the cost unit of the Assignment P01129 - Kostendrager Inzet costType the cost type of the Assignment P01127 - Kostensoort Inzet type Type of assignment P01123 - Soort Inzet   Cost allocation (Loonverdeling) API Field Description (English) Beaufort field Example id Technical and unique id. the Id is unique within the entity and tenant.   1000 1 0 PersonCode Person code to which the employment is related P01001 - Persoonsnummer 1000 employmentCode Code of the contract P01101 - volgnr dienstverband 1 sequenceNumber Row number or sequence number or the cost allocation within the employee P01131 - regelnr loonverdeling 0 costCenter the cost center of the cost allocation row P01134 - Kostenplaats loonverdeling 10000 - administratie costUnit the cost unit of the cost allocation row P01135 - Kostendrager loonverdeling 10000 - Aministratie costType the cost type of the cost allocation row P01133 - Kostensoort loonverdeling 41300 - Afdelingshoofd percentage Percentage of the cost allocation row P01132 - Percentage loonverdeling 100 Leave Entitlements (Verlofrechten) id Technical and unique id. the Id is unique within the entity and tenant. object id PersonCode Person code to which the employment is related Persoonsnummer employmentCode Code of the contract volgnr dienstverband leaveType leave type code, like WET for legal P01430 code verlofsoort werknemer leaveEntitlementYear Year of the Leave entitlement P01440 verlofjaar verlofrechten leaveEntitlementLastYear leave entitlement last year P01442 verlofrecht vorig jaar in uren leaveEntitlementThisYear leave entitlement this year P01443 verlofrecht huidig jaar in uren   leave hours (Opgenomen verlof in uren) id Technical and unique id. the Id is unique within the entity and tenant.   PersonCode Person code to which the employment is related Persoonsnummer employmentCode Code of the contract volgnr dienstverband leaveEntitlementYear Year of the Leave entitlement P01466 - verlofjaar verlofrecht leaveType leave type code, like WET for legal P01465 - code verlofsoort leaveSequence leave request Id P01460 - Volgnummer verloftijdvak leaveDate leave date P01470 - Datum verlof leaveHours hours leave on specific leave P01471 - uren verlof   Sickleave (Ziekte algemeen, uitgezonderd zwangerschapsverlof) id Technical and unique id of the sickness case. The Id is unique within the entity and tenant.   PersonCode Person code to which the employment is related Persoonsnummer employmentCode Code of the contract volgnr dienstverband startDate first day of the sickness of the employee P01600 Datum eerste ao-dag recoveryDate recovery date or first working day of the employee P01606 Datum herstel expectedRecoveryDate Expected recovery date P01605 Datum verwacht herstel toevoegen Partial recovery     periodId technical id of the partial recovery period   periodStartDate The start date from which the new Illness percentages is valid P01640 - Ziektetijdvak vanaf percentage The percentages the employee is still sick. the percentage is always related to the total amount of working hours of the employee itself P01642 - Percentage ziek     Maternity leave (ziekte zwangerschapsverlof) id Technical and unique id of the Maternity leave. The Id is unique within the entity and tenant.   PersonCode Person code to which the employment is related Persoonsnummer employmentCode Code of the contract volgnr dienstverband startDate first day of the maternity leave of the employee P01600 Datum eerste ao-dag recoveryDate recovery date or first working day of the employee P01606 Datum herstel  
Volledig artikel weergeven
28-11-2022 14:35 (Bijgewerkt op 16-04-2024)
  • 0 Antwoorden
  • 0 kudos
  • 1104 Weergaven
With the documents endpoint files like certificates and other kind of documents can be uploaded for an employee to the Visma Personal File System (Personeelsdossier).  The API supports the following types of documents certificate (Certificaat) diploma (Diploma) career agreement (Loopbaan afspraak) career mail (Correspondentie loopbaan) career other (Overige loonbaan documenten) appraisal Review (Beoordelingsgesprek) performance Review (Functioneringsgesprek)  As-synchronized file upload Learning systems can upload files, like certificates, diplomas for individual employees to the Personal File System of Visma Raet. The file upload is an a-synchronized process. After the file is uploaded the consumer will receive a ticket Id, which can be used to monitor the process of the file upload.     Endpoints The API supports the following type of documents: API endpoint Personal file system endpoint Document type Description learning/v1.0/employees/ {personCode}/documents/certificate certificaat Certificaat learning/v1.1/employees/ {personCode}/documents/certificate certificaat Certificaat learning/v1.1/employees/ {personCode}/documents/diploma diploma Diploma learning/v1.1/employees/ {personCode}/documents/appraisalReview beoordelingsGesprek Beoordelingsgesprek learning/v1.1/employees/ {personCode}/documents/performanceReview functioneringsGesprek Functioneringsgesprek learning/v1.1/employees/ {personCode}/documents/careerAgreement loopbaanafspraken Loonbaan afspraken learning/v1.1/employees/ {personCode}/documents/careerMail corrLoopbaan Correnspondentie loopbaan learning/v1.1/employees/ {personCode}/documents/careerOther ovLoopbaan Overige loonbaan documenten   Note: v1.1 is using Content-Type: multipart/form-data and supports the other document types as well. v1.0 is using Content-Type: multipart/related and supports only certificates. We are advice you the use the latest version of an endpoint   To upload a document you need to use the POST method. For example  POST https://api.youforce.com//learning/v1.1/employees/{personCode}/documents/diploma for uploading a diploma to the Personal File System of Visma Raet. The endpoint returns a  ticketId  . The file will be stored in a standard folder for diplomas (see table for the other endpoints) The API will automatically upload the file to the Personal File System. This is an a-synchronized process with an automatic retry mechanism in case the file systems is not available. The retry mechanism will try to upload the file in a maximum of 6 hours. After this period the file will be rejected with a message. Also if the file is too big (maximum 4 Mb) or isn’t a PDF file, the upload will be rejected. GET documents/{TicketId}/status Endpoint for getting the status of the file upload. The endpoint will return the status of the file. After the file is processed successfully the status Complete is returned. Examples version 1.1 (all document types) Use POST request with multipart/form-data content type. Replace the PersonCode in the URL with the Id of the employee Use the authentication token received from the authentication endpoint Replace the tenant code with the tenant code of the client Give the document a proper description The field validFrom is optional. If it's empty the system date will be used as default The content-type for the file is  application/pdf Other type of files will be rejected by the API. The file size is also limited to a maximum of 4 Mb   Response Example of the response. HTTP/1.1 200 Content-Type: application/json { "ticketId": "7ca486f6-c730-4d50-a2ec-31a3a1373366", "description": "Example description", "size": 77491, "tenantId": "4028868", "creationDateTime": "2022-04-01T13:53:30.3985949", "status": "InProgress", "errorMessages": [] }   version 1.0 (certificates only) Use POST request with multipart/related content type with the first part having metadata in json format and the second one having a file. Replace the PersonCode in the URL with the Id of the employee Use the authentication token received from the authentication endpoint Replace the tenant code with the tenant code of the client Give the document a proper description The content-type of the metadata is application/json The content-type for the file is  application/pdf Other type of files will be rejected by the API. The file size is also limited to a maximum of 4 Mb     POST https://api.youforce.com/learning/V1.0/api/employees//documents/certificate Authorization: Bearer [YOUR_AUTH_TOKEN] Content-Type: multipart/related; boundary=boundary_not_used_within_file_content --boundary_not_used_within_file_content Content-Type: application/json; charset=UTF-8 { "Description":"YOUR_OWN_DESCRIPTION", "ValidFrom" : "2021-01-01" } --boundary_not_used_within_file_content Content-Type: application/pdf [PDF Content] --boundary_not_used_within_file_content--  Upload status After the file is posted to the API, the file upload can be followed with the status endpoint. Replace the TicketId in the URL with the  ticketId  from the previous API call. GET https://api.youforce.com/learning/v1.0/employees/documents/{{TicketId}}/status The API will return the status of the file upload. If the API could not upload the file, an error is shown as well. Response { "status": "Complete", "errorMessages": [] }
Volledig artikel weergeven
21-12-2021 16:25 (Bijgewerkt op 28-03-2023)
  • 0 Antwoorden
  • 0 kudos
  • 1037 Weergaven
Youforce Developer Portal gaat offline Onze producten en oplossingen worden beter wanneer ze verbinding maken met een ecosysteem van geweldige andere oplossingen. Mede daarom heeft Visma Raet besloten aan te sluiten bij het Visma Developer Portal.
Volledig artikel weergeven
03-03-2023 09:47 (Bijgewerkt op 02-10-2023)
  • 0 Antwoorden
  • 0 kudos
  • 1033 Weergaven
Veel arbodiensten gebruiken een eigen systeem om terugkoppelingsdocumenten op te stellen. Deze documenten zijn bedoeld voor betrokkenen binnen de klantorganisatie. Om deze terugkoppelingsdocumenten ook in Verzuim Management beschikbaar te krijgen, is het nodig om deze documenten handmatig in te voeren. Dit leidt echter tot dubbele invoer van de documenten en is bovendien foutgevoelig. Om deze dubbele invoer én eventuele fouten te voorkomen, is de SIVI documenten interface ontwikkeld. Bij gebruikmaking van SIVI documenten leveren de arbodiensten de bestanden geautomatiseerd aan Visma Raet, via een beveiligde verbinding. Deze bestanden worden gekoppeld aan in Verzuim Management bestaande acties die zijn ingericht met een verwijzing naar de Identificatie document soort van SIVI.   Het aanleveren van de bestanden aan Visma Raet gebeurt via onze File API, de werking van de File API is hier gedocumenteerd. De pagina Getting Started beschrijft hoe je een access token opvraagt en via Publishers/Multipart upload staat de API call beschreven die zorgt voor de upload.   Het bestand is het door SIVI voorgeschreven (XML)format versie 2020, de XML-bestandsnaam moet bij insturen via de File API voldoen aan het volgende formaat:   DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSSFFF.xml of DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSSFF.xml of DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSS.xml   Toelichting: Onderdeel inhoud DO- Vaste waarde XXXXXXXXX Vrij in te vullen waarde. Variabel, minimaal 1 positie, maximaal 160 posities. Toegestane waarden:  alfa numeriek: A-Z, a-z, 0-9. punten. spaties _ Vast waarde, scheidingsteken YYYY Jaar, 4 posities MM Maand, 2 posities dd Dag, 2 posities HH Uur, 2 posities MM Minuut, 2 posities SS Seconden, 2 posities FF of FFF Milliseconden 0, 2 of 3 posities .xml Vaste waarde, extensie   Voorbeelden:  DO-Tussentijdse evaluatie_20180622010203444.xml DO-Evaluatie n.a.v. gesprek 1_20180622010203444.xml   Om het bestand via een File API-call te versturen naar Visma Raet dient businessTypeID 124000 gebruikt te worden in de call. Dit businessTypeID staat in Youforce voor de SIVI Documenten en dient samen met de bestandsnaam als metadata worden toegevoegd aan de API call. Een voorbeeld van de API-call:       Je kan de upload testen door gebruik te maken van onderstaande API-credentials  API Key: VRA_fileapi_4001401_uploadsivi Secret Key: F0m9N5kbdXB4xEPQTkQRpd76H4JZw6CYoJQbskQ9zAJDdtu8WalC687ozkjoZ6tm TenantID: f556855c-a0c4-42c7-88f1-98bf5b209393   Met onderstaande variabelen in het SIVI document-XML-bestand: Hoofd tag Tag Inhoud Opmerking Voor FileAPI test <BrAlg> <IdOntvngr> “Visma Raet” Statische waarde Visma Raet <Wrkgvr> <HndlsnmOrg> [naam arbo dienst]  Door arbodienst in te vullen. Zelf in te vullen <Wrkgvr> <IdWrkgvrArbdnst> [identificatie van klant] Verschilt per klant-omgeving. test12345test <Document> <SrtDocumentCd> Identificatie document soort Statische lijst zoals in het SIVI format beschreven. 999 staat voor 'Overig' 999 <Document> <DatDocument> Creatie datum van het document   Zelf in te vullen <Document> <Bestandsnm> Bestandsnaam   Zelf in te vullen <Document> <Datastring> Document inhoud gecodeerd in Base64 formaat   Zelf in te vullen <Document>   <Wrknmr> <IdWrknmr> Personeelsnummer van werknemer   1945 <Document>   <Dnstvbnd>     <Vrzm> <DatEerstVrzmdg> Eerste verzuimdag van het verzuim waar het document aan gekoppeld wordt   2022-05-24   Wanneer de File API een 201 (Created) teruggeeft dan is de upload succesvol geweest, neem met Visma Raet contact op om samen te controleren of het document daadwerkelijk is toegevoegd aan het verzuimdossier van de betreffende medewerker (persoonsnummer 1945, verzuimdossier 24-05-2022), een specifieke bestandsnaam van het document (<Bestandsnm>) helpt bij de controle.    Voorbeeld van het Sivi document XML-bestand: <?xml version="1.0" encoding="UTF-8"?> <Documenten xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <BrAlg xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020"> <BrCd>00001</BrCd> <VnrBrCd>00004</VnrBrCd> <AandatBr>2022-03-17</AandatBr> <AantijdBr>11:22:09</AantijdBr> <IdInzndr>ArbodienstX</IdInzndr> <IdOntvngr>Visma - Raet</IdOntvngr> <Berrefnr>39989003</Berrefnr> <TestJN>J</TestJN> <OntvngstbevJN>N</OntvngstbevJN> </BrAlg> <Wrkgvr xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020"> <HndlsnmOrg>RAET SIVI TEST</HndlsnmOrg> <IdWrkgvrArbdnst>test12345test</IdWrkgvrArbdnst> <AansltnrGeguitwlngArbdnst>6431</AansltnrGeguitwlngArbdnst> <Lhnr>999999999999</Lhnr> </Wrkgvr> <Document xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020"> <IdDocument>39989003</IdDocument> <DatDocument>2022-03-17</DatDocument> <SrtDocumentCd>999</SrtDocumentCd> <SrtDocumentOms>Overig</SrtDocumentOms> <StatDocumentCd>01</StatDocumentCd> <KenmerkZendPartij>ArbodienstX</KenmerkZendPartij> <BestandTypCd>06</BestandTypCd> <Bestandsnm>Inzetbaarheidsadvies.pdf</Bestandsnm> <AdresseringCd>01</AdresseringCd> <Datastring>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Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDExIDAgUgovTmFtZSAvRjEKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9BcmlhbE1UCi9TdWJ0eXBlIC9UcnVlVHlwZQovTGFzdENoYXIgMjMzCi9XaWR0aHMgMTIgMCBSCi9UeXBlIC9Gb250Cj4+CmVuZG9iaiAKMTEgMCBvYmogCjw8Ci9Gb250TmFtZSAvQXJpYWxNVAovU3RlbVYgNDQKL0xlYWRpbmcgMzMKL0FzY2VudCA5MDUKL0ZsYWdzIDMyCi9Gb250V2VpZ2h0IDQwMAovWEhlaWdodCAyNTAKL0Rlc2NlbnQgLTIxMAovQXZnV2lkdGggNDQxCi9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAyNjY1Ci9Gb250QkJveCBbLTY2NSAtMjEwIDIwMDAgNzI4XQovVHlwZSAvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA3MjgKPj4KZW5kb2JqIAo2IDAgb2JqIAo8PAovY2EgMQovQk0gL05vcm1hbAovVHlwZSAvRXh0R1N0YXRlCj4+CmVuZG9iaiAKNSAwIG9iaiAKPDwKL0NBIDEKL0JNIC9Ob3JtYWwKL1R5cGUgL0V4dEdTdGF0ZQo+PgplbmRvYmogCjcgMCBvYmogCjw8Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovTmFtZSAvRjIKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9UaW1lc05ld1JvbWFuUFNNVAovU3VidHlwZSAvVHJ1ZVR5cGUKL0xhc3RDaGFyIDExOAovV2lkdGhzIDE0IDAgUgovVHlwZSAvRm9udAo+PgplbmRvYmogCjEzIDAgb2JqIAo8PAovRm9udE5hbWUgL1RpbWVzTmV3Um9tYW5QU01UCi9TdGVtViA0MAovTGVhZGluZyA0MgovQXNjZW50IDg5MQovRmxhZ3MgMzIKL0ZvbnRXZWlnaHQgNDAwCi9YSGVpZ2h0IDI1MAovRGVzY2VudCAtMjE2Ci9BdmdXaWR0aCA0MDEKL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDI2MTQKL0ZvbnRCQm94IFstNTY4IC0yMTYgMjA0NiA2OTNdCi9UeXBlIC9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDY5Mwo+PgplbmRvYmogCjkgMCBvYmogCjw8Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDE1IDAgUgovTmFtZSAvRjMKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9BcmlhbC1Cb2xkTVQKL1N1YnR5cGUgL1RydWVUeXBlCi9MYXN0Q2hhciAxMTgKL1dpZHRocyAxNiAwIFIKL1R5cGUgL0ZvbnQKPj4KZW5kb2JqIAoxNSAwIG9iaiAKPDwKL0ZvbnROYW1lIC9BcmlhbC1Cb2xkTVQKL1N0ZW1WIDQ3Ci9MZWFkaW5nIDMzCi9Bc2NlbnQgOTA1Ci9GbGFncyAzMgovRm9udFdlaWdodCA3MDAKL1hIZWlnaHQgMjUwCi9EZXNjZW50IC0yMTAKL0F2Z1dpZHRoIDQ3OQovSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMjYyOAovRm9udEJCb3ggWy02MjggLTIxMCAyMDAwIDcyOF0KL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgNzI4Cj4+CmVuZG9iaiAKMyAwIG9iaiAKPDwKL1BhcmVudFRyZWUgMTcgMCBSCi9Sb2xlTWFwIDE4IDAgUgovUGFyZW50VHJlZU5leHRLZXkgMQovSyBbMTkgMCBSXQovVHlwZSAvU3RydWN0VHJlZVJvb3QKPj4KZW5kb2JqIAoxOCAwIG9iaiAKPDwKL0RpYWdyYW0gL0ZpZ3VyZQovSGVhZGVyIC9TZWN0Ci9Xb3Jrc2hlZXQgL1BhcnQKL0Zvb3RlciAvU2VjdAovSW5saW5lU2hhcGUgL1NlY3QKL1NsaWRlIC9QYXJ0Ci9Gb290bm90ZSAvTm90ZQovQW5ub3RhdGlvbiAvU2VjdAovQ2hhcnQgL1NlY3QKL0RpYWxvZ3NoZWV0IC9QYXJ0Ci9FbmRub3RlIC9Ob3RlCi9BcnRpZmFjdCAvU2VjdAovQ2hhcnRzaGVldCAvUGFydAovV29ya2Jvb2sgL0RvY3VtZW50Ci9NYWNyb3NoZWV0IC9QYXJ0Ci9UZXh0Ym94IC9TZWN0Cj4+CmVuZG9iaiAKMTcgMCBvYmogCjw8Ci9OdW1zIFswIDIwIDAgUl0KPj4KZW5kb2JqIAoxOSAwIG9iaiAKPDwKL1AgMyAwIFIKL0sgWzIxIDAgUiAyMiAwIFIgMjMgMCBSIDI0IDAgUiAyNSAwIFIgMjYgMCBSIDI3IDAgUiAyOCAwIFIgMjkgMCBSIDMwIDAgUiAzMSAwIFIgMzIgMCBSIDMzIDAgUiAzNCAwIFIgMzUgMCBSIDM2IDAgUiAzNyAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QYXJ0Cj4+CmVuZG9iaiAKMjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMjAgMCBvYmogWzIxIDAgUiAyMiAwIFIgMjMgMCBSIDI0IDAgUiAyNSAwIFIgMjYgMCBSIDM4IDAgUiAzOSAwIFIgMzkgMCBSIDM5IDAgUiA0MCAwIFIgNDEgMCBSIDQxIDAgUiA0MSAwIFIgNDIgMCBSIDQzIDAgUiA0MyAwIFIgNDMgMCBSIDQ0IDAgUiA0NSAwIFIgNDYgMCBSIDQ2IDAgUiA0NiAwIFIgNDcgMCBSIDQ4IDAgUiA0OCAwIFIgNDggMCBSIDQ5IDAgUiA1MCAwIFIgNTAgMCBSIDUwIDAgUiA1MSAwIFIgNTIgMCBSIDUzIDAgUiA1MyAwIFIgNTMgMCBSIDU0IDAgUiA1NSAwIFIgNTUgMCBSIDU1IDAgUiA1NiAwIFIgNTcgMCBSIDU3IDAgUiA1NyAwIFIgNTggMCBSIDU5IDAgUiA2MCAwIFIgNjAgMCBSIDYwIDAgUiA2MSAwIFIgNjIgMCBSIDYyIDAgUiA2MiAwIFIgNjMgMCBSIDY0IDAgUiA2NCAwIFIgNjUgMCBSIDY2IDAgUiA2NyAwIFIgNjcgMCBSIDY3IDAgUiA2OCAwIFIgNjkgMCBSIDY5IDAgUiA2OSAwIFIgNzAgMCBSIDcxIDAgUiA3MSAwIFIgNzEgMCBSIDcxIDAgUiA3MSAwIFIgNzEgMCBSIDcxIDAgUiA3MiAwIFIgMjggMCBSIDI5IDAgUiAzMCAwIFIgNzMgMCBSIDc0IDAgUiA3NCAwIFIgNzQgMCBSIDc1IDAgUiA3NiAwIFIgNzYgMCBSIDc2IDAgUiA3NyAwIFIgNzggMCBSIDc4IDAgUiA3OCAwIFIgNzkgMCBSIDgwIDAgUiA4MSAwIFIgODEgMCBSIDgxIDAgUiA4MiAwIFIgODIgMCBSIDgzIDAgUiA4NCAwIFIgODQgMCBSIDg0IDAgUiA4NSAwIFIgODUgMCBSIDg2IDAgUiA4NyAwIFIgODcgMCBSIDg4IDAgUiA4OCAwIFIgODggMCBSIDg5IDAgUiA5MCAwIFIgOTEgMCBSIDkxIDAgUiA5MSAwIFIgOTIgMCBSIDkzIDAgUiA5MyAwIFIgOTMgMCBSIDk0IDAgUiA5NSAwIFIgOTUgMCBSIDk2IDAgUiA5NyAwIFIgOTggMCBSIDk4IDAgUiA5OCAwIFIgOTkgMCBSIDEwMCAwIFIgMTAwIDAgUiAxMDAgMCBSIDEwMSAwIFIgMTAyIDAgUiAxMDIgMCBSIDEwMiAwIFIgMTAzIDAgUiAzMiAwIFIgMzMgMCBSIDM0IDAgUiAzNSAwIFIgMzYgMCBSIDM3IDAgUl0KZW5kb2JqIAoyMiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyMyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbM10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNyAwIG9iaiAKPDwKL1AgMTkgMCBSCi9LIFsxMDQgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVGFibGUKPj4KZW5kb2JqIAoxMDQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAyNyAwIFIKL0sgWzEwNSAwIFIgMTA2IDAgUiAxMDcgMCBSIDEwOCAwIFIgMTA5IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RCb2R5Cj4+CmVuZG9iaiAKMTA1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA0IDAgUgovSyBbNDQgMCBSIDExMCAwIFIgMTExIDAgUiAxMTIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo0NCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNSAwIFIKL0sgMTgKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAoxMTAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDUgMCBSCi9LIFszOCAwIFIgMzkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAozOCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMCAwIFIKL0sgNgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjM5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTEwIDAgUgovSyBbNyA4IDldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTExIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA1IDAgUgovSyBbNDAgMCBSIDQxIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNDAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTEgMCBSCi9LIDEwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNDEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTEgMCBSCi9LIFsxMSAxMiAxM10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMTIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDUgMCBSCi9LIFs0MiAwIFIgNDMgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo0MiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMiAwIFIKL0sgMTQKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo0MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMiAwIFIKL0sgWzE1IDE2IDE3XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEwNiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNCAwIFIKL0sgWzUxIDAgUiAxMTMgMCBSIDExNCAwIFIgMTE1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKNTEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDYgMCBSCi9LIDMxCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTEzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA2IDAgUgovSyBbNDUgMCBSIDQ2IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNDUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTMgMCBSCi9LIDE5Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNDYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTMgMCBSCi9LIFsyMCAyMSAyMl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMTQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDYgMCBSCi9LIFs0NyAwIFIgNDggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo0NyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNCAwIFIKL0sgMjMKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo0OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNCAwIFIKL0sgWzI0IDI1IDI2XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjExNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNiAwIFIKL0sgWzQ5IDAgUiA1MCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjQ5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE1IDAgUgovSyAyNwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjUwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE1IDAgUgovSyBbMjggMjkgMzBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTA3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA0IDAgUgovSyBbNTggMCBSIDExNiAwIFIgMTE3IDAgUiAxMTggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo1OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNyAwIFIKL0sgNDQKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAoxMTYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDcgMCBSCi9LIFs1MiAwIFIgNTMgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo1MiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNiAwIFIKL0sgMzIKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo1MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNiAwIFIKL0sgWzMzIDM0IDM1XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjExNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNyAwIFIKL0sgWzU0IDAgUiA1NSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjU0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE3IDAgUgovSyAzNgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjU1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE3IDAgUgovSyBbMzcgMzggMzldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTE4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA3IDAgUgovSyBbNTYgMCBSIDU3IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNTYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTggMCBSCi9LIDQwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNTcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTggMCBSCi9LIFs0MSA0MiA0M10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMDggMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDQgMCBSCi9LIFs2NSAwIFIgMTE5IDAgUiAxMjAgMCBSIDEyMSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9UUgo+PgplbmRvYmogCjY1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA4IDAgUgovSyA1NgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjExOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwOCAwIFIKL0sgWzU5IDAgUiA2MCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjU5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE5IDAgUgovSyA0NQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjYwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE5IDAgUgovSyBbNDYgNDcgNDhdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTIwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA4IDAgUgovSyBbNjEgMCBSIDYyIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjAgMCBSCi9LIDQ5Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNjIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjAgMCBSCi9LIFs1MCA1MSA1Ml0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDggMCBSCi9LIFs2MyAwIFIgNjQgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo2MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMSAwIFIKL0sgNTMKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo2NCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMSAwIFIKL0sgWzU0IDU1XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEwOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNCAwIFIKL0sgWzcyIDAgUiAxMjIgMCBSIDEyMyAwIFIgMTI0IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKNzIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDkgMCBSCi9LIDczCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTIyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA5IDAgUgovSyBbNjYgMCBSIDY3IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNjYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjIgMCBSCi9LIDU3Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNjcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjIgMCBSCi9LIFs1OCA1OSA2MF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDkgMCBSCi9LIFs2OCAwIFIgNjkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo2OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMyAwIFIKL0sgNjEKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo2OSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMyAwIFIKL0sgWzYyIDYzIDY0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwOSAwIFIKL0sgWzcwIDAgUiA3MSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjcwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI0IDAgUgovSyA2NQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjcxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI0IDAgUgovSyBbNjYgNjcgNjggNjkgNzAgNzEgNzJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMjggMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzc0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjI5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFs3NV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozMCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNzZdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzEgMCBvYmogCjw8Ci9QIDE5IDAgUgovSyBbMTI1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RhYmxlCj4+CmVuZG9iaiAKMTI1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMzEgMCBSCi9LIFsxMjYgMCBSIDEyNyAwIFIgMTI4IDAgUiAxMjkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEJvZHkKPj4KZW5kb2JqIAoxMjYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjUgMCBSCi9LIFs3OSAwIFIgMTMwIDAgUiAxMzEgMCBSIDEzMiAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9UUgo+PgplbmRvYmogCjc5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI2IDAgUgovSyA4OQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzMCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNiAwIFIKL0sgWzczIDAgUiA3NCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjczIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMwIDAgUgovSyA3NwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjc0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMwIDAgUgovSyBbNzggNzkgODBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTMxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI2IDAgUgovSyBbNzUgMCBSIDc2IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNzUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzEgMCBSCi9LIDgxCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNzYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzEgMCBSCi9LIFs4MiA4MyA4NF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMzIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjYgMCBSCi9LIFs3NyAwIFIgNzggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo3NyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMiAwIFIKL0sgODUKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo3OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMiAwIFIKL0sgWzg2IDg3IDg4XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNSAwIFIKL0sgWzg5IDAgUiAxMzMgMCBSIDEzNCAwIFIgMTM1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKODkgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjcgMCBSCi9LIDEwOAovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzMyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNyAwIFIKL0sgWzgwIDAgUiA4MSAwIFIgODIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo4MCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMyAwIFIKL0sgOTAKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo4MSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMyAwIFIKL0sgWzkxIDkyIDkzXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjgyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMzIDAgUgovSyBbOTQgOTVdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI3IDAgUgovSyBbODMgMCBSIDg0IDAgUiA4NSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjgzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM0IDAgUgovSyA5NgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjg0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM0IDAgUgovSyBbOTcgOTggOTldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKODUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzQgMCBSCi9LIFsxMDAgMTAxXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEzNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNyAwIFIKL0sgWzg2IDAgUiA4NyAwIFIgODggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo4NiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzNSAwIFIKL0sgMTAyCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKODcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzUgMCBSCi9LIFsxMDMgMTA0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjg4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM1IDAgUgovSyBbMTA1IDEwNiAxMDddCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTI4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI1IDAgUgovSyBbOTYgMCBSIDEzNiAwIFIgMTM3IDAgUiAxMzggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo5NiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOCAwIFIKL0sgMTIwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTM2IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTAgMCBSIDkxIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzYgMCBSCi9LIDEwOQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjkxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM2IDAgUgovSyBbMTEwIDExMSAxMTJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTIgMCBSIDkzIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzcgMCBSCi9LIDExMwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjkzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM3IDAgUgovSyBbMTE0IDExNSAxMTZdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTQgMCBSIDk1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzggMCBSCi9LIDExNwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjk1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM4IDAgUgovSyBbMTE4IDExOV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjkgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjUgMCBSCi9LIFsxMDMgMCBSIDEzOSAwIFIgMTQwIDAgUiAxNDEgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAoxMDMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjkgMCBSCi9LIDEzMwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOSAwIFIKL0sgWzk3IDAgUiA5OCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjk3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM5IDAgUgovSyAxMjEKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo5OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzOSAwIFIKL0sgWzEyMiAxMjMgMTI0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjE0MCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOSAwIFIKL0sgWzk5IDAgUiAxMDAgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo5OSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE0MCAwIFIKL0sgMTI1Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTAwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTQwIDAgUgovSyBbMTI2IDEyNyAxMjhdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTQxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI5IDAgUgovSyBbMTAxIDAgUiAxMDIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAoxMDEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxNDEgMCBSCi9LIDEyOQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEwMiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE0MSAwIFIKL0sgWzEzMCAxMzEgMTMyXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjMyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFsxMzRdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzEzNV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMTM2XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjM1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFsxMzddCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzEzOF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMTM5XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyIDAgb2JqIFsyNzggMCAwIDAgMCAwIDAgMCAzMzMgMzMzIDAgMCAyNzggMzMzIDI3OCAyNzggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiAwIDU1NiAyNzggMCAwIDU4NCAwIDAgMCA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggMCAyNzggNTAwIDY2NyA1NTYgODMzIDcyMiA3NzggNjY3IDAgNzIyIDY2NyA2MTEgMCA2NjcgOTQ0IDAgMCAwIDAgMCAwIDAgMCAwIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2IDU1NiAwIDMzMyA1MDAgMjc4IDU1NiA1MDAgNzIyIDAgNTAwIDUwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2XQplbmRvYmogCjE0IDAgb2JqIFsyNTAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAyNTAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDU2NCAwIDAgOTIxIDcyMiA2NjcgNjY3IDcyMiA2MTEgMCA3MjIgNzIyIDMzMyAzODkgMCA2MTEgODg5IDcyMiA3MjIgNTU2IDAgNjY3IDU1NiA2MTEgNzIyIDAgMCAwIDcyMiAwIDMzMyAwIDMzMyAwIDAgMCA0NDQgMCA0NDQgNTAwIDQ0NCAwIDUwMCA1MDAgMjc4IDAgMCAwIDc3OCA1MDAgNTAwIDAgMCAzMzMgMzg5IDI3OCAwIDUwMF0KZW5kb2JqIAoxNiAwIG9iaiBbMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjExIDAgMCAwIDAgMCA2MTEgODMzIDAgMCAwIDAgMCAwIDAgMCAwIDk0NCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IDYxMSA1NTYgMCA2MTEgNjExIDI3OCAyNzggNTU2IDI3OCA4ODkgNjExIDYxMSAwIDAgMzg5IDU1NiAzMzMgNjExIDU1Nl0KZW5kb2JqIAoxNDIgMCBvYmogCjw8Ci9SIDMKL1AgLTE4NTIKL08gKHWrmG5uxFnOITeqbmFcXKCuAnccw/R2+L2kqV1cdIhccvhnKQovRmlsdGVyIC9TdGFuZGFyZAovTGVuZ3RoIDEyOAovViAyCi9VICjBoRwhoaepIwH58NjqHiuxAAAAAAAAAAAAAAAAAAAAACkKPj4KZW5kb2JqIAoxNDMgMCBvYmogCjw8Ci9DcmVhdG9yIChu2Jq6Z1V5b+BBXGaHSmy4WVtcKPLG/VxiWSJhmWXjFdaS8LpMBMBcKSRK7mziKQovVGl0bGUgKNtV84MOTxpkhRNqnSR8zF8+Y9LXk4Y0bQarXHTlf8/68d5cdGrSRX0grBjuKQovQXV0aG9yICjVVfOcKQovUHJvZHVjZXIgKG7YmrpnVXlv4EFcZodKbLhZW1wo8sb9XGJZImGZZeMV1pLwukwEwFwpJErubOIpCi9Nb2REYXRlICjUHajHVQ5JP9EEPdl4LYgPcH7Dlc2WfikKL0NyZWF0aW9uRGF0ZSAo1B2ox1UOST/RBD3ZeC2ID3B+w5XNln4pCj4+CmVuZG9iaiB4cmVmCjAgMTQ0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTMyIDAwMDAwIG4gCjAwMDAwMDU4ODkgMDAwMDAgbiAKMDAwMDAwMDE5MSAwMDAwMCBuIAowMDAwMDA0OTY1IDAwMDAwIG4gCjAwMDAwMDQ5MDcgMDAwMDAgbiAKMDAwMDAwNTAyMyAwMDAwMCBuIAowMDAwMDA0NDg5IDAwMDAwIG4gCjAwMDAwMDU0NjEgMDAwMDAgbiAKMDAwMDAwMDUxOSAwMDAwMCBuIAowMDAwMDA0NjY1IDAwMDAwIG4gCjAwMDAwMTc3ODUgMDAwMDAgbiAKMDAwMDAwNTIwOSAwMDAwMCBuIAowMDAwMDE4MzM0IDAwMDAwIG4gCjAwMDAwMDU2NDIgMDAwMDAgbiAKMDAwMDAxODYwNSAwMDAwMCBuIAowMDAwMDA2Mjg4IDAwMDAwIG4gCjAwMDAwMDYwMDIgMDAwMDAgbiAKMDAwMDAwNjMyOSAwMDAwMCBuIAowMDAwMDA2NTg4IDAwMDAwIG4gCjAwMDAwMDY1MTMgMDAwMDAgbiAKMDAwMDAwNzU5NSAwMDAwMCBuIAowMDAwMDA3NjcwIDAwMDAwIG4gCjAwMDAwMDc3NDUgMDAwMDAgbiAKMDAwMDAwNzgyMCAwMDAwMCBuIAowMDAwMDA3ODk1IDAwMDAwIG4gCjAwMDAwMDc5NzAgMDAwMDAgbiAKMDAwMDAxMjg1OCAwMDAwMCBuIAowMDAwMDEyOTM0IDAwMDAwIG4gCjAwMDAwMTMwMTAgMDAwMDAgbiAKMDAwMDAxMzA4NiAwMDAwMCBuIAowMDAwMDE3MzIzIDAwMDAwIG4gCjAwMDAwMTc0MDAgMDAwMDAgbiAKMDAwMDAxNzQ3NyAwMDAwMCBuIAowMDAwMDE3NTU0IDAwMDAwIG4gCjAwMDAwMTc2MzEgMDAwMDAgbiAKMDAwMDAxNzcwOCAwMDAwMCBuIAowMDAwMDA4NDM4IDAwMDAwIG4gCjAwMDAwMDg1MTUgMDAwMDAgbiAKMDAwMDAwODY4NSAwMDAwMCBuIAowMDAwMDA4NzYzIDAwMDAwIG4gCjAwMDAwMDg5MzYgMDAwMDAgbiAKMDAwMDAwOTAxNCAwMDAwMCBuIAowMDAwMDA4MjcwIDAwMDAwIG4gCjAwMDAwMDkzNzIgMDAwMDAgbiAKMDAwMDAwOTQ1MCAwMDAwMCBuIAowMDAwMDA5NjIzIDAwMDAwIG4gCjAwMDAwMDk3MDEgMDAwMDAgbiAKMDAwMDAwOTg3NCAwMDAwMCBuIAowMDAwMDA5OTUyIDAwMDAwIG4gCjAwMDAwMDkyMDQgMDAwMDAgbiAKMDAwMDAxMDMxMCAwMDAwMCBuIAowMDAwMDEwMzg4IDAwMDAwIG4gCjAwMDAwMTA1NjEgMDAwMDAgbiAKMDAwMDAxMDYzOSAwMDAwMCBuIAowMDAwMDEwODEyIDAwMDAwIG4gCjAwMDAwMTA4OTAgMDAwMDAgbiAKMDAwMDAxMDE0MiAwMDAwMCBuIAowMDAwMDExMjQ4IDAwMDAwIG4gCjAwMDAwMTEzMjYgMDAwMDAgbiAKMDAwMDAxMTQ5OSAwMDAwMCBuIAowMDAwMDExNTc3IDAwMDAwIG4gCjAwMDAwMTE3NTAgMDAwMDAgbiAKMDAwMDAxMTgyOCAwMDAwMCBuIAowMDAwMDExMDgwIDAwMDAwIG4gCjAwMDAwMTIxODMgMDAwMDAgbiAKMDAwMDAxMjI2MSAwMDAwMCBuIAowMDAwMDEyNDM0IDAwMDAwIG4gCjAwMDAwMTI1MTIgMDAwMDAgbiAKMDAwMDAxMjY4NSAwMDAwMCBuIAowMDAwMDEyNzYzIDAwMDAwIG4gCjAwMDAwMTIwMTUgMDAwMDAgbiAKMDAwMDAxMzU0NiAwMDAwMCBuIAowMDAwMDEzNjI0IDAwMDAwIG4gCjAwMDAwMTM3OTcgMDAwMDAgbiAKMDAwMDAxMzg3NSAwMDAwMCBuIAowMDAwMDE0MDQ4IDAwMDAwIG4gCjAwMDAwMTQxMjYgMDAwMDAgbiAKMDAwMDAxMzM3OCAwMDAwMCBuIAowMDAwMDE0NDkyIDAwMDAwIG4gCjAwMDAwMTQ1NzAgMDAwMDAgbiAKMDAwMDAxNDY1MyAwMDAwMCBuIAowMDAwMDE0ODMwIDAwMDAwIG4gCjAwMDAwMTQ5MDggMDAwMDAgbiAKMDAwMDAxNDk5MSAwMDAwMCBuIAowMDAwMDE1MTcwIDAwMDAwIG4gCjAwMDAwMTUyNDkgMDAwMDAgbiAKMDAwMDAxNTMzMSAwMDAwMCBuIAowMDAwMDE0MzE2IDAwMDAwIG4gCjAwMDAwMTU2OTMgMDAwMDAgbiAKMDAwMDAxNTc3MiAwMDAwMCBuIAowMDAwMDE1OTQ4IDAwMDAwIG4gCjAwMDAwMTYwMjcgMDAwMDAgbiAKMDAwMDAxNjIwMyAwMDAwMCBuIAowMDAwMDE2MjgyIDAwMDAwIG4gCjAwMDAwMTU1MjQgMDAwMDAgbiAKMDAwMDAxNjY0MiAwMDAwMCBuIAowMDAwMDE2NzIxIDAwMDAwIG4gCjAwMDAwMTY4OTggMDAwMDAgbiAKMDAwMDAxNjk3NyAwMDAwMCBuIAowMDAwMDE3MTU2IDAwMDAwIG4gCjAwMDAwMTcyMzYgMDAwMDAgbiAKMDAwMDAxNjQ3MiAwMDAwMCBuIAowMDAwMDA4MDQ1IDAwMDAwIG4gCjAwMDAwMDgxNjMgMDAwMDAgbiAKMDAwMDAwOTA5NyAwMDAwMCBuIAowMDAwMDEwMDM1IDAwMDAwIG4gCjAwMDAwMTA5NzMgMDAwMDAgbiAKMDAwMDAxMTkwOCAwMDAwMCBuIAowMDAwMDA4MzQ4IDAwMDAwIG4gCjAwMDAwMDg1OTUgMDAwMDAgbiAKMDAwMDAwODg0NiAwMDAwMCBuIAowMDAwMDA5MjgyIDAwMDAwIG4gCjAwMDAwMDk1MzMgMDAwMDAgbiAKMDAwMDAwOTc4NCAwMDAwMCBuIAowMDAwMDEwMjIwIDAwMDAwIG4gCjAwMDAwMTA0NzEgMDAwMDAgbiAKMDAwMDAxMDcyMiAwMDAwMCBuIAowMDAwMDExMTU4IDAwMDAwIG4gCjAwMDAwMTE0MDkgMDAwMDAgbiAKMDAwMDAxMTY2MCAwMDAwMCBuIAowMDAwMDEyMDkzIDAwMDAwIG4gCjAwMDAwMTIzNDQgMDAwMDAgbiAKMDAwMDAxMjU5NSAwMDAwMCBuIAowMDAwMDEzMTYxIDAwMDAwIG4gCjAwMDAwMTMyNzEgMDAwMDAgbiAKMDAwMDAxNDIwOSAwMDAwMCBuIAowMDAwMDE1NDE3IDAwMDAwIG4gCjAwMDAwMTYzNjQgMDAwMDAgbiAKMDAwMDAxMzQ1NiAwMDAwMCBuIAowMDAwMDEzNzA3IDAwMDAwIG4gCjAwMDAwMTM5NTggMDAwMDAgbiAKMDAwMDAxNDM5NSAwMDAwMCBuIAowMDAwMDE0NzMzIDAwMDAwIG4gCjAwMDAwMTUwNzMgMDAwMDAgbiAKMDAwMDAxNTYwMyAwMDAwMCBuIAowMDAwMDE1ODU4IDAwMDAwIG4gCjAwMDAwMTYxMTMgMDAwMDAgbiAKMDAwMDAxNjU1MiAwMDAwMCBuIAowMDAwMDE2ODA3IDAwMDAwIG4gCjAwMDAwMTcwNjQgMDAwMDAgbiAKMDAwMDAxODg0MiAwMDAwMCBuIAowMDAwMDE4OTk1IDAwMDAwIG4gCnRyYWlsZXIKCjw8Ci9FbmNyeXB0IDE0MiAwIFIKL0luZm8gMTQzIDAgUgovUm9vdCAxIDAgUgovU2l6ZSAxNDQKL0lEIFs8OWUzYTM3MzI0ZjhlYjVjMDA0YjFkMGM3NGJhY2U5MjA+PDJhNGVhYjMwYWQ1MDI5MDljZDlmMDBiYjI3YWY0NzY2Pl0KPj4Kc3RhcnR4cmVmCjE5MjgwCiUlRU9GCg==</Datastring> <Wrknmr> <IdWrknmr>1945</IdWrknmr> </Wrknmr> <Dnstvbnd> <IdDnstvbnd>252</IdDnstvbnd> <PersNr>1945</PersNr> <Vrzm> <VrzmgvlId>1945 1 1809</VrzmgvlId> <DatEerstVrzmdg>2022-05-24</DatEerstVrzmdg> </Vrzm> </Dnstvbnd> </Document> </Documenten>              
Volledig artikel weergeven
16-11-2022 15:25 (Bijgewerkt op 24-05-2023)
  • 0 Antwoorden
  • 1 kudos
  • 1003 Weergaven