MQL query to get all properties for the particular MID in Freebase - semantic-web

Take a look at this MID "/m/02r4n63" of freebase. Question is how to get all the properties related to this MID.
Freebase page for this MID.
I need to extract all the properties like director, producer, starring, etc from this page.
I tried these queries in endpoint
{
"*": null,
"type": "/film/film",
"id": "/m/02r4n63"
}
Output of above query gives properties related to /film/film only and gives starring list as null.
I tried this one
[{
"master_property": {
"name": null,
"id": null
},
"source": {
"mid": "/m/02r4n63"
},
"target": null,
"target_value": null,
"type": "/type/link"
}]
Output of above query misses out /film/starring property.
I also tried
{
"id": "/m/01jrbb",
"/type/reflect/any_master": [{
"id": null,
"link": {
"master_property": {
"id": null,
"name": null
},
"target": null,
"target_value": null
}
}],
"/type/reflect/any_value": [{
"link": {
"master_property": {
"id": null,
"name": null
},
"target": null,
"target_value": null
}
}],
"/type/reflect/any_reverse": [{
"id": null,
"link": {
"master_property": {
"reverse_property": {
"id": null,
"key": null,
"name": null
}
}
}
}]
}
But again it misses out properties like Description.
I want to cover all the properties.
I tried the topic search API already. That's the output I want. But I want it through MQL query as I need the names of the properties too.
Help is highly appreciated.

The Topic API is the best way to get all information about a given topic:
https://www.googleapis.com/freebase/v1/topic/m/02r4n63
You can get the name of a property using MQL e.g.:
{
"name": null,
"id": "/film/film/starring"
}
which will return "Performances". Of course, these are mostly going to be properties that you've seen before, so you'll probably want to either cache them or just pre-populate a static list.
If you want "starring", you can just split the key returned and take the last slash (/) delimited segment.

Related

restful api get not work,but scan can work

anybody know why restful api scan has data
http://127.0.0.1:8080/ignite?cmd=qryscanexe&pageSize=5&cacheName=contact
result
{
"successStatus": 0,
"error": null,
"sessionToken": null,
"response": {
"items": [
{
"key": {
"id": 703896957108224
},
"value": {
"mergedId": null,
"priority": 0,
"identities": [
{
"id": "7",
"type": "idCard",
"dateCreated": 1652932875433,
"lastUpdated": 1652932875433
}
],
"followerIds": [],
"contactType": "LEADER",
"dateCreated": 1652932875433,
"lastUpdated": 1652932875433
}
}
],
"last": true,
"queryId": 2,
"fieldsMetadata": [
{
"schemaName": null,
"typeName": null,
"fieldName": "key",
"fieldTypeName": null
},
{
"schemaName": null,
"typeName": null,
"fieldName": "value",
"fieldTypeName": null
}
]
}
}.
but get command no result.
http://127.0.0.1:8080/ignite?cacheName=contact&cmd=get&keyType=ContactKey&key={"id":703896957108224}
result
{
"successStatus": 0,
"affinityNodeId": "ee5e4d0d-5c91-4b9d-b68f-5dfac2f45908",
"error": null,
"sessionToken": null,
"response": null
}
By default Ignite REST supports Java built-in types for get/put operations. But it should be possible to implement a custom serialization if needed. In general it's much better to use Ignite thin clients, it's more functional than REST.

ASPNET Core 3.x - Appending data to all API responses

I've been googling for past 3 hours and I couldn't find anything helpful.
I'm trying to transform all my requests to a specific RESTful standard.
Right now, each and every controller returns data in this format:
[
{
"id": 3,
"title": "Test",
"content": "Content Test",
"userId": 1,
"user": null,
"categoryId": null,
"category": null,
"comments": null,
"tags": null,
"createdOn": null,
"updatedOn": null
}
]
What I want is to wrap all of these responses in a container, that also consists of metadata - as seen below:
{
"statusCode": 200,
"statusMessage": "success",
"meta":
{
"count": 1,
"total": 1,
"pagination":
{
"page": 1,
"pages": 1,
"limit": 20
},
"filters": [],
"sorters": []
},
"data":
{
[
{
"id": 3,
"title": "Test",
"content": "Content Test",
"userId": 1,
"user": null,
"categoryId": null,
"category": null,
"comments": null,
"tags": null,
"createdOn": null,
"updatedOn": null
}
]
}
}
Is the proper approach to just make a class called ResponseContainer and make all controllers return it? Because I feel like that's a viable solution.
In one of my projects, I used a generic class as response, such as MyApiResponse<T>. This class contains properties for meta data like the HttpStatusCode of the response, error messages, etc. They are set upon each response.
Within this class, I have a List<T> called Data.
Each API method returns MyApiResponse<T> where T is being the concrete data class. For instance, it could be MyApiResponse<Weather> where Data would store a List<Weather.
I'll definetly use this approach for my next API project as well.

Intune azure graph api to Create deviceCompliancePolicyState Returns 400 Bad Request

