From 0c1cdbed7a348f77131f0252523cfce9a880e98f Mon Sep 17 00:00:00 2001 From: Zack Fu Zi Xiang Date: Tue, 17 Sep 2024 10:18:47 +0800 Subject: [PATCH] fix: self referencing database --- src/biz/workspace/publish_dup.rs | 77 +++++++++++++++++++---------- tests/workspace/publish.rs | 82 +++++++++++++++++++++++++++++++ tests/workspace/published_data.rs | 64 ++++++++++++++++++++++++ 3 files changed, 198 insertions(+), 25 deletions(-) diff --git a/src/biz/workspace/publish_dup.rs b/src/biz/workspace/publish_dup.rs index ad686b7a..40278804 100644 --- a/src/biz/workspace/publish_dup.rs +++ b/src/biz/workspace/publish_dup.rs @@ -693,6 +693,44 @@ impl PublishCollabDuplicator { .duplicated_refs .insert(pub_db_id.clone(), Some(new_db_id.clone())); + { + // assign new id to all views of database. + // this will mark the database as duplicated + let txn = db_collab.context.transact(); + let mut db_views = db_body.views.get_all_views(&txn); + let mut new_db_view_ids: Vec = Vec::with_capacity(db_views.len()); + for db_view in db_views.iter_mut() { + let new_db_view_id = if db_view.id == publish_view_id { + self + .duplicated_db_main_view + .insert(pub_db_id.clone(), new_view_id.clone()); + new_view_id.clone() + } else { + gen_view_id() + }; + self + .duplicated_db_view + .insert(db_view.id.clone(), new_db_view_id.clone()); + + new_db_view_ids.push(new_db_view_id); + } + + // Add this database as linked view + self + .workspace_databases + .insert(new_db_id.clone(), new_db_view_ids); + } + + // assign new id to all rows of database. + // this will mark the rows as duplicated + for pub_row_id in published_db.database_row_collabs.keys() { + // assign a new id for the row + let dup_row_id = gen_row_id(); + self + .duplicated_db_row + .insert(pub_row_id.clone(), dup_row_id.to_string()); + } + { // handle row relations let mut txn = db_collab.context.transact_mut(); @@ -734,8 +772,12 @@ impl PublishCollabDuplicator { // duplicate db collab rows for (pub_row_id, row_bin_data) in &published_db.database_row_collabs { - // assign a new id for the row - let dup_row_id = gen_row_id(); + let dup_row_id = self + .duplicated_db_row + .get(pub_row_id) + .ok_or_else(|| AppError::RecordNotFound(format!("row not found: {}", pub_row_id)))? + .clone(); + let mut db_row_collab = collab_from_doc_state(row_bin_data.clone(), &dup_row_id)?; let mut db_row_body = DatabaseRowBody::open(pub_row_id.clone().into(), &mut db_row_collab) .map_err(|e| AppError::Unhandled(e.to_string()))?; @@ -754,7 +796,7 @@ impl PublishCollabDuplicator { // updates row id along with meta keys db_row_body - .update_id(&mut txn, dup_row_id.clone()) + .update_id(&mut txn, dup_row_id.clone().into()) .map_err(|e| AppError::Unhandled(format!("failed to update row id: {:?}", e)))?; // duplicate row document if exists @@ -860,34 +902,24 @@ impl PublishCollabDuplicator { dup_row_id.to_string(), (CollabType::DatabaseRow, db_row_ec_bytes), ); - self - .duplicated_db_row - .insert(pub_row_id.clone(), dup_row_id.to_string()); } // accumulate list of database views (Board, Cal, ...) to be linked to the database - let mut new_db_view_ids: Vec = vec![]; { let mut txn = db_collab.context.transact_mut(); db_body.root.insert(&mut txn, "id", new_db_id.clone()); let mut db_views = db_body.views.get_all_views(&txn); for db_view in db_views.iter_mut() { - let new_db_view_id = if db_view.id == publish_view_id { - self - .duplicated_db_main_view - .insert(pub_db_id.clone(), new_view_id.clone()); - new_view_id.clone() - } else { - gen_view_id() - }; - self - .duplicated_db_view - .insert(db_view.id.clone(), new_db_view_id.clone()); + let new_db_view_id = self.duplicated_db_view.get(&db_view.id).ok_or_else(|| { + AppError::Unhandled(format!( + "view not found in duplicated_db_view: {}", + db_view.id + )) + })?; - db_view.id.clone_from(&new_db_view_id); + db_view.id.clone_from(new_db_view_id); db_view.database_id.clone_from(&new_db_id); - new_db_view_ids.push(db_view.id.clone()); // update all views's row's id for row_order in db_view.row_orders.iter_mut() { @@ -917,11 +949,6 @@ impl PublishCollabDuplicator { .collabs_to_insert .insert(new_db_id.clone(), (CollabType::Database, db_encoded_collab)); - // Add this database as linked view - self - .workspace_databases - .insert(new_db_id.clone(), new_db_view_ids); - Ok((pub_db_id, new_db_id, false)) } diff --git a/tests/workspace/publish.rs b/tests/workspace/publish.rs index 4a053af1..d7668be9 100644 --- a/tests/workspace/publish.rs +++ b/tests/workspace/publish.rs @@ -1304,6 +1304,88 @@ async fn duplicate_to_workspace_db_row_with_doc() { } } +#[tokio::test] +async fn duplicate_to_workspace_db_rel_self() { + let client_1 = TestClient::new_user().await; + let workspace_id = client_1.workspace_id().await; + + // database with a row referencing itself + // uuid must be fixed because the collab contains row data which reference itself + let db_rel_self_view_id: uuid::Uuid = "18d72589-80d7-4041-9342-5d572facb7c9".parse().unwrap(); + let db_rel_self_metadata: PublishViewMetaData = + serde_json::from_str(published_data::DB_REL_SELF_META).unwrap(); + let db_rel_self_blob = hex::decode(published_data::DB_REL_SELF_HEX).unwrap(); + + client_1 + .api_client + .publish_collabs( + &workspace_id, + vec![PublishCollabItem { + meta: PublishCollabMetadata { + view_id: db_rel_self_view_id, + publish_name: "db-rel-self".to_string(), + metadata: db_rel_self_metadata.clone(), + }, + data: db_rel_self_blob, + }], + ) + .await + .unwrap(); + + { + let mut client_2 = TestClient::new_user().await; + let workspace_id_2 = client_2.workspace_id().await; + let fv = client_2 + .api_client + .get_workspace_folder(&workspace_id_2, Some(5), None) + .await + .unwrap(); + + client_2 + .api_client + .duplicate_published_to_workspace( + &workspace_id_2, + &PublishedDuplicate { + published_view_id: db_rel_self_view_id.to_string(), + dest_view_id: fv.view_id, // use the root view + }, + ) + .await + .unwrap(); + + let fv = client_2 + .api_client + .get_workspace_folder(&workspace_id_2, Some(5), None) + .await + .unwrap(); + println!("{:#?}", fv); + + let db_rel_self = fv + .children + .iter() + .find(|v| v.name == "self_ref_db") + .unwrap(); + + let db_rel_self_collab = client_2 + .get_db_collab_from_view(&workspace_id_2, &db_rel_self.view_id) + .await; + let txn = db_rel_self_collab.transact(); + let db_rel_self_body = DatabaseBody::from_collab(&db_rel_self_collab).unwrap(); + let database_id = db_rel_self_body.get_database_id(&txn); + let all_fields = db_rel_self_body.fields.get_all_fields(&txn); + let rel_fields = all_fields + .iter() + .map(|f| &f.type_options) + .flat_map(|t| t.iter()) + .filter(|(k, _v)| **k == FieldType::Relation.type_id()) + .map(|(_k, v)| v) + .flat_map(|v| v.iter()) + .collect::>(); + assert_eq!(rel_fields.len(), 1); + assert_eq!(rel_fields[0].1.to_string(), database_id); + } +} + fn get_database_id_and_row_ids(published_db_blob: &[u8]) -> (String, HashSet) { let pub_db_data = serde_json::from_slice::(published_db_blob).unwrap(); let db_collab = collab_from_doc_state(pub_db_data.database_collab, "").unwrap(); diff --git a/tests/workspace/published_data.rs b/tests/workspace/published_data.rs index d69315a0..707f4d5e 100644 --- a/tests/workspace/published_data.rs +++ b/tests/workspace/published_data.rs @@ -687,3 +687,67 @@ pub const DB_ROW_WITH_DOC_META: &str = r#" } "#; pub const DB_ROW_WITH_DOC_HEX :&str = "7b2264617461626173655f636f6c6c6162223a5b31342c312c3136312c3231362c3139342c3233382c31352c302c3136312c3231332c3134302c3135352c3139312c31352c302c312c312c3139362c3139372c3133362c3139372c31352c302c3136312c3234392c3233382c3230392c3235322c322c302c312c312c3231332c3134302c3135352c3139312c31352c302c3136312c3230382c3234312c3138332c3233312c312c302c312c36392c3134382c3135312c3230352c3231332c31332c302c33392c312c342c3130302c39372c3131362c39372c382c3130302c39372c3131362c39372c39382c39372c3131352c3130312c312c33332c302c3134382c3135312c3230352c3231332c31332c302c322c3130352c3130302c312c33392c302c3134382c3135312c3230352c3231332c31332c302c362c3130322c3130352c3130312c3130382c3130302c3131352c312c33392c302c3134382c3135312c3230352c3231332c31332c302c352c3131382c3130352c3130312c3131392c3131352c312c33392c302c3134382c3135312c3230352c3231332c31332c302c352c3130392c3130312c3131362c39372c3131352c312c34302c302c3134382c3135312c3230352c3231332c31332c342c332c3130352c3130352c3130302c312c3131392c33362c35362c39372c35312c3130322c39392c35342c35302c35372c34352c39372c3130302c34392c35312c34352c35322c35302c3130312c3130322c34352c39372c35302c3130302c35302c34352c3130322c35302c34392c39392c3130312c39382c35322c39392c34392c39382c3130312c35352c33392c302c3134382c3135312c3230352c3231332c31332c322c362c38322c37382c3131312c37312c37382c3130372c312c34302c302c3134382c3135312c3230352c3231332c31332c362c322c3130352c3130302c312c3131392c362c38322c37382c3131312c37312c37382c3130372c34302c302c3134382c3135312c3230352c3231332c31332c362c342c3131302c39372c3130392c3130312c312c3131392c342c37382c39372c3130392c3130312c34302c302c3134382c3135312c3230352c3231332c31332c362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c34302c302c3134382c3135312c3230352c3231332c31332c362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c34302c302c3134382c3135312c3230352c3231332c31332c362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132302c34302c302c3134382c3135312c3230352c3231332c31332c362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3134382c3135312c3230352c3231332c31332c362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3134382c3135312c3230352c3231332c31332c31332c312c34382c312c34302c302c3134382c3135312c3230352c3231332c31332c31342c342c3130302c39372c3131362c39372c312c3131392c302c33392c302c3134382c3135312c3230352c3231332c31332c322c362c35342c38382c39302c3132312c35362c37382c312c34302c302c3134382c3135312c3230352c3231332c31332c31362c322c3130352c3130302c312c3131392c362c35342c38382c39302c3132312c35362c37382c34302c302c3134382c3135312c3230352c3231332c31332c31362c342c3131302c39372c3130392c3130312c312c3131392c342c38342c3132312c3131322c3130312c34302c302c3134382c3135312c3230352c3231332c31332c31362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c33332c302c3134382c3135312c3230352c3231332c31332c31362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c34302c302c3134382c3135312c3230352c3231332c31332c31362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3134382c3135312c3230352c3231332c31332c31362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c332c33392c302c3134382c3135312c3230352c3231332c31332c31362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3134382c3135312c3230352c3231332c31332c32332c312c35312c312c33332c302c3134382c3135312c3230352c3231332c31332c32342c372c39392c3131312c3131302c3131362c3130312c3131302c3131362c312c33392c302c3134382c3135312c3230352c3231332c31332c322c362c3130312c3131312c35342c37312c37302c3131342c312c34302c302c3134382c3135312c3230352c3231332c31332c32362c322c3130352c3130302c312c3131392c362c3130312c3131312c35342c37312c37302c3131342c34302c302c3134382c3135312c3230352c3231332c31332c32362c342c3131302c39372c3130392c3130312c312c3131392c342c36382c3131312c3131302c3130312c34302c302c3134382c3135312c3230352c3231332c31332c32362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c34302c302c3134382c3135312c3230352c3231332c31332c32362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c34302c302c3134382c3135312c3230352c3231332c31332c32362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3134382c3135312c3230352c3231332c31332c32362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c352c33392c302c3134382c3135312c3230352c3231332c31332c32362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3134382c3135312c3230352c3231332c31332c33332c312c35332c312c33392c302c3134382c3135312c3230352c3231332c31332c332c33362c35362c39372c35312c3130322c39392c35342c35302c35372c34352c39372c3130302c34392c35312c34352c35322c35302c3130312c3130322c34352c39372c35302c3130302c35302c34352c3130322c35302c34392c39392c3130312c39382c35322c39392c34392c39382c3130312c35352c312c34302c302c3134382c3135312c3230352c3231332c31332c33352c322c3130352c3130302c312c3131392c33362c35362c39372c35312c3130322c39392c35342c35302c35372c34352c39372c3130302c34392c35312c34352c35322c35302c3130312c3130322c34352c39372c35302c3130302c35302c34352c3130322c35302c34392c39392c3130312c39382c35322c39392c34392c39382c3130312c35352c34302c302c3134382c3135312c3230352c3231332c31332c33352c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39392c35362c39392c39382c3130312c3130322c34382c34352c34392c34382c39392c35312c34352c35322c39382c35362c39392c34352c35362c35302c34392c35372c34352c3130312c34392c35362c35302c35312c3130302c34392c34382c35372c39392c3130312c35352c34302c302c3134382c3135312c3230352c3231332c31332c33352c342c3131302c39372c3130392c3130312c312c3131392c382c38352c3131302c3131362c3130352c3131362c3130382c3130312c3130302c34302c302c3134382c3135312c3230352c3231332c31332c33352c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c34302c302c3134382c3135312c3230352c3231332c31332c33352c31312c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c33392c302c3134382c3135312c3230352c3231332c31332c33352c31352c3130382c39372c3132312c3131312c3131372c3131362c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c34302c302c3134382c3135312c3230352c3231332c31332c33352c362c3130382c39372c3132312c3131312c3131372c3131362c312c3132322c302c302c302c302c302c302c302c302c33392c302c3134382c3135312c3230352c3231332c31332c33352c31342c3130322c3130352c3130312c3130382c3130302c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c33392c302c3134382c3135312c3230352c3231332c31332c34332c362c35342c38382c39302c3132312c35362c37382c312c34302c302c3134382c3135312c3230352c3231332c31332c34342c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3134382c3135312c3230352c3231332c31332c34342c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3134382c3135312c3230352c3231332c31332c34342c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3134382c3135312c3230352c3231332c31332c34332c362c38322c37382c3131312c37312c37382c3130372c312c34302c302c3134382c3135312c3230352c3231332c31332c34382c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3134382c3135312c3230352c3231332c31332c34382c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3134382c3135312c3230352c3231332c31332c34382c342c3131392c3131342c39372c3131322c312c3132302c33392c302c3134382c3135312c3230352c3231332c31332c34332c362c3130312c3131312c35342c37312c37302c3131342c312c34302c302c3134382c3135312c3230352c3231332c31332c35322c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3134382c3135312c3230352c3231332c31332c35322c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3134382c3135312c3230352c3231332c31332c35322c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c33392c302c3134382c3135312c3230352c3231332c31332c33352c372c3130322c3130352c3130382c3131362c3130312c3131342c3131352c302c33392c302c3134382c3135312c3230352c3231332c31332c33352c362c3130332c3131342c3131312c3131372c3131322c3131352c302c33392c302c3134382c3135312c3230352c3231332c31332c33352c352c3131352c3131312c3131342c3131362c3131352c302c33392c302c3134382c3135312c3230352c3231332c31332c33352c31322c3130322c3130352c3130312c3130382c3130302c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3134382c3135312c3230352c3231332c31332c35392c332c3131382c312c322c3130352c3130302c3131392c362c38322c37382c3131312c37312c37382c3130372c3131382c312c322c3130352c3130302c3131392c362c35342c38382c39302c3132312c35362c37382c3131382c312c322c3130352c3130302c3131392c362c3130312c3131312c35342c37312c37302c3131342c33392c302c3134382c3135312c3230352c3231332c31332c33352c31302c3131342c3131312c3131392c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3134382c3135312c3230352c3231332c31332c36332c332c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c3130322c39382c3130312c35312c35342c35322c39382c35372c34352c3130322c35312c35352c35352c34352c35322c34382c3130312c3130322c34352c35372c3130302c3130312c3130302c34352c35362c39382c35362c39372c39392c35352c39382c35352c35332c34382c34392c3130322c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c39382c35312c35332c35342c3130322c35302c35312c39382c34352c34392c35312c34392c34382c34352c35322c35352c35372c35302c34352c39372c34392c35312c34392c34352c3130322c39372c35352c35332c3130302c35322c35362c35362c35322c3130322c35352c35302c3131382c322c322c3130352c3130302c3131392c33362c39372c35302c3130322c35362c35312c35352c35302c34382c34352c34392c3130302c35352c35332c34352c35322c3130312c35322c39382c34352c35372c39382c35342c35332c34352c39372c39372c35312c35302c34382c3130312c39382c39372c35362c39372c3130322c3130322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3136312c3134382c3135312c3230352c3231332c31332c32302c312c3136312c3134382c3135312c3230352c3231332c31332c32352c312c3136312c3134382c3135312c3230352c3231332c31332c36372c312c3136312c3134382c3135312c3230352c3231332c31332c36382c312c3136382c3134382c3135312c3230352c3231332c31332c36392c312c3132322c302c302c302c302c3130322c3232302c3131302c3134342c3136382c3134382c3135312c3230352c3231332c31332c37302c312c3131392c3136322c312c3132332c33342c3131312c3131322c3131362c3130352c3131312c3131302c3131352c33342c35382c39312c3132332c33342c3130352c3130302c33342c35382c33342c35302c3130372c37322c3130352c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c39392c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c37362c3130352c3130332c3130342c3131362c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c38362c3130312c37332c3131302c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130342c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c3131372c3131312c38312c37332c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130382c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3131372c3131342c3131322c3130382c3130312c33342c3132352c39332c34342c33342c3130302c3130352c3131352c39372c39382c3130382c3130312c39352c39392c3131312c3130382c3131312c3131342c33342c35382c3130322c39372c3130382c3131352c3130312c3132352c312c3235352c3136342c3233322c3235342c31322c302c3136312c3133302c3137362c3139342c3135342c31302c302c312c312c3133302c3137362c3139342c3135342c31302c302c3136312c3139342c3133322c3138362c3231322c342c302c312c312c3135372c3230352c3235352c3233382c362c302c3136312c3139302c3235342c3234342c3134392c312c302c312c312c3133312c3234322c3138332c3235342c352c302c3136312c3135372c3230352c3235352c3233382c362c302c312c312c3230362c3232362c3230322c3233302c342c302c3136382c3234322c3233352c3231362c3138362c312c302c312c3131392c33362c35332c39392c35362c39392c39382c3130312c3130322c34382c34352c34392c34382c39392c35312c34352c35322c39382c35362c39392c34352c35362c35302c34392c35372c34352c3130312c34392c35362c35302c35312c3130302c34392c34382c35372c39392c3130312c35352c312c3139342c3133322c3138362c3231322c342c302c3136312c3133312c3234322c3138332c3235342c352c302c312c312c3234392c3233382c3230392c3235322c322c302c3136312c3136312c3231362c3139342c3233382c31352c302c312c312c3230382c3234312c3138332c3233312c312c302c3136312c3235352c3136342c3233322c3235342c31322c302c312c312c3234322c3233352c3231362c3138362c312c302c3136312c3139362c3139372c3133362c3139372c31352c302c312c312c3139302c3235342c3234342c3134392c312c302c3136312c3134382c3135312c3230352c3231332c31332c312c312c31332c3230382c3234312c3138332c3233312c312c312c302c312c3136312c3231362c3139342c3233382c31352c312c302c312c3139342c3133322c3138362c3231322c342c312c302c312c3133312c3234322c3138332c3235342c352c312c302c312c3134382c3135312c3230352c3231332c31332c342c312c312c32302c312c32352c312c36372c342c3133302c3137362c3139342c3135342c31302c312c302c312c3231332c3134302c3135352c3139312c31352c312c302c312c3139362c3139372c3133362c3139372c31352c312c302c312c3234322c3233352c3231362c3138362c312c312c302c312c3234392c3233382c3230392c3235322c322c312c302c312c3135372c3230352c3235352c3233382c362c312c302c312c3139302c3235342c3234342c3134392c312c312c302c312c3235352c3136342c3233322c3235342c31322c312c302c315d2c2264617461626173655f726f775f636f6c6c616273223a7b2262333536663233622d313331302d343739322d613133312d666137356434383834663732223a5b312c32382c3230382c3135312c3233362c3231392c392c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3230382c3135312c3233362c3231392c392c302c322c3130352c3130302c312c3131392c33362c39382c35312c35332c35342c3130322c35302c35312c39382c34352c34392c35312c34392c34382c34352c35322c35352c35372c35302c34352c39372c34392c35312c34392c34352c3130322c39372c35352c35332c3130302c35322c35362c35362c35322c3130322c35352c35302c34302c302c3230382c3135312c3233362c3231392c392c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39392c35362c39392c39382c3130312c3130322c34382c34352c34392c34382c39392c35312c34352c35322c39382c35362c39392c34352c35362c35302c34392c35372c34352c3130312c34392c35362c35302c35312c3130302c34392c34382c35372c39392c3130312c35352c34302c302c3230382c3135312c3233362c3231392c392c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3230382c3135312c3233362c3231392c392c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3230382c3135312c3233362c3231392c392c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c33332c302c3230382c3135312c3233362c3231392c392c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3230382c3135312c3233362c3231392c392c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3230382c3135312c3233362c3231392c392c382c312c33392c302c3230382c3135312c3233362c3231392c392c392c362c38322c37382c3131312c37312c37382c3130372c312c34302c302c3230382c3135312c3233362c3231392c392c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134302c34302c302c3230382c3135312c3233362c3231392c392c31312c342c3130302c39372c3131362c39372c312c3131392c342c3131342c3131312c3131392c35302c34302c302c3230382c3135312c3233362c3231392c392c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3230382c3135312c3233362c3231392c392c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134302c3136312c3230382c3135312c3233362c3231392c392c31302c312c33392c302c3230382c3135312c3233362c3231392c392c392c362c35342c38382c39302c3132312c35362c37382c312c34302c302c3230382c3135312c3233362c3231392c392c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134332c34302c302c3230382c3135312c3233362c3231392c392c31372c342c3130302c39372c3131362c39372c312c3131392c342c38362c3130312c37332c3131302c34302c302c3230382c3135312c3233362c3231392c392c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3230382c3135312c3233362c3231392c392c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134332c3136382c3230382c3135312c3233362c3231392c392c31362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c33392c302c3230382c3135312c3233362c3231392c392c392c362c3130312c3131312c35342c37312c37302c3131342c312c34302c302c3230382c3135312c3233362c3231392c392c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c34302c302c3230382c3135312c3233362c3231392c392c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3230382c3135312c3233362c3231392c392c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3230382c3135312c3233362c3231392c392c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c312c3230382c3135312c3233362c3231392c392c332c382c312c31302c312c31362c315d2c2266626533363462392d663337372d343065662d396465642d386238616337623735303166223a5b312c33312c3135302c3234342c3137382c3232332c312c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3135302c3234342c3137382c3232332c312c302c322c3130352c3130302c312c3131392c33362c3130322c39382c3130312c35312c35342c35322c39382c35372c34352c3130322c35312c35352c35352c34352c35322c34382c3130312c3130322c34352c35372c3130302c3130312c3130302c34352c35362c39382c35362c39372c39392c35352c39382c35352c35332c34382c34392c3130322c34302c302c3135302c3234342c3137382c3232332c312c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39392c35362c39392c39382c3130312c3130322c34382c34352c34392c34382c39392c35312c34352c35322c39382c35362c39392c34352c35362c35302c34392c35372c34352c3130312c34392c35362c35302c35312c3130302c34392c34382c35372c39392c3130312c35352c34302c302c3135302c3234342c3137382c3232332c312c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3135302c3234342c3137382c3232332c312c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3135302c3234342c3137382c3232332c312c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c33332c302c3135302c3234342c3137382c3232332c312c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3135302c3234342c3137382c3232332c312c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3135302c3234342c3137382c3232332c312c382c312c33392c302c3135302c3234342c3137382c3232332c312c392c362c38322c37382c3131312c37312c37382c3130372c312c34302c302c3135302c3234342c3137382c3232332c312c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3133352c34302c302c3135302c3234342c3137382c3232332c312c31312c342c3130302c39372c3131362c39372c312c3131392c342c3131342c3131312c3131392c34392c34302c302c3135302c3234342c3137382c3232332c312c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3135302c3234342c3137382c3232332c312c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3133352c3136312c3135302c3234342c3137382c3232332c312c31302c312c33392c302c3135302c3234342c3137382c3232332c312c392c362c35342c38382c39302c3132312c35362c37382c312c34302c302c3135302c3234342c3137382c3232332c312c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3133352c34302c302c3135302c3234342c3137382c3232332c312c31372c342c3130302c39372c3131362c39372c312c3131392c342c3131372c3131312c38312c37332c34302c302c3135302c3234342c3137382c3232332c312c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3135302c3234342c3137382c3232332c312c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3133352c3136382c3135302c3234342c3137382c3232332c312c31362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134352c33392c302c3135302c3234342c3137382c3232332c312c392c362c3130312c3131312c35342c37312c37302c3131342c312c34302c302c3135302c3234342c3137382c3232332c312c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134352c34302c302c3135302c3234342c3137382c3232332c312c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3135302c3234342c3137382c3232332c312c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3135302c3234342c3137382c3232332c312c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134352c34302c302c3135302c3234342c3137382c3232332c312c312c33362c39392c35342c35372c3130312c35312c35332c34392c3130322c34352c39392c39382c35332c39392c34352c35332c35362c34382c35362c34352c35372c39392c35322c3130322c34352c3130322c35322c35342c35372c35352c34382c34392c3130322c35352c35342c39372c35362c312c3131392c342c3234302c3135392c3134372c3134302c33332c302c3135302c3234342c3137382c3232332c312c312c33362c3130312c3130302c39372c35352c34382c35342c3130302c39382c34352c3130312c39382c39382c34392c34352c35332c3130322c39372c35332c34352c39382c34382c35352c35362c34352c35342c39392c35322c39372c35362c35312c35312c35302c35342c34392c35352c35352c322c3136382c3135302c3234342c3137382c3232332c312c33302c312c3132312c312c3135302c3234342c3137382c3232332c312c342c382c312c31302c312c31362c312c32392c325d2c2261326638333732302d316437352d346534622d396236352d616133323065626138616666223a5b312c32382c3137342c3234332c3137322c3136372c362c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3137342c3234332c3137322c3136372c362c302c322c3130352c3130302c312c3131392c33362c39372c35302c3130322c35362c35312c35352c35302c34382c34352c34392c3130302c35352c35332c34352c35322c3130312c35322c39382c34352c35372c39382c35342c35332c34352c39372c39372c35312c35302c34382c3130312c39382c39372c35362c39372c3130322c3130322c34302c302c3137342c3234332c3137322c3136372c362c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39392c35362c39392c39382c3130312c3130322c34382c34352c34392c34382c39392c35312c34352c35322c39382c35362c39392c34352c35362c35302c34392c35372c34352c3130312c34392c35362c35302c35312c3130302c34392c34382c35372c39392c3130312c35352c34302c302c3137342c3234332c3137322c3136372c362c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3137342c3234332c3137322c3136372c362c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3137342c3234332c3137322c3136372c362c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c39322c33332c302c3137342c3234332c3137322c3136372c362c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3137342c3234332c3137322c3136372c362c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3137342c3234332c3137322c3136372c362c382c312c33392c302c3137342c3234332c3137322c3136372c362c392c362c38322c37382c3131312c37312c37382c3130372c312c34302c302c3137342c3234332c3137322c3136372c362c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134322c34302c302c3137342c3234332c3137322c3136372c362c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3137342c3234332c3137322c3136372c362c31312c342c3130302c39372c3131362c39372c312c3131392c342c3131342c3131312c3131392c35312c34302c302c3137342c3234332c3137322c3136372c362c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134322c3136312c3137342c3234332c3137322c3136372c362c31302c312c33392c302c3137342c3234332c3137322c3136372c362c392c362c35342c38382c39302c3132312c35362c37382c312c34302c302c3137342c3234332c3137322c3136372c362c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134342c34302c302c3137342c3234332c3137322c3136372c362c31372c342c3130302c39372c3131362c39372c312c3131392c342c35302c3130372c37322c3130352c34302c302c3137342c3234332c3137322c3136372c362c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3137342c3234332c3137322c3136372c362c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134342c3136382c3137342c3234332c3137322c3136372c362c31362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c33392c302c3137342c3234332c3137322c3136372c362c392c362c3130312c3131312c35342c37312c37302c3131342c312c34302c302c3137342c3234332c3137322c3136372c362c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c34302c302c3137342c3234332c3137322c3136372c362c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3137342c3234332c3137322c3136372c362c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3137342c3234332c3137322c3136372c362c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3232302c3131302c3134362c312c3137342c3234332c3137322c3136372c362c332c382c312c31302c312c31362c315d7d2c2264617461626173655f726f775f646f63756d656e745f636f6c6c616273223a7b2230623735393866322d393232382d356130382d626635332d356437366235383261346532223a5b322c32362c3139362c3136312c3233342c3139312c362c302c33392c312c342c3130302c39372c3131362c39372c382c3130302c3131312c39392c3131372c3130392c3130312c3131302c3131362c312c33392c302c3139362c3136312c3233342c3139312c362c302c362c39382c3130382c3131312c39392c3130372c3131352c312c33392c302c3139362c3136312c3233342c3139312c362c302c342c3130392c3130312c3131362c39372c312c33392c302c3139362c3136312c3233342c3139312c362c322c31322c39392c3130342c3130352c3130382c3130302c3131342c3130312c3131302c39352c3130392c39372c3131322c312c33392c302c3139362c3136312c3233342c3139312c362c322c382c3131362c3130312c3132302c3131362c39352c3130392c39372c3131322c312c34302c302c3139362c3136312c3233342c3139312c362c302c372c3131322c39372c3130332c3130312c39352c3130352c3130302c312c3131392c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c33392c302c3139362c3136312c3233342c3139312c362c312c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c312c34302c302c3139362c3136312c3233342c3139312c362c362c322c3130352c3130302c312c3131392c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c34302c302c3139362c3136312c3233342c3139312c362c362c322c3131362c3132312c312c3131392c342c3131322c39372c3130332c3130312c34302c302c3139362c3136312c3233342c3139312c362c362c362c3131322c39372c3131342c3130312c3131302c3131362c312c3131392c302c34302c302c3139362c3136312c3233342c3139312c362c362c382c39392c3130342c3130352c3130382c3130302c3131342c3130312c3131302c312c3131392c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c34302c302c3139362c3136312c3233342c3139312c362c362c342c3130302c39372c3131362c39372c312c3131392c322c3132332c3132352c34302c302c3139362c3136312c3233342c3139312c362c362c31312c3130312c3132302c3131362c3130312c3131342c3131302c39372c3130382c39352c3130352c3130302c312c3132362c34302c302c3139362c3136312c3233342c3139312c362c362c31332c3130312c3132302c3131362c3130312c3131342c3131302c39372c3130382c39352c3131362c3132312c3131322c3130312c312c3132362c33392c302c3139362c3136312c3233342c3139312c362c332c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c302c33392c302c3139362c3136312c3233342c3139312c362c312c31302c3130322c39352c35302c3131332c3131382c38342c34392c37382c3130382c3131392c312c34302c302c3139362c3136312c3233342c3139312c362c31352c322c3130352c3130302c312c3131392c31302c3130322c39352c35302c3131332c3131382c38342c34392c37382c3130382c3131392c34302c302c3139362c3136312c3233342c3139312c362c31352c322c3131362c3132312c312c3131392c392c3131322c39372c3131342c39372c3130332c3131342c39372c3131322c3130342c34302c302c3139362c3136312c3233342c3139312c362c31352c362c3131322c39372c3131342c3130312c3131302c3131362c312c3131392c33362c35332c35332c35342c35352c35342c34392c35362c39382c34352c3130312c35362c35322c35342c34352c35332c3130322c39372c39372c34352c35362c35352c39392c34392c34352c35362c35322c35362c35302c35352c3130302c34392c35372c3130302c39382c35312c35302c34302c302c3139362c3136312c3233342c3139312c362c31352c382c39392c3130342c3130352c3130382c3130302c3131342c3130312c3131302c312c3131392c31302c37362c3131342c37352c3130382c35372c3130322c3130302c36372c3130352c36372c34302c302c3139362c3136312c3233342c3139312c362c31352c342c3130302c39372c3131362c39372c312c3131392c322c3132332c3132352c34302c302c3139362c3136312c3233342c3139312c362c31352c31312c3130312c3132302c3131362c3130312c3131342c3131302c39372c3130382c39352c3130352c3130302c312c3131392c31302c37352c35322c35362c3130302c36372c3130312c39372c37342c38322c36372c34302c302c3139362c3136312c3233342c3139312c362c31352c31332c3130312c3132302c3131362c3130312c3131342c3131302c39372c3130382c39352c3131362c3132312c3131322c3130312c312c3131392c342c3131362c3130312c3132302c3131362c33392c302c3139362c3136312c3233342c3139312c362c332c31302c37362c3131342c37352c3130382c35372c3130322c3130302c36372c3130352c36372c302c382c302c3139362c3136312c3233342c3139312c362c31342c312c3131392c31302c3130322c39352c35302c3131332c3131382c38342c34392c37382c3130382c3131392c33392c302c3139362c3136312c3233342c3139312c362c342c31302c37352c35322c35362c3130302c36372c3130312c39372c37342c38322c36372c322c322c3134332c3231322c3230302c3137392c342c302c312c302c3139362c3136312c3233342c3139312c362c32352c312c3133322c3134332c3231322c3230302c3137392c342c302c31382c3131342c3131312c3131392c34392c33322c3130302c39372c3131362c39372c33322c39392c3131312c3131302c3131362c3130312c3131302c3131362c3131352c312c3134332c3231322c3230302c3137392c342c312c302c315d7d2c2276697369626c655f64617461626173655f766965775f696473223a5b2238613366633632392d616431332d343265662d613264322d663231636562346331626537225d2c2264617461626173655f72656c6174696f6e73223a7b2265376131383830322d313539342d346434342d393534322d333863376234373165626332223a2235666336363966612d383836372d346636642d393866312d636533383735393765616264222c2264306633333166312d373466632d346136302d383139382d623639616638396162633961223a2231376365386333652d386633352d346631622d393835612d373936346564626336616530222c2233393163366132312d633034622d343039622d383234302d653532393361353162343636223a2262623232313137352d313464612d346130352d613039642d353935653432643233353066222c2238326434313761652d386561322d343333392d613661302d623737383937626530303039223a2233623562616633622d383765372d346565322d613037382d326263376664666233663533222c2235393764343563382d353435302d346564332d383533382d376666653963383465363335223a2261323331663763392d366432662d343666322d396663312d633362653763616636616335222c2235346537366136652d303535342d346262332d623466352d646339326337373530653766223a2230353537303765642d313838392d343062342d386464622d363938306263636633616238222c2235633863626566302d313063332d346238632d383231392d653138323364313039636537223a2238613366633632392d616431332d343265662d613264322d663231636562346331626537227d7d"; + +pub const DB_REL_SELF_META: &str = r#" +{ + "view": { + "icon": { + "ty": 0, + "value": "🥵" + }, + "name": "self_ref_db", + "extra": null, + "layout": 1, + "view_id": "18d72589-80d7-4041-9342-5d572facb7c9", + "created_at": 1726536202, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1726536217 + }, + "child_views": [], + "ancestor_views": [ + { + "icon": null, + "name": "Workspace", + "extra": null, + "layout": 0, + "view_id": "d69262ac-87e1-41e0-af26-3841c598c0c6", + "created_at": 1725353187, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725353187 + }, + { + "icon": null, + "name": "somespac", + "extra": "{\"is_space\":true,\"space_icon\":\"interface_essential/home-3\",\"space_icon_color\":\"0xFFA34AFD\",\"space_permission\":0,\"space_created_at\":1725353187638}", + "layout": 0, + "view_id": "e53a1ec9-5a29-4b3c-9c04-4d33eed40561", + "created_at": 1726536202, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1726536202 + }, + { + "icon": { + "ty": 0, + "value": "🥵" + }, + "name": "self_ref_db", + "extra": null, + "layout": 1, + "view_id": "18d72589-80d7-4041-9342-5d572facb7c9", + "created_at": 1726536202, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1726536217 + } + ] +} +"#; + +pub const DB_REL_SELF_HEX: &str = "7b2264617461626173655f636f6c6c6162223a5b322c352c3233342c3234312c3134372c3234352c362c302c33392c312c342c3130302c39372c3131362c39372c382c3130302c39372c3131362c39372c39382c39372c3131352c3130312c312c33332c302c3233342c3234312c3134372c3234352c362c302c322c3130352c3130302c312c33392c302c3233342c3234312c3134372c3234352c362c302c362c3130322c3130352c3130312c3130382c3130302c3131352c312c33392c302c3233342c3234312c3134372c3234352c362c302c352c3131382c3130352c3130312c3131392c3131352c312c33392c302c3233342c3234312c3134372c3234352c362c302c352c3130392c3130312c3131362c39372c3131352c312c3130322c3235352c3232382c3232352c37362c302c3136382c3233342c3234312c3134372c3234352c362c312c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c34302c302c3233342c3234312c3134372c3234352c362c342c332c3130352c3130352c3130302c312c3131392c33362c34392c35362c3130302c35352c35302c35332c35362c35372c34352c35362c34382c3130302c35352c34352c35322c34382c35322c34392c34352c35372c35312c35322c35302c34352c35332c3130302c35332c35352c35302c3130322c39372c39392c39382c35352c39392c35372c33392c302c3233342c3234312c3134372c3234352c362c322c362c37362c3130332c3130342c37362c39392c3132322c312c34302c302c3235352c3232382c3232352c37362c322c322c3130352c3130302c312c3131392c362c37362c3130332c3130342c37362c39392c3132322c34302c302c3235352c3232382c3232352c37362c322c342c3131302c39372c3130392c3130312c312c3131392c342c37382c39372c3130392c3130312c34302c302c3235352c3232382c3232352c37362c322c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c34302c302c3235352c3232382c3232352c37362c322c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c34302c302c3235352c3232382c3232352c37362c322c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132302c34302c302c3235352c3232382c3232352c37362c322c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3235352c3232382c3232352c37362c322c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235352c3232382c3232352c37362c392c312c34382c312c34302c302c3235352c3232382c3232352c37362c31302c342c3130302c39372c3131362c39372c312c3131392c302c33392c302c3233342c3234312c3134372c3234352c362c322c362c3131322c3131302c37322c3130352c38322c39352c312c34302c302c3235352c3232382c3232352c37362c31322c322c3130352c3130302c312c3131392c362c3131322c3131302c37322c3130352c38322c39352c34302c302c3235352c3232382c3232352c37362c31322c342c3131302c39372c3130392c3130312c312c3131392c342c38342c3132312c3131322c3130312c34302c302c3235352c3232382c3232352c37362c31322c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c33332c302c3235352c3232382c3232352c37362c31322c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c34302c302c3235352c3232382c3232352c37362c31322c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3235352c3232382c3232352c37362c31322c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c332c33392c302c3235352c3232382c3232352c37362c31322c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235352c3232382c3232352c37362c31392c312c35312c312c33332c302c3235352c3232382c3232352c37362c32302c372c39392c3131312c3131302c3131362c3130312c3131302c3131362c312c33392c302c3233342c3234312c3134372c3234352c362c322c362c3130332c35332c35322c37362c3131302c3131332c312c34302c302c3235352c3232382c3232352c37362c32322c322c3130352c3130302c312c3131392c362c3130332c35332c35322c37362c3131302c3131332c34302c302c3235352c3232382c3232352c37362c32322c342c3131302c39372c3130392c3130312c312c3131392c342c36382c3131312c3131302c3130312c34302c302c3235352c3232382c3232352c37362c32322c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c34302c302c3235352c3232382c3232352c37362c32322c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c34302c302c3235352c3232382c3232352c37362c32322c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3235352c3232382c3232352c37362c32322c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c352c33392c302c3235352c3232382c3232352c37362c32322c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235352c3232382c3232352c37362c32392c312c35332c312c33392c302c3233342c3234312c3134372c3234352c362c332c33362c34392c35362c3130302c35352c35302c35332c35362c35372c34352c35362c34382c3130302c35352c34352c35322c34382c35322c34392c34352c35372c35312c35322c35302c34352c35332c3130302c35332c35352c35302c3130322c39372c39392c39382c35352c39392c35372c312c34302c302c3235352c3232382c3232352c37362c33312c322c3130352c3130302c312c3131392c33362c34392c35362c3130302c35352c35302c35332c35362c35372c34352c35362c34382c3130302c35352c34352c35322c34382c35322c34392c34352c35372c35312c35322c35302c34352c35332c3130302c35332c35352c35302c3130322c39372c39392c39382c35352c39392c35372c34302c302c3235352c3232382c3232352c37362c33312c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c34302c302c3235352c3232382c3232352c37362c33312c342c3131302c39372c3130392c3130312c312c3131392c382c38352c3131302c3131362c3130352c3131362c3130382c3130312c3130302c34302c302c3235352c3232382c3232352c37362c33312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c33332c302c3235352c3232382c3232352c37362c33312c31312c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c39352c39372c3131362c312c33392c302c3235352c3232382c3232352c37362c33312c31352c3130382c39372c3132312c3131312c3131372c3131362c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c34302c302c3235352c3232382c3232352c37362c33312c362c3130382c39372c3132312c3131312c3131372c3131362c312c3132322c302c302c302c302c302c302c302c302c33392c302c3235352c3232382c3232352c37362c33312c31342c3130322c3130352c3130312c3130382c3130302c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c33392c302c3235352c3232382c3232352c37362c33392c362c37362c3130332c3130342c37362c39392c3132322c312c34302c302c3235352c3232382c3232352c37362c34302c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3235352c3232382c3232352c37362c34302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3235352c3232382c3232352c37362c34302c342c3131392c3131342c39372c3131322c312c3132302c33392c302c3235352c3232382c3232352c37362c33392c362c3131322c3131302c37322c3130352c38322c39352c312c34302c302c3235352c3232382c3232352c37362c34342c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3235352c3232382c3232352c37362c34342c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3235352c3232382c3232352c37362c34342c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3235352c3232382c3232352c37362c33392c362c3130332c35332c35322c37362c3131302c3131332c312c34302c302c3235352c3232382c3232352c37362c34382c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3235352c3232382c3232352c37362c34382c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3235352c3232382c3232352c37362c34382c342c3131392c3131342c39372c3131322c312c3132302c33392c302c3235352c3232382c3232352c37362c33312c372c3130322c3130352c3130382c3131362c3130312c3131342c3131352c302c33392c302c3235352c3232382c3232352c37362c33312c362c3130332c3131342c3131312c3131372c3131322c3131352c302c33392c302c3235352c3232382c3232352c37362c33312c352c3131352c3131312c3131342c3131362c3131352c302c33392c302c3235352c3232382c3232352c37362c33312c31322c3130322c3130352c3130312c3130382c3130302c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3235352c3232382c3232352c37362c35352c332c3131382c312c322c3130352c3130302c3131392c362c37362c3130332c3130342c37362c39392c3132322c3131382c312c322c3130352c3130302c3131392c362c3131322c3131302c37322c3130352c38322c39352c3131382c312c322c3130352c3130302c3131392c362c3130332c35332c35322c37362c3131302c3131332c33392c302c3235352c3232382c3232352c37362c33312c31302c3131342c3131312c3131392c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3235352c3232382c3232352c37362c35392c332c3131382c322c322c3130352c3130302c3131392c33362c35352c35312c39382c3130312c3130302c35362c3130312c39372c34352c35372c35302c35312c34382c34352c35322c3130322c39382c35332c34352c35372c35352c35362c34392c34352c34392c34382c35302c35332c35312c35342c3130302c35322c3130302c39382c35322c35372c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c35362c35372c35342c35362c39382c35352c3130302c39392c34352c35352c35322c35352c39372c34352c35322c39372c35342c34382c34352c39372c3130312c35332c3130312c34352c35342c34392c3130312c35322c3130302c35322c35372c35302c3130312c39372c3130302c35332c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c35362c35322c3130322c35322c35322c35332c35322c34382c34352c35352c35332c3130322c3130302c34352c35322c35342c35332c35322c34352c39372c35362c3130322c3130302c34352c34392c35322c3130322c35362c35352c3130302c34392c35322c35372c35352c35302c35312c3136312c3235352c3232382c3232352c37362c31362c312c3136312c3235352c3232382c3232352c37362c32312c312c3136312c3235352c3232382c3232352c37362c36332c312c3136312c3235352c3232382c3232352c37362c36342c312c3136382c3235352c3232382c3232352c37362c36352c312c3132322c302c302c302c302c3130322c3233322c3231382c33312c3136382c3235352c3232382c3232352c37362c36362c312c3131392c3136322c312c3132332c33342c3131312c3131322c3131362c3130352c3131312c3131302c3131352c33342c35382c39312c3132332c33342c3130352c3130302c33342c35382c33342c34392c38372c3131302c36372c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c39392c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c37362c3130352c3130332c3130342c3131362c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c37392c34382c37322c38352c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130382c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c37312c37372c3132312c38342c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130342c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3131372c3131342c3131322c3130382c3130312c33342c3132352c39332c34342c33342c3130302c3130352c3131352c39372c39382c3130382c3130312c39352c39392c3131312c3130382c3131312c3131342c33342c35382c3130322c39372c3130382c3131352c3130312c3132352c3136312c3235352c3232382c3232352c37362c33362c312c3133362c3235352c3232382c3232352c37362c35382c312c3131382c312c322c3130352c3130302c3131392c362c3131302c3130332c37372c38342c37392c3132312c33392c302c3235352c3232382c3232352c37362c33392c362c3131302c3130332c37372c38342c37392c3132312c312c34302c302c3235352c3232382c3232352c37362c37312c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3233342c3234312c3134372c3234352c362c322c362c3131302c3130332c37372c38342c37392c3132312c312c34302c302c3235352c3232382c3232352c37362c37332c322c3130352c3130302c312c3131392c362c3131302c3130332c37372c38342c37392c3132312c33332c302c3235352c3232382c3232352c37362c37332c342c3131302c39372c3130392c3130312c312c34302c302c3235352c3232382c3232352c37362c37332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33342c33332c302c3235352c3232382c3232352c37362c37332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c34302c302c3235352c3232382c3232352c37362c37332c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c33332c302c3235352c3232382c3232352c37362c37332c322c3131362c3132312c312c33392c302c3235352c3232382c3232352c37362c37332c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235352c3232382c3232352c37362c38302c312c34382c312c34302c302c3235352c3232382c3232352c37362c38312c342c3130302c39372c3131362c39372c312c3131392c302c3136312c3235352c3232382c3232352c37362c37372c312c3136312c3235352c3232382c3232352c37362c37352c312c3136312c3235352c3232382c3232352c37362c38332c312c3136312c3235352c3232382c3232352c37362c38342c312c3136312c3235352c3232382c3232352c37362c38352c312c3136382c3235352c3232382c3232352c37362c37392c312c3132322c302c302c302c302c302c302c302c31302c33392c302c3235352c3232382c3232352c37362c38302c322c34392c34382c312c33332c302c3235352c3232382c3232352c37362c38392c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3136312c3235352c3232382c3232352c37362c38372c312c34302c302c3235352c3232382c3232352c37362c38312c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c302c3136382c3235352c3232382c3232352c37362c36392c312c3132322c302c302c302c302c3130322c3233322c3231382c33382c3136312c3235352c3232382c3232352c37362c39312c312c3136312c3235352c3232382c3232352c37362c38362c312c3136312c3235352c3232382c3232352c37362c39342c312c3136312c3235352c3232382c3232352c37362c39352c312c3136312c3235352c3232382c3232352c37362c39362c312c3136312c3235352c3232382c3232352c37362c39372c312c3136312c3235352c3232382c3232352c37362c39382c312c3136312c3235352c3232382c3232352c37362c39392c312c3136312c3235352c3232382c3232352c37362c3130302c312c3136382c3235352c3232382c3232352c37362c3130312c312c3131392c332c3131342c3130312c3130382c3136382c3235352c3232382c3232352c37362c3130322c312c3132322c302c302c302c302c3130322c3233322c3231382c34362c3136382c3235352c3232382c3232352c37362c39302c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c322c3233342c3234312c3134372c3234352c362c312c312c312c3235352c3232382c3232352c37362c31312c31362c312c32312c312c33362c312c36332c342c36392c312c37352c312c37372c312c37392c312c38332c352c39302c322c39342c395d2c2264617461626173655f726f775f636f6c6c616273223a7b2238346634343534302d373566642d343635342d613866642d313466383764313439373233223a5b322c32392c3231382c3135342c3233302c3138342c31322c302c3136312c3235332c3233302c3133362c3234382c382c382c312c33392c302c3235332c3233302c3133362c3234382c382c392c362c37362c3130332c3130342c37362c39392c3132322c312c34302c302c3231382c3135342c3233302c3138342c31322c312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c32352c34302c302c3231382c3135342c3233302c3138342c31322c312c342c3130302c39372c3131362c39372c312c3131392c312c39392c34302c302c3231382c3135342c3233302c3138342c31322c312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3231382c3135342c3233302c3138342c31322c312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c32352c3136312c3231382c3135342c3233302c3138342c31322c302c312c33392c302c3235332c3233302c3133362c3234382c382c392c362c3131322c3131302c37322c3130352c38322c39352c312c34302c302c3231382c3135342c3233302c3138342c31322c372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33312c34302c302c3231382c3135342c3233302c3138342c31322c372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3231382c3135342c3233302c3138342c31322c372c342c3130302c39372c3131362c39372c312c3131392c342c34392c38372c3131302c36372c34302c302c3231382c3135342c3233302c3138342c31322c372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c33312c3136312c3231382c3135342c3233302c3138342c31322c362c312c33392c302c3235332c3233302c3133362c3234382c382c392c362c3130332c35332c35322c37362c3131302c3131332c312c34302c302c3231382c3135342c3233302c3138342c31322c31332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33332c34302c302c3231382c3135342c3233302c3138342c31322c31332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3231382c3135342c3233302c3138342c31322c31332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3231382c3135342c3233302c3138342c31322c31332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c33332c3136312c3231382c3135342c3233302c3138342c31322c31322c312c33392c302c3235332c3233302c3133362c3234382c382c392c362c3131302c3130332c37372c38342c37392c3132312c312c34302c302c3231382c3135342c3233302c3138342c31322c31392c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c35342c33332c302c3231382c3135342c3233302c3138342c31322c31392c342c3130302c39372c3131362c39372c312c302c312c34302c302c3231382c3135342c3233302c3138342c31322c31392c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c31302c33332c302c3231382c3135342c3233302c3138342c31322c31392c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3136382c3231382c3135342c3233302c3138342c31322c31382c312c3132322c302c302c302c302c3130322c3233322c3231382c35362c3136372c3231382c3135342c3233302c3138342c31322c32312c302c382c302c3231382c3135342c3233302c3138342c31322c32362c322c3131392c33362c35362c35372c35342c35362c39382c35352c3130302c39392c34352c35352c35322c35352c39372c34352c35322c39372c35342c34382c34352c39372c3130312c35332c3130312c34352c35342c34392c3130312c35322c3130302c35322c35372c35302c3130312c39372c3130302c35332c3131392c33362c35362c35322c3130322c35322c35322c35332c35322c34382c34352c35352c35332c3130322c3130302c34352c35322c35342c35332c35322c34352c39372c35362c3130322c3130302c34352c34392c35322c3130322c35362c35352c3130302c34392c35322c35372c35352c35302c35312c3136382c3231382c3135342c3233302c3138342c31322c32342c312c3132322c302c302c302c302c3130322c3233322c3231382c35362c31302c3235332c3233302c3133362c3234382c382c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3235332c3233302c3133362c3234382c382c302c322c3130352c3130302c312c3131392c33362c35362c35322c3130322c35322c35322c35332c35322c34382c34352c35352c35332c3130322c3130302c34352c35322c35342c35332c35322c34352c39372c35362c3130322c3130302c34352c34392c35322c3130322c35362c35352c3130302c34392c35322c35372c35352c35302c35312c34302c302c3235332c3233302c3133362c3234382c382c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c34302c302c3235332c3233302c3133362c3234382c382c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3235332c3233302c3133362c3234382c382c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3235332c3233302c3133362c3234382c382c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c33332c302c3235332c3233302c3133362c3234382c382c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3235332c3233302c3133362c3234382c382c302c352c39392c3130312c3130382c3130382c3131352c312c322c3235332c3233302c3133362c3234382c382c312c382c312c3231382c3135342c3233302c3138342c31322c362c302c312c362c312c31322c312c31382c312c32312c322c32342c315d2c2237336265643865612d393233302d346662352d393738312d313032353336643464623439223a5b322c32392c3136312c3133312c3135352c3235332c31332c302c3136312c3139332c3232392c3133372c3134322c312c382c312c33392c302c3139332c3232392c3133372c3134322c312c392c362c37362c3130332c3130342c37362c39392c3132322c312c34302c302c3136312c3133312c3135352c3235332c31332c312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c32322c34302c302c3136312c3133312c3135352c3235332c31332c312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3136312c3133312c3135352c3235332c31332c312c342c3130302c39372c3131362c39372c312c3131392c312c3130382c34302c302c3136312c3133312c3135352c3235332c31332c312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c32322c3136312c3136312c3133312c3135352c3235332c31332c302c312c33392c302c3139332c3232392c3133372c3134322c312c392c362c3131322c3131302c37322c3130352c38322c39352c312c34302c302c3136312c3133312c3135352c3235332c31332c372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c32382c34302c302c3136312c3133312c3135352c3235332c31332c372c342c3130302c39372c3131362c39372c312c3131392c342c37312c37372c3132312c38342c34302c302c3136312c3133312c3135352c3235332c31332c372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3136312c3133312c3135352c3235332c31332c372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c32382c3136312c3136312c3133312c3135352c3235332c31332c362c312c33392c302c3139332c3232392c3133372c3134322c312c392c362c3130332c35332c35322c37362c3131302c3131332c312c34302c302c3136312c3133312c3135352c3235332c31332c31332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33322c34302c302c3136312c3133312c3135352c3235332c31332c31332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3136312c3133312c3135352c3235332c31332c31332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3136312c3133312c3135352c3235332c31332c31332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c33322c3136312c3136312c3133312c3135352c3235332c31332c31322c312c33392c302c3139332c3232392c3133372c3134322c312c392c362c3131302c3130332c37372c38342c37392c3132312c312c34302c302c3136312c3133312c3135352c3235332c31332c31392c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c34372c34302c302c3136312c3133312c3135352c3235332c31332c31392c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c31302c33332c302c3136312c3133312c3135352c3235332c31332c31392c342c3130302c39372c3131362c39372c312c302c312c33332c302c3136312c3133312c3135352c3235332c31332c31392c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3136382c3136312c3133312c3135352c3235332c31332c31382c312c3132322c302c302c302c302c3130322c3233322c3231382c34382c3136372c3136312c3133312c3135352c3235332c31332c32322c302c382c302c3136312c3133312c3135352c3235332c31332c32362c322c3131392c33362c35362c35372c35342c35362c39382c35352c3130302c39392c34352c35352c35322c35352c39372c34352c35322c39372c35342c34382c34352c39372c3130312c35332c3130312c34352c35342c34392c3130312c35322c3130302c35322c35372c35302c3130312c39372c3130302c35332c3131392c33362c35352c35312c39382c3130312c3130302c35362c3130312c39372c34352c35372c35302c35312c34382c34352c35322c3130322c39382c35332c34352c35372c35352c35362c34392c34352c34392c34382c35302c35332c35312c35342c3130302c35322c3130302c39382c35322c35372c3136382c3136312c3133312c3135352c3235332c31332c32342c312c3132322c302c302c302c302c3130322c3233322c3231382c34382c31302c3139332c3232392c3133372c3134322c312c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3139332c3232392c3133372c3134322c312c302c322c3130352c3130302c312c3131392c33362c35352c35312c39382c3130312c3130302c35362c3130312c39372c34352c35372c35302c35312c34382c34352c35322c3130322c39382c35332c34352c35372c35352c35362c34392c34352c34392c34382c35302c35332c35312c35342c3130302c35322c3130302c39382c35322c35372c34302c302c3139332c3232392c3133372c3134322c312c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c34302c302c3139332c3232392c3133372c3134322c312c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3139332c3232392c3133372c3134322c312c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3139332c3232392c3133372c3134322c312c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c33332c302c3139332c3232392c3133372c3134322c312c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3139332c3232392c3133372c3134322c312c302c352c39392c3130312c3130382c3130382c3131352c312c322c3139332c3232392c3133372c3134322c312c312c382c312c3136312c3133312c3135352c3235332c31332c352c302c312c362c312c31322c312c31382c312c32322c335d2c2238393638623764632d373437612d346136302d616535652d363165346434393265616435223a5b322c32352c3230322c3135302c3139352c3233362c31312c302c3136312c3133362c3232302c3136332c3139312c342c382c312c33392c302c3133362c3232302c3136332c3139312c342c392c362c37362c3130332c3130342c37362c39392c3132322c312c34302c302c3230322c3135302c3139352c3233362c31312c312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c32332c34302c302c3230322c3135302c3139352c3233362c31312c312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3230322c3135302c3139352c3233362c31312c312c342c3130302c39372c3131362c39372c312c3131392c312c3130342c34302c302c3230322c3135302c3139352c3233362c31312c312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c32332c3136312c3230322c3135302c3139352c3233362c31312c302c312c33392c302c3133362c3232302c3136332c3139312c342c392c362c3131322c3131302c37322c3130352c38322c39352c312c34302c302c3230322c3135302c3139352c3233362c31312c372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33302c34302c302c3230322c3135302c3139352c3233362c31312c372c342c3130302c39372c3131362c39372c312c3131392c342c37392c34382c37322c38352c34302c302c3230322c3135302c3139352c3233362c31312c372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3230322c3135302c3139352c3233362c31312c372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c33302c3136312c3230322c3135302c3139352c3233362c31312c362c312c33392c302c3133362c3232302c3136332c3139312c342c392c362c3130332c35332c35322c37362c3131302c3131332c312c34302c302c3230322c3135302c3139352c3233362c31312c31332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c33332c34302c302c3230322c3135302c3139352c3233362c31312c31332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3230322c3135302c3139352c3233362c31312c31332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3230322c3135302c3139352c3233362c31312c31332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c33332c3136382c3230322c3135302c3139352c3233362c31312c31322c312c3132322c302c302c302c302c3130322c3233322c3231382c35302c33392c302c3133362c3232302c3136332c3139312c342c392c362c3131302c3130332c37372c38342c37392c3132312c312c34302c302c3230322c3135302c3139352c3233362c31312c31392c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c35302c33392c302c3230322c3135302c3139352c3233362c31312c31392c342c3130302c39372c3131362c39372c302c382c302c3230322c3135302c3139352c3233362c31312c32312c312c3131392c33362c35362c35322c3130322c35322c35322c35332c35322c34382c34352c35352c35332c3130322c3130302c34352c35322c35342c35332c35322c34352c39372c35362c3130322c3130302c34352c34392c35322c3130322c35362c35352c3130302c34392c35322c35372c35352c35302c35312c34302c302c3230322c3135302c3139352c3233362c31312c31392c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c31302c34302c302c3230322c3135302c3139352c3233362c31312c31392c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3233322c3231382c35302c31302c3133362c3232302c3136332c3139312c342c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3133362c3232302c3136332c3139312c342c302c322c3130352c3130302c312c3131392c33362c35362c35372c35342c35362c39382c35352c3130302c39392c34352c35352c35322c35352c39372c34352c35322c39372c35342c34382c34352c39372c3130312c35332c3130312c34352c35342c34392c3130312c35322c3130302c35322c35372c35302c3130312c39372c3130302c35332c34302c302c3133362c3232302c3136332c3139312c342c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35302c39392c35312c35362c34392c35342c35362c35362c34352c39382c35312c34382c35352c34352c35322c34382c35372c39382c34352c39382c35302c34392c35362c34352c35302c34382c3130312c35342c35372c39392c34382c35362c3130322c34392c34382c35342c34302c302c3133362c3232302c3136332c3139312c342c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3133362c3232302c3136332c3139312c342c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3133362c3232302c3136332c3139312c342c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3233322c3231382c31302c33332c302c3133362c3232302c3136332c3139312c342c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3133362c3232302c3136332c3139312c342c302c352c39392c3130312c3130382c3130382c3131352c312c322c3133362c3232302c3136332c3139312c342c312c382c312c3230322c3135302c3139352c3233362c31312c332c302c312c362c312c31322c315d7d2c2264617461626173655f726f775f646f63756d656e745f636f6c6c616273223a7b7d2c2276697369626c655f64617461626173655f766965775f696473223a5b2231386437323538392d383064372d343034312d393334322d356435373266616362376339225d2c2264617461626173655f72656c6174696f6e73223a7b2265376131383830322d313539342d346434342d393534322d333863376234373165626332223a2235666336363966612d383836372d346636642d393866312d636533383735393765616264222c2238326434313761652d386561322d343333392d613661302d623737383937626530303039223a2233623562616633622d383765372d346565322d613037382d326263376664666233663533222c2233393163366132312d633034622d343039622d383234302d653532393361353162343636223a2262623232313137352d313464612d346130352d613039642d353935653432643233353066222c2264306633333166312d373466632d346136302d383139382d623639616638396162633961223a2231376365386333652d386633352d346631622d393835612d373936346564626336616530222c2235633863626566302d313063332d346238632d383231392d653138323364313039636537223a2238613366633632392d616431332d343265662d613264322d663231636562346331626537222c2237323139376235322d666530642d343962382d623438662d616136323732633032393666223a2264666630393733632d393034382d346532332d393639372d303463623134633531386231222c2232613437376165652d613731372d346364302d623538392d373561333337353162393333223a2265376533613336312d326666612d346264642d383666382d653438663831316165336232222c2235393764343563382d353435302d346564332d383533382d376666653963383465363335223a2261323331663763392d366432662d343666322d396663312d633362653763616636616335222c2235346537366136652d303535342d346262332d623466352d646339326337373530653766223a2230353537303765642d313838392d343062342d386464622d363938306263636633616238222c2232633338313638382d623330372d343039622d623231382d323065363963303866313036223a2231386437323538392d383064372d343034312d393334322d356435373266616362376339227d7d";