Call
GET https://graph.microsoft.com/beta/managedDevices/dd9615c4-9d3b-4ece-9272-34a10e8fe908/
RESPONSE
{
"#odata.context": "https://graph.microsoft.com/beta/$metadata#managedDevices/$entity",
"id": "dd9615c4-9d3b-4ece-9272-34a10e8fe908",
"userId": null,
"deviceName": "iPad Feb23",
"hardwareInformation": {
"serialNumber": null,
"totalStorageSpace": 0,
"freeStorageSpace": 0,
"imei": "",
"meid": null,
"manufacturer": null,
"model": null,
"phoneNumber": null,
"subscriberCarrier": null,
"cellularTechnology": null,
"wifiMac": null,
"operatingSystemLanguage": null,
"isSupervised": false,
"isEncrypted": false,
"isSharedDevice": false,
"sharedDeviceCachedUsers": []
},
"ownerType": "personal",
"deviceActionResults": [],
"managementState": "managed",
"enrolledDateTime": "2017-05-24T13:10:20.8964572Z",
"lastSyncDateTime": "2017-05-24T15:16:02.6465376Z",
"chassisType": "tablet",
"operatingSystem": "iOS",
"deviceType": "iPad",
"complianceState": "compliant",
"jailBroken": "False",
"managementAgents": 2,
"managementAgent": "mdm",
"osVersion": "9.3.5",
"easActivated": false,
"easDeviceId": null,
"easActivationDateTime": "0001-01-01T00:00:00Z",
"aadRegistered": null,
"enrollmentType": "userEnrollmentWithServiceAccount",
"lostModeState": "disabled",
"activationLockBypassCode": null,
"emailAddress": null,
"azureActiveDirectoryDeviceId": "00000000-0000-0000-0000-000000000000",
"deviceRegistrationState": "registered",
"deviceCategoryDisplayName": null,
"isSupervised": false,
"exchangeLastSuccessfulSyncDateTime": "0001-01-01T00:00:00Z",
"exchangeAccessState": "none",
"exchangeAccessStateReason": "none",
"remoteAssistanceSessionUrl": "",
"isEncrypted": false,
"model": null,
"manufacturer": null
}
But when i try to do post nothing seems to work ... according to the doc here https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/intune_mam_mobileappidentifierdeployment_create
it should work just fine what is the problem with this call ...?
Call
POST https://graph.microsoft.com/beta/managedDevices/dd9615c4-9d3b-4ece-9272-34a10e8fe908/deviceCompliancePolicyStates/
{
"#odata.type": "#microsoft.graph.deviceCompliancePolicyState",
"settingStates": [
{
"#odata.type": "microsoft.graph.deviceCompliancePolicySettingState",
"setting": "Setting value",
"instanceDisplayName": "Instance Display Name value",
"state": "notApplicable",
"errorCode": 9,
"errorDescription": "Error Description value",
"userPrincipalName": "User Principal Name value",
"sources": [
{
"#odata.type": "microsoft.graph.settingSource",
"id": "Id value",
"displayName": "Display Name value"
}
]
}
],
"displayName": "Display Name value",
"version": 7,
"platformType": "androidForWork",
"state": "notApplicable",
"settingCount": 12
}
RESPONSE
{
"error": {
"code": "No method match route template",
"message": "No OData route exists that match template ~/entityset/key/navigation with http verb POST for request /StatelessDeviceConfigurationFEService/managedDevices('dd9615c4-9d3b-4ece-9272-34a10e8fe908')/deviceCompliancePolicyStates.",
"innerError": {
"request-id": "544c4ee2-a6de-4203-9c30-c3e589b77713",
"date": "2017-05-24T15:48:30"
}
}
}
I'm an engineer on the Microsoft Intune team specifically working on the integration between Microsoft Graph and Microsoft Intune.
In this case it looks like there is an issue with the documentation as deviceCompliancePolicyState entity can not be created, it is read-only entity that shows the state of a device compliance policy. I will work to get the documentation corrected. If you can let me know what scenario you were trying to accomplish by creating a deviceCompliancePolicyState entity I may be able to point you in the right direction.
Hope that helps
Peter

How can I add multiple image answers to a survey using base64 data?

Using the answer to this SO question What is the correct format for the API SurveyQuestionImage.Data field?, I have successfully created questions using the API for questions containing a single image.
I am now trying to create a question with multiple image answers, specifically a side-by-side images question. I am using the NuGet package Google.Apis.ConsumerSurveys.v2 version 1.15.0.564 on the .Net platform.The result is this error return:
Google.Apis.Requests.RequestError Server encountered an error processing the request.
Request Id: 57ae035f00ff0af4b07e61a17d0001737e3430322d747269616c320001707573682d30382d31312d7230360001012f [500]
Errors [ Message[Server encountered an error processing the request.
Request Id: 57ae035f00ff0af4b07e61a17d0001737e3430322d747269616c320001707573682d30382d31312d7230360001012f]
Location[ - ] Reason[INTERNAL_ERROR] Domain[global] ]
Here is the body of the POST to the Surveys resource:
{
"audience": {
"ages": null,
"country": "US",
"countrySubdivision": null,
"gender": null,
"languages": [
"en-US"
],
"mobileAppPanelId": null,
"populationSource": "general",
"ETag": null
},
"cost": null,
"customerData": null,
"description": "",
"owners": null,
"questions": [
{
"answerOrder": "randomize",
"answers": null,
"hasOther": null,
"highValueLabel": null,
"images": [
{
"altText": "White",
"data": "iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9CAYAAACPgGwlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACDcSURBVHhe7Z0J2JdFtcDFuFwCQSFEUhAB2QQFZAcRBVFSVBQhl6sgKgoIfCyCgIr7dVfcEnPPFZfKJc0l9620LM2ysnK3Mr1dTdNueX-_cd7_8_9e_t_HIt8-53nOM-8678ycmTPnnDlz3g0SJEiQIEGCBAkSJEiQIEGCBAlqABotW7ZsQ7BxhhMnTvyK1-L9BPUNZs2a9Z9z5szZZMGCBe0ynDdvXhuI3ozbjb54KkG9gmOOOaYFRO6wcOHCbTPkWtdjjz32a2m011NYvHjxpvPnz-8PofcqwpFLly7tJJuPjyWoTwDBO0lo2PqxIseLuHYoI73_tGnT_iM-lqA-AQTuDUufDsGvEzm_FsKfDNF3cb6PjyWoB9DIUcyc3RRCD5fIpI9HfIzzq8FvKuCtWLHC59LcXtdBIp577rlfPeOMMzaGuLtD6G-Db0Z8g2sPgDNmzpy5OSO_eWLz9QAkotK5whpEnQyBvwexP4v4Kec_J102e_bs7RD0NovqW4K6DHPnzv0qhO3uvA3Rj4PAD4P_J3Ld9Dekl5JOWLRoUT_m9k3jqwnqKkDElghvwyDqkeAK8KcQ-d8Zcv4mneEO0mNJ9wA7xlcT1FFoJGuHoHuDZ4E_AF-F2J9nyPl74JPgVeARZWVlvT7__HOtc8lCV9dAwinELVmy5OsQ93DwDvBF8M8SO0MI_RGj-3ccP0F6IjhYQ00kfIK6BCtXrvyKujdE7cJcrTHmeQjrqP4kR3QFuv8B3543b94KpoIxqndRik-Er0sA4VoikW_JyN0J4p4LURXYPgI_ywgucl2B7mMJT7qS9BCmhK3jQkzjmF2CugCydQg-EDwYQmqBe1sCg__KEV2BTsI74h8ENc9qj-_iiI_ZJagLwGjtBvHGM2KXQfh7IeYHEnk1-Bx4Mc9Ogc0P4rhFzC5BXQBHOUSbQ_odiPgTjj8ESxG6gDz3W9I7SU-D6Hsw0lvH7BLUBYBwGmOcy5-BkH8E_5ERtxL8E_gCuBLhb4oWuphdgtoK0fWpGay9FQTfH4JfD74KKrX_s4i4JZFn_hd8A3Qh5hiI3oP8NgKbxE8kqG2gigaB2kD0zhBuJni_hIR-_yAtJ8BVgEr2Sviv8PxZCHPDFAhnzJixUfxEgtoGEkd1C4INB0-CeApmBaJyrSCpZ8i1f4L5DvFnrl0Fi5_AaO-d7PG1GNStIdQOEO1wiHYl6a-KCClKaAW6v2bIcxpmPgHtENlz73N-l0YdBbq5c-duHT-RoLaBTo8QbKICHOl94OuRiAElLqlm2D9kyLW3Sf9GWjza7RjPQPAryWsG2D9-IkFtAebx4MsO0XtAqKMhkmvmL4DvFRFSor9P-hL4EMc_ivgTUOFNtl_oHKAWPJ87nXS0Ztlkk689kLlDNYPYAyHSKRBJxwgtcH_PCCly_gad4occa4C5hONLOF4J_gIsmGe55zz_F45_R6ov3X5g8ygoJneqWgASXTXtaxBpNMS5HEJ9AH4KFrNs186d46-SG3A8i3Q26Vmkj3C9oMdzzWcV8j4mP92ppuk-TdpCjhK_m6CmQJYLMTYHt0fwmkp6K_ghBNPOnglnHjt6fwyexjSwm8jxWHAm93WiKLwT0WMJ_zSdYhmoI4b2-KS-1TQ48hiN20CQfSCMatpDoHp5IHhMZd0KcQ_RMWbyfKeysjJ1-S5cG0d6BdeU2D8lDdzB98B_gS-BetwcAg6Vo8RPJ6gpWLlyZRNGrWraXIh-HelPIU7B-saxI9ZlU71fb-aZSRy3yBAiD-b6GaAGmVXW28E_cu0u0lPB8bzfPn46QQ1AIyVp3Zsh-l4Q70KI8xionb1YEneu_j34FKgtflcFsgwhYi-uz-W6Kt4vSZXwi4n-F67pgHEbeBTYNblT1RwEojvHQvQp4N0Q_g1QnbtgaOHYufp58CZwHkQeFN8PwPMdee4g8FLwYc7fyt6NqAbwDqir1Ym8v22U4BPRqxt0bY4Se3eIuRBiPUHqvFzOuhav3QeewjP70Tl6xCwCcK0tz40G50BQF2heyd6N7-sbb0dyY4Sq3q5gu6lTp7ZIOns1w_Tp01tBBAm-C3gOqNFFAa7A2iO6XOqa-iEQeKA7WWIWARi1ukj34v5YnjuTVBfpYqIrzKn-aa5VJpiMMNgHQfDraadr5RA8U-PSZ-NoTGkSjR1NHbWkGleak25EY6sPt6RxNybdhBHdimdaO7IZqW3UmTNCgW5IvJF3yplcQQU4R-kfePY80pG824FvtoxlCuD3ea4d97uDc8GHQTuPwmAxx1ADeIi8VN_2BfWs2dyyWCbLFsvYyn1xlt1v8UwLF4Ksm_aEWNemYJO4d66xTpykG9YXzhHm3cwz1YrbGDaQDU3Dted8K8635rgnuC3n_TgfyPEwjncER3G8G-_uwTv6r0_g2LVyVS8l6qtJn-K8nMkVdInUufhpcIl5S4zJkyeX83uz0bmvFN-Wb_0Xx7eQl5K-I7t4Dd5O9EtSdfrzwIXgIZx_k7z3JXWvu3vldiXdGRzB9SGkA7jWl2MFRjlTF76lHOHeubZ2FI5bKJBmGyjruqAYRriVicueRnzYnLQzjdAzNsYQGnsnjseS7k1DqFIdzPUjwKO5Np90Kfc1r54NKqWvINVz9RFQiVuTa17VUup-mXe_x_E0GneLbETFsmXQSA4k96Fcsnjnbe32El5OkeUnm3-P8mma1chzD9fc6nwZxxeQOjWcxKhfQjqP8xmUXWPRQbyzH-k47o2BM9gZBvHMdnyvmx2Aa-6h20QuELlhzQuKFoJCt6Cg7ShkJwrfgwr1AftxfYCVAIdwfRiozjwS3Jnnd-E8jFLO1XEn8Y6jycY4inPNoAs4tqE0rJxOeg7pheBloCbT60Ht4xLvXtBFED1bfkaqKiZxldDznjHee4B3L-DePszlqzWq8NxQUB_574La4-UWWX6yel2lNfHaIX4FPgtalgdI7wF97xbqqwzh0q575OwQdla50gnU3-VatYijOZ_G_SnggZzbMQyY4JQlt9CkvBO4I-f6BwzleDDXB4Dbcx64Bx1Fd-0Ocgy5aazKlwdHAYXdio_IcmWxeouWkS6kAG4KPAk8nUKdTbqcQnyLVCvXtRzfROqovJ1nXf3S0PED0IUPG8s59FFQ6ftp8Mcc6_zwM9CGdyT_GnTVyy1JGkuUpN8l1egiITSX5h0hHK1XgjPtiPm5vBQw4rTsHQi6BepB8ijnQcs1TbnO93YyDTkuyypLuESrW5ZltDMoVP4c1FD0HPgsx05B7onXzq_VUK8etQo5xp2053dJb-Pc6eV6jq8mlaNdzD1lEjmJ3O4EUjum3GQabTuJ-2PcjuX0Favy5cEexEe24wP78QFH5vngLRxLQEeee8Ge4_5LoOzPTYGywg_Bz0BZY0EoqmIMtnPSRynfMo7HQvQeClGxOhWCI4ZOvQPvHMH7N4FK_tVVbjvVv2NbZZsv7NivUY9fc2wnlrPYaeR4DiIXl5aRum1rhNNErMqXB9h7YxpjS1jIED4ie_5vCvJ9UkeoPVpCv0aB3yLV1UgW-BEYVCgwI0TJyq4v5BuOdi1wH1E-R44joXdUr1br3CiLhPDOs98gr4tAR696_2qdKtcH8p1ssUdN4WNQ-4AePhJf7uaUJSd5BryPcipPzCIdxSjvCY02jlX58uCcboY0yhZ8VEPGCaDsWXdhWZwE_juoMCWhC75nYHWOFL-pR6veMVeB4xCWWjnKo3BUKcjReHZjOwrvykZf4Fgpfk3cp9cb8j07r4PF-ihM2q52Atv5fcr0CvgYeCmdVEFROcttWOt1R44SbhMyVZe2QabyceebH5JqwXLukyXl59VKkeezlazMWdHGNR9Nn7os2dNtdK1qqmQSU5b7DudylTc5dk51nndelQ06h8raj6eTDqpAYi8JPqf0LGcgn6nUdSUoS3WlTfcq7fqvc6wgZ2dXJbQ8CpPO8ZZTtvw30Hm_MBBA6ychbaO1Hgi8p4HIDv0WZXoKvAFCu6d-FPdbqIpa11iV9QM2hqoXH23H6FGPVjc9EVT4cL7RZm3FShY6jzwvwYMBBbRxbCy9VWzM10C3D8vKfgG64OGmBQWhH5HKZe7mWBauZH8Dx9eQaj8_k7ItVeCknJ0jwddU_fG5wNVApeZZNKwaxUU0ruqZ37nV74JK6wpjlucJUJar4GZ5LbdCpx3SjmG9rJ-dOSP-WhGe510IciXQ9YELKdfhdGo1pC5yKOpp2NM16txrDXHkaFHaiA-qWpxIeiepUnZeV64QeVaiZwRXBpDYzlkvg5pCn4R4D1LBe8DbOFaivQK8iGOlayXZoBNzfwbHqoETuTfGTmmMGcq4Wom9FMjVnMrIuy95axzal_QwvwPO5_pSklNJVS_V66-0fBDidq7bGZTOXdVTA9FWYL0kvvW0jUppG5Ui-erHp10iW9vv4rSlZkWRq1an11rkqLdnUZBtKNB4CuBOT0eC6pYsUPZWsvAR7eWycVmmI9hRew35nc8IO5PzoNPSWItJuTx_NulRpIeRHgxmVjANHruR7ky6A_f7c12BZksIryFoneY466f6E2WY7uTXz_zjd7Q77On3Sffn2sGxXJbPcpLMX0x91BzcE3cW184n_Tap1rxHQTu2AprtUOGI5zmnBaeyl0EF5zPJ-1DyGqbdwXJWm-nWD9GgGyokUQiFCNUc3Y4uo0Cyu7wdvBgzCdX573HeVwJ1lWwS6XDeHwJq1x5gY4N9aHzjuPZCJenBN7txvrXfBTvybQ0Tjsp23N_UMsmFJPi6znGxfk3Iv7nE5xttnOf9jt_zu5x3thyWh7JpQtZQohm5D2Xf3vJbD8qlwcf4dbuDR3GsPUNDkxpPpYIu95wSlFFuBo_neC--34Pjds7hNWqutWEo0AgaQCvbtzhWb3cOUtrMqztBeCNV-NE4oYuxEmh_GkwNIZgiY9Z1Huw8dkLq14m6ajOYQ32v5djRngl2-fZRTVSA1Sh1C9eW8N5etG_nmG3Ng4SyQBTQkXoohdQyJ8vWouY8lu_RHmvi1DtVq9wlNIrzpZKoq13uC6-ZHrz-IHBD2qM99VLwlZNpudRxU9v9u6TF7D0MBtBBon1AI8wVpJpsnVJ608a1xz_PyoFNKaSrVcZf3ZfCLiVVula9CTo7xxnRRdU0dU87hdL5NaQL6NFjZs-erWWpzhN95MiRbsBwfcIFJIVPXbJcHFIdzWs6Ej9oM6RqA8oBh3I-3GmL9tXWUDvdr6mk-8n6UFht9PZsTbW6GimQBKkVLB71opLtk-B3wPkSnrSreTkv1-jctXYQRjdlb2G8G6Y9pf_J1FcnD6V67QjliB3bw9GtrcOgCLpcX0wbTiUdhhbSsdYSOwN7pCOVwiv1KuXOo1LGY32aBtBgYU_Oe7c492tocWeKCw6uuB1A2pf8gkBWbVLqukMguASingqYu1F3VxFdfFK4VXDTgFPgeBzL0l2bcA5XB7-dd06CjSvjDF6yZMkWyjnmG79Ru8HKU3H_oqAk7i7S66mIVjTVOU21xfNZhp_xvCtVLomqA493HiOv6tFH1x0CwaORRL8BAxzpkq3hSOlb9ay4nqIEl53b4RVqDV-6DFY-kve7kc862RhqFGwECt-KnroVDaCThAsDjnhX5bRWWVlHfTHh5QCaNdVLZYdncHwQ6XA7kGoK-crqag3x1TS0VEa9XtVS3wENOFoIXSLWblG8Lu8IV8bRTiGxFerkbsENS4K7WqZwHD9Rp6Cg61KZ9qA66z6ca2DQP93VOAlfLODZATRIyA1-zz0tUNfx7tE0wiDXxCPhaw27kwNRnmZ2Sso6gbK6N05DiqZpbRFaHMuprZx_QhuEhRPOdfeaxuDYiTyMiKV_YNM6r7bK9pRAqWwXKubIVUXTMPMbjjVAhCXYrFFEzm0sJX_Vvst5VlVwACNqKxplo9jYNUL8aLzR1t3EUUnZtqFeqlX6xbsI5RSV3yZt51aIc4S_zrPP8c7tHM-jQ-tL5368-hPCzAaiknq66gQ4gOP9QZcuXbxwccJRr_pW3EhK-o54JXvjtupJ4qrSnmAn2amdKX6iWkHBkjKE-sCOh1K-wyHgeVy7C6IrobvAUm6bNCjBVU-1obumcAHoev8osKNcrKbqU2UQR0dQZ_Q9p-L6fB0HGhjgVVJHfHEjKegEgwXHhgnRYPEgjboYHGQeZ599dvOYfbWCI1yCSyzKJue6imO9hhRUlcQtc15ItVMHDYXyy-nc896RUd7a_OqQWrr2YAWjH7g2-_E0giPenSUuvKjLu4aeN93KEiW8o0ifu0Uc7wPqURqcJKpjDnQk8v0WCqekujm7srec8iijvEtqJKviaUrCK7foB6D79J08o6vZ1LKyMtcWgtnZwRA_UT_BCsb52I0AXen1WQD-Kzg2sqPSbp7VK-0q4El4HRpkj8aVmcix68mbVjVrjJyqZdSdXWDSV9BNja6j61ihDOKUVBjhHoOaW1-kvC6y6EQ6lnpuqy3DAQA2rgM2iPUDVlRVx55Ogxg2pIxGuQF0sUaHDAm_ivXK6zzvYsT9pEJ_sKOjPWZdJRCJ7u4a49rsx_ddKpXYerPkTaqO9qCFUDYNTt8HT-N8nEuiErs-LSqtMdiICkQSnpGTheiWXTqCDeCrri5bzI8cR5PsXpbqJojhdByXWqt0fre8BhKkrP0guj8AsoOqZzuH5zUP2byOE3IB5_v5HI_jvV6W09EN1m-WXgmEbU_q3pkhh8bR-0XHA3-9oR6bb9BMuNNhQ--VXZDke3JcpeqORLJzMtJdG59BGV1M0qxcSmgLGgf3dAxx9XAg8ksbCR5HeMNg56uBQHxZPY2pzqqzgY6XEjYv1AXk_rM8ezzpUB0abNCYV5WAROe7IbYNKEdyiTSvlmWoYUkdXLeqPZA32ls_sknEzkHwuHXOtKEiQQ26nye6o8rR7naiOXAIWXvbatBx_QlQxo10ETPUiUuk-VEuKqlfSrn2pyMPcpT7_hfZJCgHsj4aK4sU5SKNLDQvJLkUKUt9gGemMAI3AZutq2vUWoCCXFONQnx3R77vXjuNR5aluHxyIf0DTobYISJVCihcCdCojR25NNQujHT3yel0UCC6xAaD9yznd_DIJLf48p6qT1ULRiFIYZG2cQ7f1xewlEPEi9y_QDsEaV8DKMQ8EuQhSvI6FurtasQnJfQCe_cY_CuN_hqpq1jjHOGR4FXOPv2O3Ijvu-FDn383KroqWM6uACqAuuP2CJ7dEWwbs0iQB-dliKl5dgapy7DGbS0Qnev6yRtMyG3Ky7k2Or66xqBAlUcur1WH4btd-b6gXOEycTmXb66728YNhscx2seRlgt5kqAIGElNIagLEFqulH4ViAoqG-dKyy7QuLPEAAA7xFfXCCSwnEE2nWERp1hjoHx6th5JWdzd464W7QkFooOuDrrV2X32B_B8-pVnRaBVzZFBI51Po-lJoupTEJQ41uihJ8qNsE4teAPiq2sEEtcpxM5VhE3WVgikjK6dH0g5DTpgOV1IKSa6q4aalHWOOFI5Jb6aIA80YnPQ8CP6hbsj1gWYYqJrftU1eDlEn4x61zu-WiFEjUBHxc0gVg_eGcG5Cz0ByWcMefZFQNtiTZdred6IHHvyvr_pNNBC_v-tljPsOwMX8I2e8dUEOWhkbDbaaAoNdzeoXdvl1mI9WF8z7x0HGtina3y3QnAk0-jtIXg_CGRQBfV_f86nnm3nUgo_DAzqFdxmtXu8yUvrmmZj99Dpul3uDxKcayZ2T7n7-_QI3i6-miAD51p9xBltOlnYkI-DLrG6aFFMdOdOd3y4b2xH2WzMIoOwZi-7VrXiuKUjmHwUDuUgJ4N2GnfFim5xNuSJ69uHkd9oRnt33tuEc0OAFUd7KoAcgfvumzNOzHLelysViM49tQyjcLxDnjpXDJTjmFfMIoGWONhqSxrH_WmulRvWM4sAUUx02b1xZCaA28Gqy_1Qx4ZVLpAoEMToVQY6MpCP-8AuB13IcWlW3zW3XblUq6StFO42ZNVE9-TJRQzmIxsPxI-fCADxDE3aLRpp7EiaiwtE5z29XHUB-4DnVpDHKJ7VldkNlckyJ0goNwjSSH3BU0BX2EptilBgUlWrKBBgE02l3uMZNwwuocElpvq-O2SdHnRqcCRmGPaNcf1PpHY2rYBGgzqIMvUirzaWL34iwPLly1Ut23HPzYQG_JEzFZczWxTSAdJIU3vLcSLh02gXHJkQS09QQ5ucT0MZkKC4EVXbtHq5YeA0UMGrdWThxsMJoVF4rzfpzqTuG3OrsOG9JKTxWpwqivMshfq2aXDREngu78ry3QqtWbiw_dnOZZljRzUokSqkNgTLWdxRXQZW9Zxi2Ujbra2mUG9ByZpG8d-oB4Bu2nNUFojBeRZ6Q8_YJRB2axq-mSNOwkOY0GEkEuifG4z4rO-dfmvBBYv75ZZoK0DtAMoNdq4nefcOUAfG2eAeEL6PhJfd-11t6jxrmfWKUQbJ_ONCfhw7PblELDdwE0Pn_FTRYAEidQDHMA-7DUjd1pFZihiG_JyjM4ONp91dInBtJO_6XxbnT-OxuM4d9s1xrzgf0ZGYx3LP8F7BWYO8nGpuJjVAgsH9ukhw5RBZNed7c90pRGm9nI8c504fj_DuqZTPIAa95RKx2g0bHLk0iN6hOkUYWFAnhGJC6EOuPdv4aW5w7Mdzbg78Bo15GMfKAYYneZRres0WQplxrTgfCZkF_stQndqQIIVnOZfovu_zhkVxF4qhRfxJgHFoxnM8GOwIGqfW6JAusrgjtRBalGPzMHCgRpwjqKcbNuqXm_O6Ag3nZgGXUo2nYjChfHBfBTh_jncjzyrdG8PVTX5GUbwLVO1yx6fCmKtepQguEVwYkd3_NkPOXSkLe-iz50TOM2FMndvO4SKPARLvBSXidMpsSBIdKi4GNcSYX2HxhXOFUQMPySkWgTspE8RqN2xw5NIg7v8yapPbgfI-8IHo4K08pguxz57DsQENdKJ0qTW_vJkRzevO6bJf7fbGfFG4ytBoGEHYA1XjJPIqmoPnfC8L6fUsaLRG1TtX2zTQKEO4s6XgTcO5-di5FPTOYqTvntcEGizQgAa6PZmGcY-6knu5DX-g-rSjSDbriHLPu8RzW1QQoDjPC2qey2rtEAqA6ui6YBmRyuhMAfm2QprOmLo_2bHsYE4Pzsd5wnvd72ktlPCaYJX0LXdg76TFWoIdz07peoG_8Aw_9YvVbtiAVKyRw5DegUWD5dQrGkqpWIOK7FtW7LxcCM0FrsLKvQfKaiWioVBCbJtsk0GGXM9-06WNXNOsYU_tdBI4LwgG7gEqlXtfh46g44OrCHKgz39AvnrG2kGMD19_9qutA2gybRzX0J2jDespUWWhhTV0kfMgSYNhezNYisg-5z1ZtPO0segMMng1qJFmEpL-YL7XXqk7w2hSVYd2E4IagKG6VcH0v8_khIocIEU7l-WS4PmOItF9V1dp2b9ygMaeGtt8WaNgpVV9osnUmHBu4HfkSLi8UBVGF2gDO5IqIroN7-qWK3GXk6_6sS5Lw_mOf1VoF_3VMseJRnY61T4I35G0P8-M5di4cFrlDIqojOEulVW-J3IvyA2kWYSN_JRgB7bDyuKNqdOButfe-DFVCS6wyF4hvAsizq_GPS_XoJUhz9u4NrINnrHZIDRBNJ0WXZQZHAma-ZtXChAiOD6qQvL-RNApQWFPRwmnFzUDpx61gzzrrxR5XiFyGUTvwXfctNjwpHhHmPvCaAj_UKBRxtCaJRusFPK8HCFsZSZ1FBkIwJCdBiLcnw61A2gUDHeUrJHjZGZpo2yb8q6BC_ckv5mgCzE3gtrwtQOEAMhgSY5TCnnHDmlIlRFfJoRpnQZVF3s9BNeJYRmNYRitkg1WCnnH0f02RNXUalQq_7SkP9r22sQdsY6mtVnSdAnVZyU--bRw_qV8Pcl_FN-SGznfqzWU1O0rQ57VtGxEzX3tUPkVwgYBNIAx5_qTarvWPcr4LCUbDMx0bgUlDTeugzu6lcq11ZfZeSBSNwm1pkReE-BbltOwoIb9dA-bgRF1etSIpF6u9bBCg1CG3NO07P43p52d5HLxEw0HIIyhRUfS6_2PuRK2seZKNhhogyoo6f5sZGWla1fjnBZcthzC3N3Z-TsaP9bbmjXlbEIZN-Z7BlJw6dfI18a7D6ZfUOLrkGGHXEW3L0KnIf_VoudOCEseP9FwQALREK5564SgDuuoyTeUI1yU4I4mR7hWO5dNJ7gFCqJkO0Cr3DnB7_g9yuEunNGUYRaoU4c7WrJVNqX1UoTPwob5m5BDLHvMtuEAo7Qtvd51b4PrqWLlI0c7cmwoQ5MYO12WqgHHv0T5_7b-zt0SYl1819cFsjk_qpnulB1N6oKPa_yOet2es__E2UmL66MM4JRkROdZcI8-MduGAxKMhpBNak93437ed9yRo5qjVC-xjVah-5N2ekNnBicKsqpyYudAwgeWT3l0pzLmvT_Ym8SxXMuY7hqGyq0Uck0rojYEjTThVyMxvwYBYVeJsVNppNkQUZanf7srWZpWdWnSdGrD3cF9HQtDODGFNI5VwWqNNUvV071qqGFdKP8-lNOfGukipd-d05GdWYJnNntX3YLqVl0cqsZBgoF6vmoA0TzqH5EUcrRduzih-dPNDMFJkXuGEDN0tiG0g85NNrWmoWJdgjMH5dOc61-egzMmaIiS-0FHuOZcVUy3ZWktHOO7tkckfv0FK6qbExX3b4f-5cB1aue7ECgQVDCajqBj9KYQ-5139EurNoFtLSFwrmgP0AhkQOQtqcNQOkIWVcO_TIZRD35EnV1f39N2sF71nuiOCiramjl9eyq-GDQUqKg_uzHO3SO2Mw2mH1zrutggMWSaMeZ0o_Y3nka19h83OmA8D-p04T_jgom43jtLKgAZw5z5OYQSswFIjbzkf9D0D-_DvQ6ZRY1X6hzRM4se9Wmrakb9_OOFEan8wZHOF6a7Q_TOyik-H1-tn8BIdxeLW339U7CCz1Gg-8q6u7nQXl-f2B0dN5h1qas_5vc_av7k382P7s7dJqqd9dtZkoq6SbEtle3sqKYhRtAI7lbZTILbSPWJ6Nl8j5TfkpGtq_YI6j_QYzuC16lz_V5mzQQe53YaQCFNc6xprZLK1zMEhxGwGcT2F2ISupnqnte9_8VjCRIkSJAgQYIECRIkSJAgQYIECRIkSJAgQYIECRIkSJCg1sAGG_w_9uugSP5CnHgAAAAASUVORK5CYII",
"url": null,
"ETag": null
},
{
"altText": "Black",
"data": "iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9CAYAAACPgGwlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABGxSURBVHhe7d0DkG1JEgbgt7bNWdu2OWvbtu2dtW2bs7Zn1rZt2_6_2K6IE72nX-v07XPOzYz4YyZevNd9q7JSf2bV3VNSUlJSUlJSUlJSUlJSUlKyC3KQ4KDBwTs42MqflcxUDhUcOTh2B0cPDhs4ECUzlCMEJwhO38HJg6MFZe0zlWMEZw0u38EFgxMH3HzJDIVyKfqeK7hHcKPAQThEUDJDOV1wq-BFK3hh8ODgYoF4XzITkaCx4kMH5w0o-cAVHBA8P7hGIMHz9yq2z0Ao8TDBkYJ9g2cHP1zBD4J3BbcOjhMcLig3PwOhRNm5eH6D4PXB31fwt-BzwQMCmfyxAuVbycSFlZ8yELfvG7wv-GcHXw-eFlwlOHMgwy-ZuBwxOE9wi-CZwaeDf3fAze8fyOYvE-wTlExYJHFc-xWCRwVvDb4V_KeDXwYfCp4X3Cw4beDfFUM3QaE0SZwE7aYBa_5C8POgq_Q_Bt8MPhg8MDhH4N-V0icoGDa190kDrvtTAav-S9BVuoTut8GPA-6_1ewSwFL8xEQsP2FwoeCxgYSNVVNyV-mSuT8HFP-q4HqBg6IRowtXMiHh1s8eUCL2jSVT8L-CrtIlc_7cYXh3gJq9QEDxCJ2SCckpgisGavC3Bb8JusruwyeDJwfqebFdV65kQsLK7xC8OPhE8IegT9FdCAFvCB4SKN-OGpRMSCRkYvlHg-8Gfw36FN3FT4PPBK8Mbhhg6EpGLjJ2NOpRgmsGLwnU5bL2fwR9iu7id8H3gw8EdwtOFRw-OGRQMlJRasm6TxLcJnhn8PuAla9O4PogmZPhfy1A5mDyJIQUXzJSoZyTBVqoDwokZn3KXQ8IHAwdPl4Pvvj4EQsrP1-AgXtu8JWgT6nr4dfBmwLlm4TOQSoZqRh6vFoggXt7ID73KXU9yPQ_EjwnMGlzlqBkZIIrx55JvG4b6Jl_NpDA9Sl1PaBqxXVkzUODiwRoWYliUbMjEEqgEFm72ny_wGAEBu5PQZ9S14NM_xfBNwJzdGK7qRpZfI1TjUAoncK1UC8aPCvAvpmK2UjG3gfUrEweJ68C0HKVzEkUi48fgXC5xw3E3RsHrw7EZHw65fUpdT00Pt7BEdvvH5w7UApW-TYCYXmnCa4UKNPeE6jLt6rwBv-ep_hi8PTgusG5Ah6lZJdFnFWm3SnQTTMOtRH2baNA4eLj5QomcI4flOySiOVg8NGtlScF5tgpiWvuU-BWIKFD8ui1m7NTs1cGv0vSlC7Gao68OTDHjj_frmvvQgWgEvh8oE2LoSul75KwcPHVePPdAzNumDQ19pBKl8yZqkH06LVfPDhm4LCV8hcsOmltnv0xgYRLAjekawfJXFP8y4PrBy5GuNteN133IiwCqWGTZNvIFAmYrpiRJFar1kaAsCATK2bcXEVyx4yCDTSwbPy6mtmo8qUCNOnLgq1SrhtFG6dSvknoEEFKRZ_FZ_LZfEaf1Wf22a3DeqzL-qzTeq3b-u2D_bAvs5nAtQiwKAu1eJthg1iKTPhEgeTo1AELcsvEhmprmlVDgV4y0Piw2dgxvXKtUxMuLiB-ONgq5bpR8CC8yWuCRwd3DZRxuH5jWZcNHEKex513nb5zBq5BnzFQVhrhUusb2NSydWAcEgfDYWgTuJNWvg_vBFuMhVE267BwSj5ToPY1sWrDKPXqgWFGLBge_S7BfQIlk82WpRtVlk2_P_hSINFaPdo8NLh5B8tIFcJGF0779SmB8IKj5wV05oxp3TKQYF4rwCFcOnCAHYazBRJCr2A4AJTPs1H8aCzeB-GqWKeLgBobTi-rtABDhJTHOtXMTvqFA6e-WSlroFDWgTmzKbcPWMy9A8TKwwIbSLHPCGyq6RcK1kQx4Ih8UZoZa_p2oKTCwA1Zm_dBcoiWlSwKJayeh3E3TkfvjcFrA3H_BYHbsQ7E44JHBK5Iu0sn6cQpuCmrBWwIk-e6cnC5wOGXLDogjIG3c1AwgjyH_cY-MhghjpfUXRRaeNPBhKVyw5TKGp3gOwYWYCFNYSzxiQEGS1tSs8ImUJoNoTgW4nrROwLXhG2a8STZNwv6eKAuplRlEkv-asDCjD6pw5Vm5tkkVxQh3m6VZ98MHCwexTSOw-Ye3PcCh09zRmfuy4GbNLp8LlgYyjSn5-qUw8o7Obg4fYdYqYn8eV0gdJjPM8zpwPNoKgatYgeHt-NNXN64c3DzgCE5JA6AXGIwcYLOEFw1YJmPD3w4CrQAC6Iop98VIZvBFbLAppAhy6i5olG_uAFNo58EDrlhEEbg8Dg0Dgsj0lzCHfAY5w8GHeSUYYo9XDj3_PDA6WSh2pgU7cT_KDBq5AObNWsllMWU0tdH2yclIsUjmhgP5QspPIoDQPlCihB4u0AokCNJkgcTMd0PPF6gfcnFcM9cmCSKgn1Iro-iWTdXWBa-Ndg3xmIfHQD7KozZZzmFMCJUuFd_nUCepWwc9EaObFJdqdaUdUrExBuK9wFYtg-1iLi6rKB8uQRvKoF8aSC2s3JJNoUPThb5gRI6Gbw6Wrbpaq_kg8X7ME5m3wcubB_Nwt8bSJZvEqiQ3LmTcwnBPPKOCOU7VeruSwQUr1yRZe90rbzMENNVOuI4HgPXgeFrhM6Oil9A8W14Qf3NzSjPlFuyTQlI3wcvbA7yIzkTg5I4K9uUy2p2dTk9LIzI8Yu4EhSiJAIhgxZ1CrmfnebBlwV4CKXwKwJ8iLkBTSalGZdODwtT-mpBCqgTsWyIGXW7GCTb3GmmbG5Q7QiTFI6UovB7BRTOpY9GxBYfCF3orVXMHKYJoyazr9Jtfdgf-8RIMI_iNyoXZSt3UjXpXYxGuHrJndLBh5PZa5KgFrFzrWbvW2zhf6B0tbnSDCWNsxe_Ud8aMspledQoBUmgGYOjx8mjanHRWKWiZP8fzbqFQ_y9GlyjhseUsHnXbrTKbuJESjQkHLpGGgPclGYKLt5JHnq6Zapw-BkCYkv8xnkogbFsOpcYUEzojtXfQ4vTqeXnw2sIaJEicJRzbS59mS2-uXOGoF-h6kFva6XqswuVk5NW0mnJ6gtrDLB4XTmJisye1S-j4rlz1k3ZHwtk6LplciEK5ykH5dEXJepHfL0RKWNRLN4EySMDzQILpvhlTPCUZL8KuPT2PCnDME61Yzz6ogWRIAPFE4tXTw0ODAxGqEd3Yop1bHC4eTYWjrwyXOHenZLMRIwxskm69LVEfGfxqEPjPsaDxC-L1h9m9Tajb7PmAgmbDL19sYCSTK6jaWJWwYzcoONOY5BG3TrNTrVyBLUogRHjWXzfZs0FDjWF60gqycRvia68RxjcVUp1p8UCdehw9po1LF5mbxpELS-7nwt1K0mVt_BkRsk0TVi4GtxwY3cCdtZigdqBFixTxTi5GGiQUpzTpZuLq6d0A5zoaOwkltJ0MNZShs4AFtop222xUMrH2xvKMF1rGkSzRj1P8VMdypCUytB5Le6cwrtPjzZlL51QuoVTfHui2xiWcV_TnkaJucUp1vGULU9BqfJgMnQ3YIwpNw599i59LWnJi7jWiBzXhNpXbxgPmmIpZ_ABF0Hh2s2uNulJqGAoe2nc-d6kKZ-rN2ZtowxemsSZYlLHyl3wcMXJdSYceltjSUdsiFjnypTYd7_ALdEpKl2m7maKyyGsXBwvha8hYrwaXjmDuJAATTGZM-KES0c9C1nceskaIsFxIc_FR_fk3OKYotKVaOpxyZvrYIPeMZubyOQNYPjCW5OfkqEpuneNFA8Sq0YMjeo7lKwhuGf0rGu82rDImikq3Z0zAxEGGiVyQlbJGqJ0c00HJ-9WpnnvKZZsOHZXkd3u5bXqqzz3IogLcdBmmQZlMVPst_8s0EvAMEpItZRL1hBZrkv2bsugLzVgpqh0Y99axlqoZgSVoSU9oo7Vdm0PARo00G6dIg3r2rb-QXtw0ANKJauEwpVrSAxJnKma7gBl38aOGcpM14rN_HtDx-AIDmJp-fY-wcRpteqxoy691aJLJXOfotJbl82kjGtepmOMMktUi5lbEQmcd9W8mOQxHR02sXyKCgef2-eneC9Tu4embHOwy9pXBGNlEtTTJjJ3b9j0bebUwM2r1z0t6lq3wYml7KP3ic0wSOGhPe3I7wR9mzg1CE9vCfTT3eoVvrCOJREDgt5C85igp8qQG32bOAS43tXo-3tDgNLxDUKWeUBDFPKXkogmizakkSLDE-rzvk3cLrhb14g809WgLBR7d0L5EjokjTl_b8TwZrMbc96qiHeYK4MTyjXK6NvE7cLcnQPldmgDPqDdoe_7N9uBn-mdPa9U6xp6PlUGXxLxxqyHf_XPMXFDzMCzXJvOutX8plKxZB48xOs3aN8qEYUUJZaDMVTl4Oe4xeN3uM6l-aJSKYm41uPBXJOwMnez4n2buBlwra4RsWLMmGFLnsTjw7LpBnmEYUy3bbhihApSaAiOwL_384x96Rq2L_Uribie6-Vn7lazwqb3beJmwMJZrU1H63qw2D067BiipEEzRJPHm7dqau7YofMZtuvyKZ33cJD3DzwFNqv7apuVRr1KbDx37fYmhaMvt9pDZ9k2WZz2VV1etPQlAKxbI4dHcYMWQdKAI3D5wGfwvvwTAq9V8zrtEOLS-37feqD0dsPFFW3fQmEqdmlHoC3a9KtNd6_L9KjNpbitWpgDY2zaS8leSNbhUip5AMnLGF67dKXKgWtw6Dzgo-dtiJHyZdoeS_IoohxDPtD3-zaC5nEMhPAmDp11U_zSiUVzr8aDxVYkRt-mrQVWJG7bVIdF8scyDS94z84YNcumUHF0I0yYzNohVEKavxcSJHu8Bg-i3GvXqjd7MCWROm4Onxn_pcziWRiF49slU9xf32atBR5BVq4EM33qcqDboEojV6HNprVJVITIRtxpu2Zlpk1F4c0cjyKa11N2HRCYaW8PIG8m0XMgddza58LDL50oXQwXYOJYgGe0-jZrLbBuN0nMmPsmhHZ1yPi05g2LZU2baWly9_4u5Uu4xF_vqBvh4o3EeyXfVmp71DIP5DUOB30phyVtqhiKb9dkYa19mwUsygZzrYgbN1v9fVk5rt7lR4dH04aihkySfE7xXtbv-1bEei4fiaQG52m4fS5_b5bvoBifckMXScPLLZ2wRIv3AJEM21tzfZsFreb2TouvtZBdOyjCgvfqXIXyYqX4zYOw2KFEaJB7aI2yUK83Gm3Gp7tXT_m-1WK92p5Xkhi2N15H9eTnooSC9g2QMpTIalZvlA0ECmdNLBxrJxwgOoSHVv4Mqei1xO_x-xwAbWAH1nw7Rk9-sbfBD2Wb5gs-QqhYyrk531eqdjZZosTi_rqbxHJ8I1K78sul2jCunHULDWJ3U_gilN5iPi8l1lO88s53srF6d-_a98Q5pN31yP6Vbb69ymFxqWPphMK4SfQnFowldDeJ5ShzZPWULRa67iSrFmPN08m0F6Hsrvh9zeWr-zWL9ModYF4L86bEW90pdAjcfLEeLl7HbWmkWaWHCMTkNt8uQeMexW3UqY2zge2NFolU9473WETpqe5G58rMvaGjmlDeCUcOM4U7xGK_Ay4ZdFDaXsxeWlxEgKBH23w71svYMPpTTaw2ViOrlVkFJqvV3GPaKGvhceQo6FzeyBi3q9aaLMgiLCE6l9sXxjR-VBuLzEd2VSyUdXCLGC-nX83LunXDJEY4ahOk2Cslk3p7rBvUrBUf4ECqHngxd_Laqxq8WbN6XLxnQR1m-2Bds1c6qxCPkSgu-EniwJiUMkzspnCeYKqX-fH78g5rvHbgCXS3drR3ZfqYQ0TSZijiSYsEyIa0p8RsgOxXUof5ktWamWuM2hSV3hg9FYrSTMPHOJgvONII8l_lqlpdnjL7YUnW6_04GyHx0RjRCePKLd6pn5O7E5KsS6bPgwldrN8BF-JUMcLCrIU7YwFOOauWxXqtoc2Ezy2xsRbr0mBBE1uvxNT_Owj-XFyftbSER2znArlx_x1bVj6kWBfFSvKUdxTt_5cmkSspKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSmZnOzZ818DW5ag0lSSzAAAAABJRU5ErkJggg",
"url": null,
"ETag": null
}
],
"lastAnswerPositionPinned": null,
"lowValueLabel": null,
"mustPickSuggestion": null,
"numStars": null,
"openTextPlaceholder": null,
"openTextSuggestions": null,
"question": "Which star?",
"sentimentText": null,
"singleLineResponse": null,
"thresholdAnswers": null,
"type": "sideBySideImages",
"unitOfMeasurementLabel": null,
"videoId": null,
"ETag": null
}
],
"state": null,
"surveyUrlId": null,
"title": "Stars",
"wantedResponseCount": 100,
"ETag": null
}
Question: does anyone know how to create a question with multiple image answers using the GCS API? More specifically when sending WebSafe base64 encoded PNG image data?
The "owners" field must be filled in correctly; otherwise, your request should work as expected.
(There was a bug in the API related to multi-choice images that is now fixed.)

How to define a related resource URI in JSON:API

In the json:api format relationships are defined with a type and a id.
Like in the example bellow. The article has a relationship with the type people and the id 9.
Now if i want to fetch the related resource i use the URI from "links.related"
// ...
{
"type": "articles",
"id": "1",
"attributes": {
"title": "Rails is Omakase"
},
"relationships": {
"author": {
"links": {
"self": "http://example.com/articles/1/relationships/author",
"related": "http://example.com/articles/1/author"
},
"data": { "type": "people", "id": "9" }
}
},
"links": {
"self": "http://example.com/articles/1"
}
}
// ...
But in my case the related resource (people) are in a separate API. There is no way to get the full people data from the articles API nor is it possible to include it. The only way to get the related data would be a call to:
http://example.com/v1-2/people/9/
Where can i define the relation between the URI and people:9
Or in other words: How would a client know where to fetch the related resource?