From dbbb1eadeb4326a8f30f8430e58521612f50286a Mon Sep 17 00:00:00 2001 From: Greenmask CI Date: Sat, 16 Nov 2024 21:33:09 +0000 Subject: [PATCH] Deployed 63dc967 to v0.2.5 with MkDocs 1.6.1 and mike 2.1.3 --- latest | 2 +- v0.2.5/404.html | 3088 ++++++++ v0.2.5/architecture/index.html | 3418 +++++++++ v0.2.5/assets/built_in_transformers/img.png | Bin 0 -> 16273 bytes .../built_in_transformers/orders-schema.png | Bin 0 -> 20480 bytes .../person-person-schema.png | Bin 0 -> 45160 bytes v0.2.5/assets/images/favicon.png | Bin 0 -> 1870 bytes v0.2.5/assets/images/social/architecture.png | Bin 0 -> 25054 bytes .../custom_functions/core_functions.png | Bin 0 -> 35176 bytes .../custom_functions/faker_function.png | Bin 0 -> 27563 bytes .../custom_functions/index.png | Bin 0 -> 35677 bytes .../advanced_transformers/index.png | Bin 0 -> 35745 bytes .../advanced_transformers/json.png | Bin 0 -> 22432 bytes .../advanced_transformers/template.png | Bin 0 -> 23470 bytes .../advanced_transformers/template_record.png | Bin 0 -> 29465 bytes .../dynamic_parameters.png | Bin 0 -> 33188 bytes .../social/built_in_transformers/index.png | Bin 0 -> 30627 bytes .../parameters_templating.png | Bin 0 -> 33544 bytes .../standard_transformers/cmd.png | Bin 0 -> 21868 bytes .../standard_transformers/dict.png | Bin 0 -> 21099 bytes .../standard_transformers/hash.png | Bin 0 -> 21477 bytes .../standard_transformers/index.png | Bin 0 -> 33658 bytes .../standard_transformers/masking.png | Bin 0 -> 26608 bytes .../standard_transformers/noise_date.png | Bin 0 -> 27352 bytes .../standard_transformers/noise_float.png | Bin 0 -> 26293 bytes .../standard_transformers/noise_int.png | Bin 0 -> 25062 bytes .../standard_transformers/noise_numeric.png | Bin 0 -> 27901 bytes .../random_amount_with_currency.png | Bin 0 -> 30364 bytes .../standard_transformers/random_bool.png | Bin 0 -> 26592 bytes .../random_cc_number.png | Bin 0 -> 31446 bytes .../standard_transformers/random_cc_type.png | Bin 0 -> 31095 bytes .../standard_transformers/random_century.png | Bin 0 -> 30883 bytes .../standard_transformers/random_choice.png | Bin 0 -> 30601 bytes .../standard_transformers/random_currency.png | Bin 0 -> 31976 bytes .../standard_transformers/random_date.png | Bin 0 -> 28049 bytes .../random_day_of_month.png | Bin 0 -> 32494 bytes .../random_day_of_week.png | Bin 0 -> 34758 bytes .../random_domain_name.png | Bin 0 -> 28152 bytes .../random_e164_phone_number.png | Bin 0 -> 31201 bytes .../standard_transformers/random_email.png | Bin 0 -> 25656 bytes .../standard_transformers/random_float.png | Bin 0 -> 25743 bytes .../standard_transformers/random_int.png | Bin 0 -> 25300 bytes .../standard_transformers/random_ip.png | Bin 0 -> 25733 bytes .../standard_transformers/random_latitude.png | Bin 0 -> 28064 bytes .../random_longitude.png | Bin 0 -> 29831 bytes .../standard_transformers/random_mac.png | Bin 0 -> 28165 bytes .../random_month_name.png | Bin 0 -> 29508 bytes .../standard_transformers/random_numeric.png | Bin 0 -> 29946 bytes .../random_paragraph.png | Bin 0 -> 30036 bytes .../standard_transformers/random_password.png | Bin 0 -> 30310 bytes .../standard_transformers/random_person.png | Bin 0 -> 29471 bytes .../random_phone_number.png | Bin 0 -> 29752 bytes .../standard_transformers/random_sentence.png | Bin 0 -> 30816 bytes .../standard_transformers/random_string.png | Bin 0 -> 30190 bytes .../standard_transformers/random_timezone.png | Bin 0 -> 28045 bytes .../random_toll_free_phone_number.png | Bin 0 -> 28770 bytes .../random_unix_timestamp.png | Bin 0 -> 31458 bytes .../standard_transformers/random_url.png | Bin 0 -> 26029 bytes .../standard_transformers/random_username.png | Bin 0 -> 29786 bytes .../standard_transformers/random_uuid.png | Bin 0 -> 26775 bytes .../standard_transformers/random_word.png | Bin 0 -> 27893 bytes .../random_year_string.png | Bin 0 -> 32965 bytes .../standard_transformers/real_address.png | Bin 0 -> 27746 bytes .../standard_transformers/regexp_replace.png | Bin 0 -> 28853 bytes .../standard_transformers/replace.png | Bin 0 -> 24830 bytes .../standard_transformers/set_null.png | Bin 0 -> 23491 bytes .../transformation_condition.png | Bin 0 -> 33752 bytes .../transformation_engines.png | Bin 0 -> 32665 bytes .../transformation_inheritance.png | Bin 0 -> 33006 bytes .../assets/images/social/commands/delete.png | Bin 0 -> 21070 bytes v0.2.5/assets/images/social/commands/dump.png | Bin 0 -> 21479 bytes .../assets/images/social/commands/index.png | Bin 0 -> 27472 bytes .../images/social/commands/list-dumps.png | Bin 0 -> 24416 bytes .../social/commands/list-transformers.png | Bin 0 -> 27871 bytes .../assets/images/social/commands/restore.png | Bin 0 -> 23632 bytes .../images/social/commands/show-dump.png | Bin 0 -> 27339 bytes .../social/commands/show-transformer.png | Bin 0 -> 29736 bytes .../images/social/commands/validate.png | Bin 0 -> 23976 bytes v0.2.5/assets/images/social/configuration.png | Bin 0 -> 27698 bytes .../assets/images/social/database_subset.png | Bin 0 -> 26956 bytes v0.2.5/assets/images/social/index.png | Bin 0 -> 22958 bytes v0.2.5/assets/images/social/installation.png | Bin 0 -> 24345 bytes v0.2.5/assets/images/social/playground.png | Bin 0 -> 27782 bytes .../social/release_notes/greenmask_0_1_0.png | Bin 0 -> 30033 bytes .../release_notes/greenmask_0_1_0_beta.png | Bin 0 -> 34353 bytes .../social/release_notes/greenmask_0_1_1.png | Bin 0 -> 29886 bytes .../social/release_notes/greenmask_0_1_10.png | Bin 0 -> 30097 bytes .../social/release_notes/greenmask_0_1_11.png | Bin 0 -> 29959 bytes .../social/release_notes/greenmask_0_1_12.png | Bin 0 -> 31392 bytes .../social/release_notes/greenmask_0_1_13.png | Bin 0 -> 31763 bytes .../social/release_notes/greenmask_0_1_14.png | Bin 0 -> 30751 bytes .../social/release_notes/greenmask_0_1_2.png | Bin 0 -> 31313 bytes .../social/release_notes/greenmask_0_1_3.png | Bin 0 -> 31696 bytes .../social/release_notes/greenmask_0_1_4.png | Bin 0 -> 30680 bytes .../social/release_notes/greenmask_0_1_5.png | Bin 0 -> 31455 bytes .../social/release_notes/greenmask_0_1_6.png | Bin 0 -> 31662 bytes .../social/release_notes/greenmask_0_1_7.png | Bin 0 -> 30765 bytes .../social/release_notes/greenmask_0_1_8.png | Bin 0 -> 31942 bytes .../social/release_notes/greenmask_0_1_9.png | Bin 0 -> 31701 bytes .../social/release_notes/greenmask_0_2_0.png | Bin 0 -> 31130 bytes .../release_notes/greenmask_0_2_0_b1.png | Bin 0 -> 32557 bytes .../release_notes/greenmask_0_2_0_b2.png | Bin 0 -> 32358 bytes .../social/release_notes/greenmask_0_2_1.png | Bin 0 -> 31328 bytes .../social/release_notes/greenmask_0_2_2.png | Bin 0 -> 31087 bytes .../social/release_notes/greenmask_0_2_3.png | Bin 0 -> 32696 bytes .../social/release_notes/greenmask_0_2_4.png | Bin 0 -> 31802 bytes .../social/release_notes/greenmask_0_2_5.png | Bin 0 -> 32547 bytes .../assets/javascripts/bundle.525ec568.min.js | 16 + .../javascripts/bundle.525ec568.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + v0.2.5/assets/javascripts/lunr/tinyseg.js | 206 + v0.2.5/assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.6ce7567c.min.js | 42 + .../workers/search.6ce7567c.min.js.map | 7 + v0.2.5/assets/list_dumps_screen.png | Bin 0 -> 21058 bytes v0.2.5/assets/list_transformers_screen_1.png | Bin 0 -> 107840 bytes v0.2.5/assets/list_transformers_screen_2.png | Bin 0 -> 135879 bytes v0.2.5/assets/logo.png | Bin 0 -> 9255 bytes v0.2.5/assets/schema.png | Bin 0 -> 52037 bytes v0.2.5/assets/show_transformer.png | Bin 0 -> 308384 bytes .../assets/stylesheets/main.8c3ca2c6.min.css | 1 + .../stylesheets/main.8c3ca2c6.min.css.map | 1 + .../stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + v0.2.5/assets/validate_horizontal_diff.png | Bin 0 -> 31451 bytes v0.2.5/assets/validate_vertical_diff.png | Bin 0 -> 99420 bytes .../core_functions/index.html | 3997 ++++++++++ .../faker_function/index.html | 3703 +++++++++ .../custom_functions/index.html | 3228 ++++++++ .../advanced_transformers/index.html | 3215 ++++++++ .../advanced_transformers/json/index.html | 3506 +++++++++ .../advanced_transformers/template/index.html | 3561 +++++++++ .../template_record/index.html | 3478 +++++++++ .../dynamic_parameters/index.html | 3616 +++++++++ v0.2.5/built_in_transformers/index.html | 3222 ++++++++ .../parameters_templating/index.html | 3417 +++++++++ .../standard_transformers/cmd/index.html | 3676 +++++++++ .../standard_transformers/dict/index.html | 3388 +++++++++ .../standard_transformers/hash/index.html | 3347 ++++++++ .../standard_transformers/index.html | 3256 ++++++++ .../standard_transformers/masking/index.html | 3401 +++++++++ .../noise_date/index.html | 3481 +++++++++ .../noise_float/index.html | 3450 +++++++++ .../noise_int/index.html | 3434 +++++++++ .../noise_numeric/index.html | 3450 +++++++++ .../random_amount_with_currency/index.html | 3346 ++++++++ .../random_bool/index.html | 3363 +++++++++ .../random_cc_number/index.html | 3346 ++++++++ .../random_cc_type/index.html | 3346 ++++++++ .../random_century/index.html | 3346 ++++++++ .../random_choice/index.html | 3384 +++++++++ .../random_currency/index.html | 3346 ++++++++ .../random_date/index.html | 3491 +++++++++ .../random_day_of_month/index.html | 3346 ++++++++ .../random_day_of_week/index.html | 3346 ++++++++ .../random_domain_name/index.html | 3346 ++++++++ .../random_e164_phone_number/index.html | 3346 ++++++++ .../random_email/index.html | 3495 +++++++++ .../random_float/index.html | 3432 +++++++++ .../random_int/index.html | 3461 +++++++++ .../random_ip/index.html | 3456 +++++++++ .../random_latitude/index.html | 3346 ++++++++ .../random_longitude/index.html | 3346 ++++++++ .../random_mac/index.html | 3398 +++++++++ .../random_month_name/index.html | 3346 ++++++++ .../random_numeric/index.html | 3430 +++++++++ .../random_paragraph/index.html | 3346 ++++++++ .../random_password/index.html | 3346 ++++++++ .../random_person/index.html | 3557 +++++++++ .../random_phone_number/index.html | 3346 ++++++++ .../random_sentence/index.html | 3346 ++++++++ .../random_string/index.html | 3390 +++++++++ .../random_timezone/index.html | 3346 ++++++++ .../random_toll_free_phone_number/index.html | 3346 ++++++++ .../random_unix_timestamp/index.html | 3481 +++++++++ .../random_url/index.html | 3346 ++++++++ .../random_username/index.html | 3346 ++++++++ .../random_uuid/index.html | 3364 +++++++++ .../random_word/index.html | 3346 ++++++++ .../random_year_string/index.html | 3346 ++++++++ .../real_address/index.html | 3408 +++++++++ .../regexp_replace/index.html | 3364 +++++++++ .../standard_transformers/replace/index.html | 3367 +++++++++ .../standard_transformers/set_null/index.html | 3354 +++++++++ .../transformation_condition/index.html | 3538 +++++++++ .../transformation_engines/index.html | 3471 +++++++++ .../transformation_inheritance/index.html | 3714 +++++++++ v0.2.5/commands/delete/index.html | 3239 ++++++++ v0.2.5/commands/dump/index.html | 3362 +++++++++ v0.2.5/commands/index.html | 3253 ++++++++ v0.2.5/commands/list-dumps/index.html | 3295 ++++++++ v0.2.5/commands/list-transformers/index.html | 3315 ++++++++ v0.2.5/commands/restore/index.html | 3493 +++++++++ v0.2.5/commands/show-dump/index.html | 3874 ++++++++++ v0.2.5/commands/show-transformer/index.html | 3362 +++++++++ v0.2.5/commands/validate/index.html | 3447 +++++++++ v0.2.5/configuration/index.html | 3821 ++++++++++ v0.2.5/database_subset/index.html | 4101 ++++++++++ v0.2.5/index.html | 3273 ++++++++ v0.2.5/installation/index.html | 3392 +++++++++ v0.2.5/overrides/main.html | 12 + v0.2.5/playground/index.html | 3368 +++++++++ .../release_notes/greenmask_0_1_0/index.html | 3447 +++++++++ .../greenmask_0_1_0_beta/index.html | 3299 ++++++++ .../release_notes/greenmask_0_1_1/index.html | 3442 +++++++++ .../release_notes/greenmask_0_1_10/index.html | 3299 ++++++++ .../release_notes/greenmask_0_1_11/index.html | 3298 ++++++++ .../release_notes/greenmask_0_1_12/index.html | 3297 ++++++++ .../release_notes/greenmask_0_1_13/index.html | 3295 ++++++++ .../release_notes/greenmask_0_1_14/index.html | 3295 ++++++++ .../release_notes/greenmask_0_1_2/index.html | 3296 ++++++++ .../release_notes/greenmask_0_1_3/index.html | 3295 ++++++++ .../release_notes/greenmask_0_1_4/index.html | 3294 ++++++++ .../release_notes/greenmask_0_1_5/index.html | 3342 ++++++++ .../release_notes/greenmask_0_1_6/index.html | 3294 ++++++++ .../release_notes/greenmask_0_1_7/index.html | 3372 +++++++++ .../release_notes/greenmask_0_1_8/index.html | 3320 ++++++++ .../release_notes/greenmask_0_1_9/index.html | 3337 ++++++++ .../release_notes/greenmask_0_2_0/index.html | 3661 +++++++++ .../greenmask_0_2_0_b1/index.html | 3549 +++++++++ .../greenmask_0_2_0_b2/index.html | 3506 +++++++++ .../release_notes/greenmask_0_2_1/index.html | 3351 ++++++++ .../release_notes/greenmask_0_2_2/index.html | 3335 ++++++++ .../release_notes/greenmask_0_2_3/index.html | 3344 ++++++++ .../release_notes/greenmask_0_2_4/index.html | 3334 ++++++++ .../release_notes/greenmask_0_2_5/index.html | 3333 ++++++++ v0.2.5/search/search_index.json | 1 + v0.2.5/sitemap.xml | 403 + v0.2.5/sitemap.xml.gz | Bin 0 -> 841 bytes versions.json | 9 +- 261 files changed, 351793 insertions(+), 3 deletions(-) create mode 100644 v0.2.5/404.html create mode 100644 v0.2.5/architecture/index.html create mode 100644 v0.2.5/assets/built_in_transformers/img.png create mode 100644 v0.2.5/assets/built_in_transformers/orders-schema.png create mode 100644 v0.2.5/assets/built_in_transformers/person-person-schema.png create mode 100644 v0.2.5/assets/images/favicon.png create mode 100644 v0.2.5/assets/images/social/architecture.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/core_functions.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/faker_function.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/index.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/index.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/json.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/template.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/template_record.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/dynamic_parameters.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/index.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/parameters_templating.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/cmd.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/dict.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/hash.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/index.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/masking.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_date.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_float.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_int.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_numeric.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_amount_with_currency.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_bool.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_cc_number.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_cc_type.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_century.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_choice.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_currency.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_date.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_month.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_week.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_domain_name.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_e164_phone_number.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_email.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_float.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_int.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_ip.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_latitude.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_longitude.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_mac.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_month_name.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_numeric.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_paragraph.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_password.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_person.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_phone_number.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_sentence.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_string.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_timezone.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_toll_free_phone_number.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_unix_timestamp.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_url.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_username.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_uuid.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_word.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_year_string.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/real_address.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/regexp_replace.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/replace.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/standard_transformers/set_null.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/transformation_condition.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/transformation_engines.png create mode 100644 v0.2.5/assets/images/social/built_in_transformers/transformation_inheritance.png create mode 100644 v0.2.5/assets/images/social/commands/delete.png create mode 100644 v0.2.5/assets/images/social/commands/dump.png create mode 100644 v0.2.5/assets/images/social/commands/index.png create mode 100644 v0.2.5/assets/images/social/commands/list-dumps.png create mode 100644 v0.2.5/assets/images/social/commands/list-transformers.png create mode 100644 v0.2.5/assets/images/social/commands/restore.png create mode 100644 v0.2.5/assets/images/social/commands/show-dump.png create mode 100644 v0.2.5/assets/images/social/commands/show-transformer.png create mode 100644 v0.2.5/assets/images/social/commands/validate.png create mode 100644 v0.2.5/assets/images/social/configuration.png create mode 100644 v0.2.5/assets/images/social/database_subset.png create mode 100644 v0.2.5/assets/images/social/index.png create mode 100644 v0.2.5/assets/images/social/installation.png create mode 100644 v0.2.5/assets/images/social/playground.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_0.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_0_beta.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_1.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_10.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_11.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_12.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_13.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_14.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_2.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_3.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_4.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_5.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_6.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_7.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_8.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_1_9.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_0.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_0_b1.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_0_b2.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_1.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_2.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_3.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_4.png create mode 100644 v0.2.5/assets/images/social/release_notes/greenmask_0_2_5.png create mode 100644 v0.2.5/assets/javascripts/bundle.525ec568.min.js create mode 100644 v0.2.5/assets/javascripts/bundle.525ec568.min.js.map create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 v0.2.5/assets/javascripts/lunr/tinyseg.js create mode 100644 v0.2.5/assets/javascripts/lunr/wordcut.js create mode 100644 v0.2.5/assets/javascripts/workers/search.6ce7567c.min.js create mode 100644 v0.2.5/assets/javascripts/workers/search.6ce7567c.min.js.map create mode 100644 v0.2.5/assets/list_dumps_screen.png create mode 100644 v0.2.5/assets/list_transformers_screen_1.png create mode 100644 v0.2.5/assets/list_transformers_screen_2.png create mode 100644 v0.2.5/assets/logo.png create mode 100644 v0.2.5/assets/schema.png create mode 100644 v0.2.5/assets/show_transformer.png create mode 100644 v0.2.5/assets/stylesheets/main.8c3ca2c6.min.css create mode 100644 v0.2.5/assets/stylesheets/main.8c3ca2c6.min.css.map create mode 100644 v0.2.5/assets/stylesheets/palette.06af60db.min.css create mode 100644 v0.2.5/assets/stylesheets/palette.06af60db.min.css.map create mode 100644 v0.2.5/assets/validate_horizontal_diff.png create mode 100644 v0.2.5/assets/validate_vertical_diff.png create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/custom_functions/core_functions/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/custom_functions/faker_function/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/custom_functions/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/json/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/template/index.html create mode 100644 v0.2.5/built_in_transformers/advanced_transformers/template_record/index.html create mode 100644 v0.2.5/built_in_transformers/dynamic_parameters/index.html create mode 100644 v0.2.5/built_in_transformers/index.html create mode 100644 v0.2.5/built_in_transformers/parameters_templating/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/cmd/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/dict/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/hash/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/masking/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/noise_date/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/noise_float/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/noise_int/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/noise_numeric/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_amount_with_currency/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_bool/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_cc_number/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_cc_type/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_century/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_choice/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_currency/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_date/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_day_of_month/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_day_of_week/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_domain_name/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_e164_phone_number/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_email/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_float/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_int/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_ip/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_latitude/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_longitude/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_mac/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_month_name/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_numeric/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_paragraph/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_password/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_person/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_phone_number/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_sentence/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_string/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_timezone/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_toll_free_phone_number/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_unix_timestamp/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_url/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_username/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_uuid/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_word/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/random_year_string/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/real_address/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/regexp_replace/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/replace/index.html create mode 100644 v0.2.5/built_in_transformers/standard_transformers/set_null/index.html create mode 100644 v0.2.5/built_in_transformers/transformation_condition/index.html create mode 100644 v0.2.5/built_in_transformers/transformation_engines/index.html create mode 100644 v0.2.5/built_in_transformers/transformation_inheritance/index.html create mode 100644 v0.2.5/commands/delete/index.html create mode 100644 v0.2.5/commands/dump/index.html create mode 100644 v0.2.5/commands/index.html create mode 100644 v0.2.5/commands/list-dumps/index.html create mode 100644 v0.2.5/commands/list-transformers/index.html create mode 100644 v0.2.5/commands/restore/index.html create mode 100644 v0.2.5/commands/show-dump/index.html create mode 100644 v0.2.5/commands/show-transformer/index.html create mode 100644 v0.2.5/commands/validate/index.html create mode 100644 v0.2.5/configuration/index.html create mode 100644 v0.2.5/database_subset/index.html create mode 100644 v0.2.5/index.html create mode 100644 v0.2.5/installation/index.html create mode 100644 v0.2.5/overrides/main.html create mode 100644 v0.2.5/playground/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_0/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_0_beta/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_1/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_10/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_11/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_12/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_13/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_14/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_2/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_3/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_4/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_5/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_6/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_7/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_8/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_1_9/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_0/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_0_b1/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_0_b2/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_1/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_2/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_3/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_4/index.html create mode 100644 v0.2.5/release_notes/greenmask_0_2_5/index.html create mode 100644 v0.2.5/search/search_index.json create mode 100644 v0.2.5/sitemap.xml create mode 100644 v0.2.5/sitemap.xml.gz diff --git a/latest b/latest index 3512a855..57645dd8 120000 --- a/latest +++ b/latest @@ -1 +1 @@ -v0.2.4 \ No newline at end of file +v0.2.5 \ No newline at end of file diff --git a/v0.2.5/404.html b/v0.2.5/404.html new file mode 100644 index 00000000..149a7429 --- /dev/null +++ b/v0.2.5/404.html @@ -0,0 +1,3088 @@ + + + + + + + + + + + + + + + + + + + Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/architecture/index.html b/v0.2.5/architecture/index.html new file mode 100644 index 00000000..ea139770 --- /dev/null +++ b/v0.2.5/architecture/index.html @@ -0,0 +1,3418 @@ + + + + + + + + + + + + + + + + + + + + + + + Architecture - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Architecture

+

Introduction

+

It is evident that the most appropriate approach for executing logical backup dumping and restoration is by leveraging the core PostgreSQL utilities, specifically pg_dump and pg_restore. Greenmask has been purposefully designed to align with PostgreSQL's native utilities, ensuring compatibility. Greenmask primarily handles data dumping operations independently and delegates the responsibilities of schema dumping and restoration to pg_dump and pg_restore respectively, maintaining seamless integration with PostgreSQL's standard tools.

+

Backup process

+

The process of backing up PostgreSQL databases is divided into three distinct sections:

+
    +
  • Pre-data — this section encompasses the raw schema of tables, excluding primary keys (PK) and foreign keys (FK).
  • +
  • Data — the data section contains the actual table data in COPY format, including information about sequence current values and Large Objects data.
  • +
  • Post-data — in this section, you'll find the definitions of indexes, triggers, rules, and constraints (such as PK and FK).
  • +
+

Greenmask focuses exclusively on the data section during runtime. It delegates the handling of the pre-data and post-data sections to the core PostgreSQL utilities, pg_dump and pg_restore.

+

Greenmask employs the directory format of pg_dump and pg_restore. This format is particularly suitable for +parallel execution and partial restoration, and it includes clear metadata files that aid in determining the backup and restoration steps. Greenmask has been optimized to work seamlessly with remote storage systems and anonymization procedures.

+

When performing data dumping, Greenmask utilizes the COPY command in TEXT format, maintaining reliability and +compatibility with the vanilla PostgreSQL utilities.

+

Additionally, Greenmask supports parallel execution, significantly reducing the time required for the dumping process.

+

Storage options

+

The core PostgreSQL utilities, pg_dump and pg_restore, traditionally operate with files in a directory format, offering no alternative methods. To meet modern backup requirements and provide flexible approaches, +Greenmask introduces the concept of storages.

+
    +
  • s3 — this option supports any S3-like storage system, including AWS S3, which makes it versatile and adaptable to various cloud-based storage solutions.
  • +
  • directory — this is the standard choice, representing the ordinary filesystem directory for local storage.
  • +
+

Restoration process

+

In the restoration process, Greenmask combines the capabilities of different tools:

+
    +
  • For schema restoration Greenmask utilizes pg_restore to restore the database schema. This ensures that the schema is accurately reconstructed.
  • +
  • For data restoration Greenmask independently applies the data using the COPY protocol. This allows Greenmask to handle the data efficiently, especially when working with various storage solutions. Greenmask is aware of the restoration metadata, which enables it to download only the necessary data. This feature is particularly useful for partial restoration scenarios, such as restoring a single table from a complete backup.
  • +
+

Greenmask also supports parallel restoration, which can significantly reduce the time required to complete the restoration process. This parallel execution enhances the efficiency of restoring large datasets.

+

Data anonymization and validation

+

Greenmask works with COPY lines, collects schema metadata using the Golang driver, and employs this driver in the encoding and decoding process. The validate command offers a way to assess the impact on both schema +(validation warnings) and data (transformation and displaying differences). This command allows you to validate the schema and data transformations, ensuring the desired outcomes during the anonymization process.

+

Customization

+

If your table schema relies on functional dependencies between columns, you can address this challenge using the TemplateRecord transformer. This transformer enables you to define transformation logic for entire tables, offering type-safe operations when assigning new values.

+

Greenmask provides a framework for creating your custom transformers, which can be reused efficiently. These +transformers can be seamlessly integrated without requiring recompilation, thanks to the PIPE (stdin/stdout) +interaction.

+
+

Note

+

Furthermore, Greenmask's architecture is designed to be highly extensible, making it possible to introduce other interaction protocols, such as HTTP or Socket, for conducting anonymization procedures.

+
+

PostgreSQL version compatibility

+

Greenmask is compatible with PostgreSQL versions 11 and higher.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/assets/built_in_transformers/img.png b/v0.2.5/assets/built_in_transformers/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d97982c31d9f4de3dc22d832852ddf3e2be96884 GIT binary patch literal 16273 zcmeIZcTiJb+wZMdkS5YYS5T22I?^IaRRIwd1SEzcD7}L~qI4vH2#6q6P*6J3OG2;G zJE10Y2%Qih<;0(NIrn`(bN)EbIdkTnd6|L5u*2SaU3;x{U7zoF?T82Z+6=T@w5Lv; zV$jvmczEg*l_2H!oeSqFKRNGI)}1;9GSSsgf8=9rn|kMg^^S0vgF%?cYZ-~p-&_LRnIBmuO}^<-5E?kJ z=ad~Ju3+Yz{m)2^5tlPI@W5Yjus0(wXcI@tJ8IcOB~zrD z3X04Xy}w^2Jrq#G7iM}MXq~dJg18$w%o_t7b){8?z0~d-XKf36?P}8}((;{m%OEcL z$FZ`HlH%zsSDwBtdCX_?G0RNpVRS>31wCN4(UNUuc8{GW_iic_bg%5G$zHdr$3?v+ zJ85+5^mT_0FR^#hTcBdxSIZI7XCIa4Ap;KTvst3}l3#Pj)~d_66VBON9oVg$fKtpB z&+HO$+&hag2#r@mMyYOY&5nkO@bGUlX%XNtB1hCyTz)~{MqHh+;*E{Vadu?ku^DaX zq~sxqYK>n&K#~&4FCwmGV8sFFOZwxJTq!(da~sKaeo2lcpPF=viW^4Quc+oRql)Mo z$Gw@qnwCtFEyX0XVxnS71fNmgnLYzoQwz_}wf1*!hPR*4g#_&1I67d{N|(24e&=s( zoq%3%;{af9Ml+icahMn{aO20Rv$^F>O)hoRm|l!ByC24mBigwm)Pf}_e(i;d%mK!w z1aRJ?W9r~+5O0r3Vq)moJ8C~**ajD8nXar>VphrS!iAYKg$xlPUfs^>++0{-Y-40@ zMZ)^~`ejZn@N{#Uoap;FB$p>gFwTol9dc?5j0iBzc7(l&%@o2D+Y&mu%|aNoLvReU zEp1;dO+MS7*t98Jf*u~us!i;8M?3dDzVb#wGhY7O*8>Bo-G}4gt`ailVhzzZ-feGh3qrZHyKllZ>(Xr+AGLc)5ZhitjO`t?4%G4 zeK(aR4kc&RBr6-sY{p%2Dr>YY$IIhTR3DTQ6cR4+W%>qQd4}ArHHQB&2yIfeB`cxk zMByD#G5zF{^+HP*JlAL|s#$xc(Fr~?8}-Pwx3dgfF*SM~M7*Q1aHhG#!RM)%D!W-y ztBIEsGkfHxCVp4k&V{!8EnY?u+Fvm{cWOl8col?u3GDTSo4u_T^{gT5NNvyPZQaL4 zZ_?8do+InlybY4w2Ngt?v1hl7o?bA2mRjY9;nF8T6-0)3Bhwtox-qSGx*OhAuRJy+ z_eeIVoZe#bZ!x%~+NPk|>I%@f^`ww8$)e5JX8bLx&4Nda{_^h*;NAC4Q@DVb-Rox_ zB@1k96@Rhu3k~o~!gYVVcM=qS;}*T(&v~1YPh-F@Pn~LEvjbJ^!mm$qbUjC*W!%e` zw5BH5<7lSXi*D<5f1`POBa7!TH?*Ob7^OHZAGo8|ZsSwks=q|+u8_+*N!nLM~qhC(UZHXK=11ywJ2+6LUla_)N?o=NL72DqBH!Cq%{l#j0u#TuIm z1oQ7Kn_T6{zYTq7A8T~YvAtl2kLMFY54|P-hD>?hh@>s&h(da0Ri~j}nZ!ZN5mSPB zU@6+>6Jna>LK3bsn!NAWU~0#ElIMU~UzG0=m4s+``EL|yii4sHOHLFA@l=A92<;Dh z6&d$WY`UjWw>4zx{)8(&^zDLU0f6sy@Ns!}?6YEaKPP0P-HDp@D=HJXY_}oVpH?-| z>$$HM*F(24$ZP_XzHd=Jikes28`QcocV;6`ysb3f%|U4*WFRr8J z5dQ0-!>i5as{PYX^wgkGfnRa%o+fF=&rfQcpZvf_iB|8pZi3-wQsaQh1yzU%qDUAS z*PY11B-{*?<}QWY^3jV6?F#blmy)H4>kRKjwHIHXCOJ|~wCdEgKA;SqG`Qt2>5xng z@$p(LfUkEffyr=K`VqgAdiz{9Hm`a5u+P$7y=gx%TX!~GP@D*mt`D+7E6^XR-Nq2`5G+39Q7cqI`lp~{*(SK>pX57Q~ zg0sbJ`{BgT+Arv$-)RFdyDa2obvR-{&((U2jaZ{`0~wb1)BB)J%5CJPM^ zwQQBH-YFTlVoRp`q~&ZCw?F?7gk{W43D-Ft%Jju${+h#iZIvhKoUQ$fJ%z}v+ZwF5 z=>;|B(RV^(#~Bort(!s)qCwxZHCQeG`g2e)lQ?=5+}_{MmLHMuk%=kfeDeh+O2hhp zp^1+HehGp2DQofbYkbo()oN@f;*&IQO>f%l;NH*iBt>+a= zdS4d9Y#!WPe_oAt!-2Ykp7tKGO)T=jK2rZQcY;QooM3!yG~&YJf0L}h8r9EM!3fi2L+?Bs;pognOTYCZH;X&N88(=nja zt#($Gma(oOw>6v_Rhp4(i0BWgA-{ys9T1Y&w+_t@V>~kXV5Z~oJw?6@f=|sPFr9N( z;Z}F54%fM^-h622u_~qFI}+IQQc0trI#7WHIX@F^1JxIJ%}OA!24MuN2&qWy3*B12 z<+hn-B}mgz5sTx&kH{EwwGFL81z^dar}|KGdPc#9=$zHpd@Sg_PN@%Gc0y@@)44|MPO+m;pL&s>v8N`L5+ekqUsBeg&qr|LXl0GOzi}o1)q7*&fx( zjLmLUZ*HYd5e%l>7_C^0s-7h-DZSV~pW?U2*H)pblW@d(!9IUzmIOJSqV=E?{R5G@9Sq` z8}3?<$z!T_XuMw7Wxgv?w;H?DTVzn~>GB+MRVM|a0mz;2{>+q% z=AsRu{MOIC}i5a8br8q_3HJ)S%6-}gEd|XoCy?Mez zp)Wst0ZS1ybye=C+YQR+CRY4RLY*OT^BAO!fC71>8;5?Yspy>oW~|4^_3UC+N)fF; zkC`W0^$SUi+7o#DNSH>}ILU}(VDRwbll2RxeUYH_JD9?|EnQ+C`QM3na%?8gG!M^4 z8@21tbqr_`Ol-igY*gq+TR_DAkz5fZdw%h%lasF2qs=QS@@mbS8;^$50-_3+Jat^| zKO#e}a@kAVulia$+h5U*mCmoAZKn>7AD;>5=b9XlQ3@F_HW;Y7f*M&JI2!MFVdM>Z z0*Jcq0jdg573EQHX4jhea_9@v(ss5o`Z6j5w;P)qE(S*MZ#GM#PDTY@nsLM9jH=4i z*lP|HfKI+|?=36symkO69Fl_tW7?$#Vf?j`m@}`*Zw*Ju_r5%#arB{f-=fLyp9BvX z%VpWOgjdw#49@>px$QrMKh+mvP@xq^qw2W46X5!x-6Z#+S7z&mjdWiLjEW0%e2TSK z(os&oj=c@J$FXp;4dl6OHE*r-HgY{=hYbqL>wEfKs&fAMGnUPRr$9B*dB#2`?P!ZB zi={)e3<^g)=su-&|H*#29Hjg0$&ir!1o6x#@DDs&u01rka9;S+FPv!D$&W!*{e87% z2NyEk zFp@){QcRBK{T+!EC@>t7Nfu)<0<8Ilw~1@^*QSC;S{a&d5_xN&;z3%2UgTvE8Jnnz zjPUG$$6P0J^VoB@ac6Np6W1;|YB)1Sh~EDFY^^nkGW1Vpny!j%N;+@cZuM3eI3!%{ zvU=`D5%82fZ=xF3F*Q(vX&e)beqtBhONa{DwvS z8IJQa^F6J4xfkY$)LKu;DE3J8Okxb9zz_036! zAA$ktU5DejVAZ5pZjheTMGpkq%$89K{v~zAFjjj=@F$S(HwjRCk`5KGTX0s5M#V-P z0(`xwa~zD_dY^+GYp{4yAB==5N>oO6M#U(xeRiH)he1zNxcXEY;>KQ79`R1>*;_P+ zSEb9VF$jmAU6J;hYipnzPHgdYz<}UYj>Z8@chvOdm(-SpV7$_YDnYt{sh{>=a+LiD zZBJ0*09XEcmpTYUdK#}!&yDWf=RG!XY6*?J4xgEcj%SwA>=S^S9J^L2p1*lg``mvb z_~EmQUaJ0dSr3fAn35>Z2}14;VR95t4hB0JwL=z^X29=Uc%+iRGx3V`se_$jD3DUp zPFzJ|pvEeJ7DzeQ1MrQs`ytiwB^-|I5Q%3~7YfXt&A^bxS%xY6s!c+7P=xTd-B9C- z)@EqwM-=!4^gAXNQOCvhwK}|{eAd^dJy52+@Hn6s205wHs{|@Zz0I4wkp7L=SRhI~ zdimOtDe~7=;?z-3J&f>s)>t=%7wsgj^H=W-6}En7%7pRpYN_YfLp^WH@6z3S&sXG` zFD{dAn*@EKfg>y+c^W>~p1y~VLKYMUPWlE?Hv`mQJIFjpww5XfC;WwL| z>uepW+P4M-1r_xVZp+apAJGVYTlLaak~uarmnN#~B>%2GXga-j6(}-{cW~?>K=E;8 zaJezi&Y>AM2_BG=ge*{xjeYX3gRT1Q>-`l*ZE{tm+^cChxSry1d&!^ZMFY|9glz2B z%Z5rwDtf`Cc6{TJu1F1!r?$a-$LJ!Td*{hkWf`>3Z*9|Y2Z5X-Fze&G59jWmTn>e! z+3wF1fLAOw5A$c22^`%m%S^$gq_~lOo6Y7k-DWD2pSP;+tF<57K#>c*&YReMgL%9` z9F3q_JNO%Hq0Jx_?#ZF$Sh?DgXWLwK+z(x*T~kwGk7=SjE-J#mM1lrqx2+c;4?F!NlKwW6IeS9n-RzzUKwv8#4-X@=J>hOb4 zAJZJ&JlB!-F=p6jdcSk?;5(N_tAEr`P@J9W3>>!#e7NpiY|UYYI=e?Cecc*R2qE(C z1Et$Z5C9F!-Q`4Cv9p)7{I^Lb;svm!&Pg&!dQVgfZ!I3rT`Te2{b{U=#SIPLdVHsH zLtM3vQ82MDI3xpec;n;=p4GlQeaykey#Ty)cn?Ro?wDsl+YXx)YYJEXYpRx9Bud9S z-wbaSl9(UFUi64T1hp!?5wwvSYEK#iqP1{@7j%NqHla5_=FUC)ndXlDF&~-I?SS=c z)sYEyU76ldEoue0;)nDSY|d(t`l?Kq;p1mPbys)NvdsX7t(iZ3S=%<%JZ?7YJh}FlOn=jzdHMO5m9cy? zk){1ZHIA`a=hFj4BtfO&HKg80d63*Wm3lbqeB#JubSTBD>@>tmo&>FUxO2mcJX_UpT=fgCz(x8(bL zK6crt@+3rem+uTC7L__)dtTQqGD(RkK`*GOvpZOOImQx9AlS6< zLnRW5Qq@`(sx^t{3%Ew#%X(}onYH7=T?5~OKt1^$yP8gPeu|%?#Pg(^Qd>%yqgLjo52H8ks?Dg0b}xQJajXjun$62RaB)`xa`GcE`ljTC-k^ z$=(@{8c>5sCGr>HVXJeKFGQ*s?uBWRJQ(+`I~M~svo&ABsgkja0~EE!WZd@trxPoM z^>0XFg~MYa8QPgPn@z;VHSMH-6N7i)V$1H9cEo&t-9z2`AMRo9lVw7kBc^+BdV@`**aHCM7KWA~1PoAAqGA zm0ay7v(+I?uCV!FZ^G#`#>kV;{Q+dL3f8ORT?^MSmC{?_Niafq9mbtWtrpR99O+3|7G9X@A%M65c`fhtPVIZ zbb?Ln1zqecZ+EHH#;2B<44}MdQERBWsq?!s-M~(LMNv*cmX3#wibmnRgg1$O!HQNFVJ5&FJ`Fh%+ zO`CQcf<_w^D)p)~V|mliVG^Ze1=Uz1B#!}a?}ZQz8uv?nNs13bS;@VDG&y6O*Bi)c=L%=z^drprX=he@ETA7mYmi z?WpPh$Myd{y#G6{+aZeoMf3PqJimc&LXxuv?Ta0kU$C~=+s11KK1Y)0M)^s5k%18y zgT`zJXb+`SU$$y4kyqhQ4j!<+?Y;igL0IR_-5TDb%wqD$c?ZPJh(d68M(oEPQC`}M z2Tih45#8L(b@8yNKjzCjei;v$t_=bbc0^pn7tN+B*@GsdC_?bD!|lkXBb%%{mJ?8O zznkZ}gDHbKtKQ+xeAM4A?GA|0>MW9!8g*xwE&8SXs*Tn`Wg=>T^fMQp;B*fmyg_DU z*ZPw2u3Pizq8p%0rd!SHZ7>aN3-q3HrM%hcFb2Vrj#*zu$@cRuzRqWy;BHdKihm@P zq9X=DiU_>^sR8RKTqt@)>a)vy&!y;(tF}%CYBx4u+5lfyHw7>7W}7|c>iP89HiNJC zu$WB!#*e7Dm0ZcUlO-_$^S_NHT!@iPZtGj_dI0cuQopt_8+hjN_h_u=4HW|Ow@%7R zUAm8co{0)vSA-s}zUFzw+3?f`%HfkAyj10Cbpf;*)1A;gOzHSzhnjxdCO@+P z9s~F@yp3ljw*JNPLenKj@CLCSHbD%*IM=*rTX$b)!fcQO!Tk{bz*NrNgUBt(t>=~f zGwXOn-KnH=>&43t`9pv4-+)(PEccl(cq5?jXRtc0V8ji@ZK^xa!82!NTa(kk1Vjj3Kpm&U_st0{Q?A|QW z+^ER|@E}4xE2xdI^OpN0r|i3FN{6OMB{tNi{+GRNw=q1M+}sg$tsW*cazGpYXEK}< zhPMd1j#vhy0t;gk zN6EZUnZuStJ=wh~^w0w{{$u!nep{_67pdd$zs;e`AxtyhlDH}Hvnfe^1}NcIzW#5n z$g(3V$5!OxFH9f3;0N1xFWxI7(%q_$7bll@l4F4La|cA~GT47uBQin3W5=9Yb`~yw z$)CUHDq5)C7H#={4R>l?p=$dDpuOwpl>Hnl4mst>_4uE*iRK^M#MbPRRjhe2?U8UH z@cZ4#Xfuqe;)A*B;@4m?8+JdGW4x}4>Vt(EY?gtx#Y>upEw-lCF_K0S#z^y%6whM@ zmT1Sidh)5m7*iB={B< z;SfqOKgK6g!~|2DNZu+LHwRIHXYAj_#y)+ghdz@p`PtCPY@=LfX7t^Brgkp4mS^Ie zeaSM88(y(>=bI0YCo=-!(Dq<`%P=V}VqsV%p6EkOv?>_4ywonqwZnN-NG+y!MzI9Z zL3;n=_TRnYpQ$BU0X{CF}#Ky1T(GuQmvGkz3ypNPDLQ*#8 zsqJk9XOD;W8wtMHA;m)k}lWk0)7Tg+}2M!|~Tfh%#kl?S?I(-GL zg^>XO(sRb*wM&VwoWWj=66U;em^GZ`{Ib88nbO`9z7Wx9(7CwM-yD0j3#Z*D&*$8{ zN0FoMU-y^>MHYla%t(HYW2B|jcH?Q2k*Z_IK)aNt{zzqf_0$}0WK#AKUtLgirY^)E zzET%JZ$J1f-AQ(p+co7Tm~UKgLSN{!0xVu$r=zPh~+ zPkotoZjk&x+aoE9h_0JRf!Y*I-|q8|)Y3@8oMUov%fHl#-4r3YNGsi86d7Gixm zRsyl0`{&?)mS8v5VShf&R!#A8OmF-dCW(E(4>cI3wlu!m(ZB7goP6@v$Rdz-q{3V; z0;`yqAe-fo`2lCVKryE5GUxu}E_y+T?o%?ql=b}Rv@X5EldQ&W%Z*ajqqWz8U?V?sfn+akEVsv=ClV<{7+nXKXO?GO&cm90f&@!YzV(HN$>toWjcjrOs zJtvwSMG5ikx$phaGVw7IO=}UFH(=Z69!AQ_tUVAvp}mHQjIDq8kbRD%wmJd~KZ$__ zu6@@uIeIXT?01JDv5A5ONFrT!)fi|D2fO6XO^*L`-(>IAHZ1Z<7D#{H@Y`Su#$}C` z@E9sb`dUm2OHGIgwNrg`I>CO&@zpg_eJ;Dp-g1gVKK(vRg%aOM$T8V8mkg#e#yJ0^ z?avs~;|CWKONU*@mvhN|w}~*pVOUE&w0bu@!vQJ<558tY1mywWS5t9}8KbS=B}#Lu zH8(g!Z{<@Azq1r$>6!?GrFTFm?Ybo^FP^!Tz0ge8k|6QX; zQP9wZN2^|uhOc$bmHQFjZfF$H`vbK-r$P0@YWiyixqA{$07M_QrI;t$MxzMYLJ|7 zXe|73RRB&ZRQua=DYNaR9k#MZFUGql33W3)B}SCt5U417`sYCSe1&_}>3>~4_QQ+Yxem5k4M$-gwN0pddgQknG2nex5QOTYV z1DGp%HcW#*U^k6LpkY*dmJ9jt56(!Q64G+y1AM9(@jDoDv|wpn6rSvN0s@3!B!eT) zd=F8)V$u0P2$NtfW&CmwXlN4AYf^d6BK3`O^$0#P8(?SMH4+WnJ$!jDGu3tDR4&F< zFo$c4CF_~7fUGb;IJad8u=9z8lDucPUXXGZE>yK0PswEbHQW9XHSC6IF2EkpvZeKaX=T@%Cojz-7YVt4eO+R83mUH_*4o+ z8%q{gWdqzV-uY(iV{*-*Qj9;RH9$dbzWh6NjC=xWUBv8d9H*{RyK`%hv+?zZyYjM#09 za%(eZtnsaclWSeqL7H0n@eU_nPeOZD;K;;QbGC$N?+`Yh=Vtg+R2$~5mmCQ*sHo8y zZ_fi+n2mh3?HnS9H{Oxgf5C@ar84griKvo1`?@a^1a%PAK7awE1Ahb>!D?yU(QcT7S;J6jQz+ zqOy^sv9+19iuIql?#cuEMa1VtTlVkYAAdqGT3t0HACYO5FjVQv^+W#xq#fH84iV;} zFI3|0f;PU{kus$~`2E^UG;{vF4ZK+keFRJgSS@xk(?|fII9Khqv%Cukqrk zXk69l1<{U4-I0bP$7~*G8+>&IIVdS?=dk8eJ6dDu6(J_y!C_=I)42V)<3k!!-lbcU zj;A#WRcK2LT}|ezRE_vj13xD{#wSu1Q`!ajb`QWnmPj=ZIX*GWS+8&mfkw2RvD56?XpMwtrFT%om>f5SHpiD2&vZJNivDUTx7c{RK2KeObe^Svm zU@GEZf1{~hI}V^|z9w?$^WrK^yXfJUpBRSwqlbkkAbX$fU4K4MHN9i1v+Yb<38F2F zs~JvuXWq4xNDYpxhR}R`MrLIjHFzLb2Vi4Ke}0fvl)(`rXmQO)V&ms1u`7i3W)Vkb zRqswRlGwT%Jez5^%kl{6{uD9fI?^Z(*Ldt7vJrGIW2jFWPNDnMOB!ex8&#kE6`g7j zqre!c7|4j(vXU~^7H>^}yAdh_UlF8=ZeQRk#~Y1Gvz{}N_&Q)SFG<(!(&%cVUdLuF zoZpCyFg9>#F;gkQ*~Uy2!n506e3^a^-*{@lxnqW;R+Yc7{2BI3v`K9h+xDi5L;4>9 zbA~kdt!y9EBm&VPeZaXz{7+iJ&IG%y8Qs%-h=-P z19wkypP^JaV8X_!5^|kgP-fOqxt!}IBS+?b!!Hz223P4=^j7{})QSVgv$`w?HK!p; zXB|J|XJPNUGW*_t5EpjGloKHkzP8zR%S{R4!b>nAHAyCn7pld%`l9fpNp{V%b4<;R z*~LBetF{sz9mB1e<9Z+44CN&&UlN8vdND;I?meJ|gt_oBGaa`@y42F6Rv`1o_ygoD zN_KJnlGbiNW#5?I(nSw$?QQFVM$h~oT74)*XpAHU_FCp*6AFPJKgRqlXR|}g2s%+J z8b$=WyHM&S`WldWYwNXeHwg*!<1k7QF}Xo{^IcVp6)O0&xE?F1?cY%5w{#{ygn~kO zS5aN%vm95#TSibpIzR9!;bl|0x+kDdz5rNyWc5!KCU3V_+lQ;2K%H*?guJ-z%YA#N zAMJE?kTG61Es~xpPOp969O$WEQ&LGYVyaAdi8OefFBgx7EhS_$+V{T~jXC>|e8|W6 z-pL|lX)({$$p6j3$W4ka-)Sc%?C$sGKu)Qmpp0yuA}ludHY8T?DJa9wpJ)1HY%U*r zdXPEg(t0ADAmwfu0&vtO_Qo02{(`1O2hA(~Zywi44-&bx3bz_VKB&khz#=O?pDA>! z#-R9~2b>@37gWJN@gaYetMaX&{${-FngnTyDm}V3nEjn8RrCgdR+IgT$;N{T=qR^J zbFfppZLTyOomUNt)N~uMKPd1h#y|Aefk+Fhg!<%2tI0I^9J2$sK4AiM$^tp5Ot{I6 z*;ssAF{{jAc}Sz)axCm7KY8drcyrDB;UtOi&JkYdWh%J3=Z&VxuO3~RiuA}YDn-zR zYXuGbbRRLfF=nhY-Jav`YiP+IjNvk_x9bNwt3Eu9Ag88=?7pE&UC*nJDsk-?s6kAc zE&HVZz7Fq?;EWx{bBjJa&a-{O-A|C_zS$4{p7gu}$}9K|oe!<1WJ7i~{p`#>+kji* zjOU9YW>kKfQ6eU(!COA01JEw<7;vlX!vtHqu(!LE8TNGj8@4dGR` z<%sitk^Ksk2I3Ct-2L2-ds2q|=zlOayVF`4Pi3w;`mPbOlh^nHu2L7S%!UJPT*nr5 ze06|EKm^JUScVCZZ;zuy#&QN)W;5q{1mgKT{Cb479LZVFt#037BHtLVmn@bwDvd%C z7gs`#4WOY3TJ8MT{PwHYW1`PZLcy}HtW{F0i*h@N>j?LkWa>;8!s7wEj{F^bkhPZ_ zUQ$>$+|429-QC7@!YjhpD>LiH9>kA%7}p!+tT3YoK_HGN^W>git@>E8Lg0lH{!8SQ zPmbgfeBaY^ib_Q75h{D6v#Vk{HUMTH=tECllvy{+rOchs*y8MbvTf*jH=#eh8Mxi} zN1XdpQzZTYi{IJhOGw}!0;Oo@`%)kNNgV%69Qi-K8;l->k~+p;mbTpipBnOqkd1(@ zP)+$iI>7IBWSq=;KLs57Hx2i9g^mNAV_7z~{+s;92hm8VW2tQW_FR@uYzva)V^6M} zcvq3Wn}K_Hx+neCF_=5WdXHC{Y7$(aj$WnU*2cXSyZZRBVV*WHZ&<*0(e1IL z5xo2SD}vsW)6pxQ5A+h-t&mv+aL6u_t&4lA`<$>;Qt{Hr9GSg93zjmP1x>il7ZyS! z-yJ7|Y4f(no*vnSkNRy$wu6ap%M7Atk8@T_xP`B+4QLri`0pf#88n2JUU=ZKD0>JlC9 z7iS67{JFi?zpMji$S^l)U@#83G$%b1rAeZc@R8J68}QL+eQvlAJ-Y|dUG4do!#x; z73Yj2<)U|4N_IL%uAy&DQmE46bj4(J)*a13H^MXZbMR2}`)oQKdv=5r!w6WfxQ3Cr zK-d1gkmnCWVO^5y0k_`j7ecFXow0ed*W|Brz#dmI7Yx*J+R&x{y#^qA0B(9;aP$T@ z+od)67}J^B%ka|S9;PVcXg~gCW*{{DzMcf82OFKFHSH6`Hs#csI`GcGm^zKaOjB7d z9@N!k%-v>H`ipuE4ziY2SRSW@oa(hp`uY@RlzPD$J?+lV2z|9nFUXnaa+Fi;}(6o(%qT?YS#cta6uHE?j#))f2ra8a?jiN{Z4 z#jaZROzYZ{gy`AKhC0Aa(K9y;@VxJY*soL$?tOY%A6e`l_WFfi_QD!RlfGNrrAO~V z+_20Gp98`uF`ow8ZsjEO+{>WpHfW`72dBON$q&cuy28F4f0%8;l^K69nnyWc=J<9l(;cyV6Cg0oQGi?&@k?A|J_ z*d3=+xV^z?ij*BZ0*7I76H3mQ7< zU18+*L>%?eZ#>NEA~M^=r3(lOb@A~WhZL6%h|^z)^qTps*^zfK!++KI22+sUca)Uu zE3tL+U^Y%ELwGU<|*~~*oZQ!iFCYXp=yG`o$PbH?q zkU1dxmY3Wu$6Llww%5~VLa_%)k<}t1yj!%Q+YN$%mcJ9DT^-M?kmNz%j{vv25$CMd z-LGHqRu)W9_--j!t<%g$m}hTc3eOWz4e08mZq z-rKwYHRquY9`K)~ST4xNY;o7}Q91Nns?WIwae4~Yu`j%pe1B5vXm75_nVr zi)ayJ7=A5>Zb1n+Upw8(QGGmJdBAd=3T*{@9C|7De&mC)R_HbDTB1z;CXu-WQV#5) z5P)T|P(3sGQ_@?Wo#oY5iKEwdtWTReUsYEfhnu{zb%5CQPdSyh)g~sFc7No_#+9d41 zQ{MQbr{6n#jzPW-C5X5Dn8MZi=i=QPl(>4hhpin^z-$BHKM zX#ZSte{^45%PR?mYbq&!`bxvLb_IP#1>r}WX$m%{^h}$4F(j_3w*;pOA9sqoZ@JxZcg*oanSV+_!L2y_ukb63;v}ab>&;u0u4fHKxxTGC zkkWKq>AS97l7Au(OTo?reJnOKHdaGx? zIMa#@T&eFtJ4zkiFlb3l;UWaQmZl#pz2%b!lgGwk$|*y07(JU)^dtP$j%{e{8{l7( zuOz?LhXIp^OB6fM-owG{CAnJBXk7a`e4Ov{-}uXmE%~0k%bo+{{i0q>>E7wlP_>gY z`Q@Vh<_M;Ov15pbT7!rM=PHRoaO`mIwk}_C7g7_|bK1CiPw`(caFjVkCk})t19foN z>~-TtMgwkNDuKRBi4xIR{*kka-az>fUtzbGb?A$ybSp73kCH+f;v^h{U~UKYgFKEB z6xjPnL174t|8}S+FF{&QbWZ0XAFRiI zbw7yEsY^H@OTo_uQ{H!>NIMh24|Pleb9RYuSltMg`51k>LUk}FL58p$nkYXgU zjJui?O_v|o<0Im~OK!fe*;{n7Hlm|;#QB7a7v`}su$%@fyI*J?k5^``dm20#By!~3 zuXB_KzCicAKn5jYIs#}YVckF$I}NqW`+G55_Mbd_bjCgq!x;A+<9dsbWqD4n0`v}- z{*%_l<2dFcMWh}&A(5|LqcM!e*#Dc}(!cyW zKSYDB8Rzx;E!$sD2^|Cp!^Fub@`~qwx0g!2bahf!UV; literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/built_in_transformers/orders-schema.png b/v0.2.5/assets/built_in_transformers/orders-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..58a8e7f73fac2cb8955abdb12ecf901817e50730 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/built_in_transformers/person-person-schema.png b/v0.2.5/assets/built_in_transformers/person-person-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..277d25a25dbceeacf854bc0a87b66630ae1d0603 GIT binary patch literal 45160 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/favicon.png b/v0.2.5/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/architecture.png b/v0.2.5/assets/images/social/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b6bf21217e07399d1722b14d6022bc2e8f6455 GIT binary patch literal 25054 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 U*ODq!-UP9CXsalyX2gmZ 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%0D6~fT)~&^6E;CHgRxdC^kc+xz>jGrpEHx&Ygoz@X ztBZvs9}%&;O3g`rfr!K5ps8LClqd0p8U!KAFR0y|;?y`q_N!i{vwm1#_cdA``yL{CI+_th4suOUTpcY`mCXuFUjID$Ozo?eJ-CN zctlx*IkArU^TiChJP>)Q6(7|r1xnid=YRJp2Op08tm|$HjfV+RAcmA})A$ArhFD#a zMQq8y3oZgYO})_o$u5;$6n;6{`<3S^nYTH9uNi8NvcORB0der7W$WwbSJIqy^ zhs(61&tFA5u|8I?-?6Dl3%$=~d~aKj-4yqc#vwYldbv7#vX%>F0gw}%xP~)k@vIOxk3r>r*wF} z48jW8si|!Z?O&HS7+gGvn2q>99Ckl5Bp#UKy%0kyL&sk$i!^lHH}lG9 zJ=T9U=eBW-o9VXLuox2)V^JB%C6o$XGISA*LsCTbO?9!{*J>9YxxIAf?S!+Nr1gGN zdz&jOIk5k*kR&je{&8@6zD(+{vD2)o+hFE<*c(xr(g|6&ht&)!CHK?Z4U3}^865&* zC5=@r51V}X9V|uLDX&BE-Ncqi0}lNL{2;~R(7W|6oSJLl#h2F9{GOA_nem(HvbDbU z=yK&~(5`7!%oj^1_Hj4Xb2k_2G>_M*_E-cz&T1zti0|mUU|PUX+)D@(0ZQnvnfuD1 z8Uj(%vB-=BZn|YRUTZDzvB$>4&ZBVP0tt)%Q%w%LCV!*}Q z1^u{UUfeIhUCsE*+&mJmoF3eC{KyecM#!_O^tKh~`g*As_s@p>`c z-C~YbY(FHoj~3#&(;#=#c(k9{w%ip~hp2AFAWGtKY?sNkG%Y`N)J2O9t0Xr)EA&}F z`BDWkd=+pU;@)BfjN0&4NA4_bzE%!zvIw4b_F z&t#`jJ=)X%ex{p)l_k-q;MCJ}i|wwfSOx7>5cY#ORUplHeO&G$yp4)u1d}hxhAGn;;Fv; z#JWcBXRwiJ=HkI9eqKrCAmH?oBWG?IJgb^i;A_`zfAdBJk>i$8J*R_(M_f{DLHdwW zwbi3@6SIZrI1xfD+=Jt;@v+T&_@9C`(>HkdP1Eq=MiqXy2EP0XW6(W0jucz>*>5l{espbez>HWSfF=Q*S6 zTp~dDFP8K+7GfLC>Yf)i3D9^98|)XVplk%#gz%aQDv6wtdbR9DdjH-)*+Dg|arJT) zu}NCTw0ABj5_on5h|1*yi_}UOz--37-sv11_teCpYK8M#i*pTjeZNwR ztX}<#z-X%AOV{1rMOG)N_9MNWhrkm`94;JN#el@UFPV4dIO3Qw12%oF4D1wSSqy%F z`@Tr+AwxBD9I2Q>!B2fe^UvD4r_M>Cr@nuuru{rZ}xbwtvI;F*>yA2?mcv^k%(8{W(RK^H3Js z5ypNlHQPrS+1&zpywOXfnJ_9i$ik79E!R`~R5*z-p8)E%)2E|*ak2W@uKz&H*_^!bisiJC!QOv6 zQU)r1yH3GMpJh@dw28B4)kT@+Tus|V`Xr)xuOg{>sLa=QD}drOT~$2sey|=}=+=Pr zQJ7S6NxPpZD|Gl2H(sh^;!$CY?Yxf0-REzb6~x+?3u=GBmL%GC8xC)O4esj&V+OZ#a44P}bMe`(T&ZBKE2SDllnA6q|&BO9E4ZxNUFs z>KM&NV{kak_h0{beZWpkYsTavk?0_EPf{8IK$=UfG)2rljpl(#zPV2==l4$0VF1im zzbwaf{5CSAUOUY;RZMT}dDm|6<#m#GuvrIyS&3iL+p2N^&=u5RhcK7%(gHbF5PPi% zHM7}m;9HsdZMGlOHiO`)2a3*I7{0`Dz>f-ZbT19vcM_wvzAOz3t$bSzOQxY*-uQ_H zPXx6$2h|BFw%9Q+X$)QBpw6$_t>NXAuL2+deG~I4Q)>Y&q`xDLv5yP=`$%zY+SP-m zrhU(EMBA?u6{o$HSn-C{qZ7013n{TGqUEXrX`xEEa|lEw-(e${Si#G!UI2LAr1aX% zU!HbdC^@Q_B-6Cvw1fWxXJ=Ey~$s0wVP2N08pusLi0K z{t2UE9~p{P#SzCxrmvdr2RKFK`JNmtX=Ib>`)#zmmVQkJqN% zCeC_~)&@VTVI#_7J)9+QIcz3(iK5$Hc~hu;tr00U=3W6a!L<>#P5ifANT?uyMRjwG zS$yy=sMetd+Yyrwh`rOaF2vzivd2k-ztnTd!Yw#VB4}K@j}?u`kUOCjW?PqOelbJn z>)>o_YXB4jZ%ClXi*2caLjEm>DSfeVEECd`K8wQ#24j_Bln~z}jNOB*c3aYdhr?L* zRZtp$xRO_0`fb%d*3aEw|NrnGCPIqjkd;7@oJO;@H~p1SNW+`ne@Nl)xAp>Lr9H|= zB1hxmR>@Pf1;y280q{#Ltf84Z#Ti==5BZh1X!?QPdqFs_||Xj>Vwpj(9)q>o!xEar@CniLV8jf zxtgcFtZ(w)EPj6X>-9fX?Y7$%E^ucLwq0Gmo1df5l~(O~Z!$Zs(iZU$-0-Omo&y}q z3IX4BIuDLH$$BX<9TfA`=z~iNEyUi*kKG(DerCao3rAC2ED?)vacqgB4*c|$7~H?^)Rn^HL6Z{7UnziX%P z3nX;SXsa2$$@P3ZFn>ByE8vI*LBi0y&@h_Q$xCsIIQTgUofVxbRcq3&Mx(#z&Let5 zN4Vc_vFm1A0l<-P5Y4b)uguOua*%ijIof?8*bl%9>MD;pZ6ZPqJKT?RM+~9;i zhl}1G#NISB=&o;QP^mA;X0L8^Mc@ZI3BaNw*GkJ(jm5k(g33IyWbX$m#0w_2-N{>O zzGH@2zOn~8#Ng59nSLCFQg2vm3g$K4P}^Yf!0Lm5XNh1>X7%+KzK2+?fVv%ZvJOmC z`WNaBlSMUKrWr_E?{4yXqajr96!wdOu5G?#h&e$0xz&kOv7+(om9))GP?&UrcxilZ=2qhdGlz7_rwkXSlGLwxS);R}I&`e19 z>V=^7S+1}m)841$uG4Bz8Wu=1ku?d%>+>h6eb@s-r5CWPpcf!D``0Y`TXTu;4gXw4 zv0|6aJ688Mol|?F#gJ44=ns521Ih;fk#9Yi98!OO-8oUa5qP0vX>k$nPpQOmndD%D#t&>{_x&3s7anhP__D6yUCD!>%Kp$jQ9^ICUz!o zv15HeaIbDBLJlcpu1b$I&n@CYd6-%`g9DGnG9FQH?wyYr;2j+@;a!IYirX0fA+ z7VLMM`ex|hD>{8Ue7pTgOp*rEdj%=yPM=4A>nfUawl~{)YIZn*kd?u#kd_Kk;KXH^ zxVWFR1iwNs+!xWa>G&fJ^F1Pf5=8fXSRFL96rX(&$_@=75QHsyO%NMc;lrEy*`sw(u*_ZcSZy##O4|FH$z0Q5+5t?d`{3>p;h-p6An$^# zw`+|?z!rQncUrNf#OH}$OFTWkq6cI&Ip|h$cByMOUid*8r?djq=DdVsz(ml+#mL5I zwRr;dG%U$Uplr;Ej4AS!#r`ns21UW*6uL_f@5Kt)-Y7fnm#gah`9b3Htd((IusCoY^32JiY|O?gZIwLbqE8^qTSMwITZllEp!3{oh+PM|6yQ) z*^lnRZlp=pIKenZ#yL7>;w2|1%U-Pe-Hxs~*hDyP_|_0bAv<}$hMQL`olh7UPR3J* z5}@^0k~Ci4bHO06Fmn6HKo&B2({FZIzPa1ZLO!)kklc_^rNxkYJFiR7eo7^Rgg1ka zx4F=6B#atlL|SJn(DiIBtlbg65_<_4?Vvl^5AqiH()l5M$<5|Q4 zCd9>y2Ein)u9DPs8Nh7T47x1N*cE%wKGp>9R8z-U%bQ+vvpbBVyL(C8y9X4uw`Hux zzJiJo{qz=F67zg~BEWY?ao@x=Kvgpdx^7P^4x}mSlD@3t8{QJu%y37!J>kGo-aIXnOL zZnpZd(1XE(LNtM%c@fO_7MtW-M5JX^FM=};8sLrGv@4uD&CxEmO~Fvng5$16g+Ec- z_+i{qBL_R5;Goo<=p`^8tTsA>s{a*Ca06~igFq0gV4QfnF)?c8DuPhqjC}G)=U?W6 z_PmZZES`>u$zJ!D1j=jw!>>5AHQy#enq&#RMp`eG7NOGomC6!G)$XJ5xDOzf;%g0N zW!EDk+=6|--;dPPK$~%*5EV8}C+S}r=o{vZ$pxrv?wudZQdDtpSM$Cd5`q9|IG9M1 zK=b9dxDZ5z$wsO&Zyz*qvFrwIZ4cA33-Jt!4`0YiYBG)U2wVr!^e0BlO(9 z+D-zSD!8{f-YF-vvrBg*B~IPlG(QgEoym)2H$D8+@O8<^<@I6R&S9bfPn`{-AU3O3 zL4Kr_Mm9cgQrFjgF22)XCWg(+mz~+PeY)7f^0sQ~4=wc8TV3a7M)a13o|$_ku<4CA zr&Q_u1FzXs6!hi7bFb@v(2W|u)Y{loci?Du=lc?kliyasuejD@NA~SOLQX<|-=C6~o}wPcLQ6N2EFQ zHI|V5Qg=GoIeF0LQ1Ey~o%^2PZ zWUlx9rl=?NkCMJMIp0=GypAC=`&xU>GmVLe;F8`ntl)?<%~+65A7SM~MXBjTdXx!I z8s#@e(rLNmEtAoa-jgG@Q0_CwD6?Ny4bJUoYOWNF2rzn1B*!vMj=;=;dnHxwf29fxCOK zzWS1op|L52hOZ{?peO!VL+&f~^2>(2bCeXCF`ed+rkgE%JDh;N<|!}7CazB%SOSg& z21mEjCl|ennRsQ2uE(mKjqXJq4_mw(YbPSLdJUER2=4w1_9Iy;LNZzfXVk3Iu<;9z z#NaYN^ekBbh6V=3hr3B-+XcY7sw3BjRQ$43vc?#L%j5)2UW^o)* z#SyT7yQDK!|z#~kO14SJ$Txm zv25$D(`rw(vhfL%Gn5FbS+x3~bO4g~w9HL4QAU6;#wvTg@t!?kM}#)7zfwEyX%A4b z7q>cWW5tIHCWTL`?KDU0%i6_t+C|5S4?pER_IYaS5wrs>rLAO9FK^kP$w#K7xX+pA z6EGHnp)SXDJf}Qjms-T5-wC{;9dXk6p!l`jopEo-;AG0LMDZV%1#2`1DuCT+_H$^Q zUp;X9Hn70RqyYquDJ>1uDMCoIjQII`qn2J~^ixcLJtAbDr&ujnlZnF>e6W_NFLezE z>FbsuHvU|4P3|v&k?cZMivF0~(>{We;ZBt90nf(j)+4WmPUzL*a+CHStjwlzm}*za z=Li_jMhhz3*!MxTaboasaU*8rJz!`m5$9lC<>I1uCG@FOsi!jJd@zRxWtE8)Y+U+z8+MGAU0StD;-a-uCD6bL1)?qMBkkeb-cPp%gJ_;1z78cFUCa)o? zHCBhuFv$g>Oi>I>C{OReS{wJr8O6T@yr0ynt-^Dc)&uc-_jDQ%Ps2!vl2^Ze^UW1I z(?}#yMhf|8sw@Nmy)*sX*vG^yc3%m08Cr10ozLPwuAA5tTUp?WKHMCscg5VQ)3q9{ z7VTO2=p+{3bG5iW?n-M@xpq`Jq{U>@sR~->cPD@6<5d#h_tATI3S=K{`Y_ckrDw_x z3;6reB1%dW8mGbc0+>SC3*P7z_RY(Vd*{hZ!2oDxA=ef{C>&CKzaF^7P=TKlCzDbL z?*YMamYaXmHz&5ZT0>N^0kKeab>q8IrA(u{Cmq3+g54;eaW)(eq*o0zZ}@!5sBp(Y{}b5mD!*C_skj!FB+y$ zs~Tb}>+h(@4=eXXtDQC!N5QqMqS#jyi^$`uoEq_jctSyIK9?Vl|vC_dOy1vUDdmAWM3p zHZMA%EIebaqXryE>Fe^memjzASaf1Qe(cFlN`Gm;4=!6a_#Csm=7mN3>WO(56^3np z06QdxG`zf;oIRR>9Sa)0=6dqqul2nBauhaC>SSH+4e`(IWVl+`*>POY7kiC0N@ z3{K$PLL>JK{h#|0pgXT^1}O^XfM?WK){@cYFZp$6dtMP22LI(0FQ^?$*&VFY7cRF8 z^l7Exsbu(Xr!JWIzflX4buJYZ6F+)&N&EO;uCft>)S30G{}=n%EX0shRZvd@ahekT zpLLoo{%#T^7Nk4>d$I@CUM6FErMnsQlmC5a@)EpDU@t_iqc8Nw7p@UL$80fMqZRke z8ZZHfG?V(}iWd@AX+UI8Re|$?hH{t8>={um5|e zNKP@!Vkc90w8rHy9R^SNMra?N{;CnODxEVdUPEm==9rAWDE+(4^ouT~iq};t828Az zKCd>oC>Aw(TVlB!mNRgnZ|Z+`d6b3Cm-KY!d93)4f*wGK^0NAK=`{t_}Q&9PhMSKrOmkvptp!c$GquQ3aZILEYS4I7H{dK!i@GV`m*f4-Dz zQJh|s2{HV@}5jR%z=NmV4|Jc}rys529XLJl^%$>s9U?ygmGHq^*Ok&Ub{gYo$ zYxSh>>tl=pro4}OF7aRZ%S-Ns`Jl?{jvI-0LKA_VTS{qmIM#@k_@du*&p6LO{y{py zR;xW<2)_ACXn#@ioqe*m-PX~!>zVGsecF#l&ZT9X`pbGZd)tj}>uu*fedya*uHP^$ ze@68`^W)iq7>-G<`RwbyKna))JC)asmm3ZRdC}Y`@%ryG*SErxqEZ!PqE&Kr`Qadm zCZHdlYfzxG=`>hbs%6-BiYfl}oLw-??7B+% zb0NfP<8`+EsDDo>_#I!$$K7BgpSKz5a-_HC(}B0*WQ`>vPaP+ohbTm9|YU*p4^^R;nvY3P#FJsf9&-~faWV(|!zd?q$>YGy3q+p%$yWz^8PhFXU zNivqLe`51(Gq4u}_}-IEfG?)ObB{eOYx zb9rIp%d7vKDzj0ZPRU8OWb)>Sj+Q^Pt3s6{I$E=;!(c^+c)Gy`;i0=nBk*tZPDhlF zJooTr-25dr(uF9lyTtb+hazb3it&S=QJN^t!BLnzjmI|;h! zW3zdRyR}@^eUz!nGw}w7<9g$(o`1KjHryu#+?dOJ2O*lX+=7Y6sselP&W%Z3wz0`{ zN+rX23ru^%VrLY0pns$%le{yu?%elpTC58N@cKKz9w_jew8WlwE~H1wP9PVyy*nLi zv@6*||62|dC{7sz?isEN6(wY4Z{Wtxq9(|42kvgO=uS%b(?-P`jjzuBYkH?;IXgr(J>;Xa@ zoj#}kb5H82Z;05xw_}obp4N*Otk$gunNU$$6qKW9vKPl#XN9!N_dO{$*{Jqsi?u8m z@Or7Bvf_th#&X%;fO<1SrGlw?`}`Es{wq*1Qy=N6ErNR?yd48=H&(?u4D?N!&qn~{ z?hDOd)y5cZ)?736-|(nvm~4b#SECL@{#@!2NyeiIX{}+Q zi@$1={s0ZpvH0uXvd(`R6NM z+`jm1SG9S;h!W5btM{J#=i~^bLRc7#1gIdvJ{U5EEsFn{%@S7yI=KbbA0Pfbb;{AB z2CQI~{s(sl9Kv-IS9Hve^k;!?J4P~Mo|Wd(<(hI6<;tz1=%cKEE1EC7XG%w($>Uy< z+i5rBF0c$ittD5y0v&dYuoK=N0MqNHfGn&C+eTG+f&S{u2_vpI_u0rRl~2iS`DfY1 z!s6D>P^o!j?1VGm0Ht-Vki3RX0hco{c=0g+fmtFy~e&Dl=wWUm7AYkbz zKF74|>Pgi5^NAxMMt7;u!POtTnB}wbGXpAz2Qr9^e{Uk`$MW|RK`KB%V(}z3156>j zh$4dczKkr%O2Ny2-hFWG!n55;FoPpytq*`hWPJfr4yFLOzJb3-ud#;LTF9F|$~Q;3 zy>xP3Xqh1`f&QL~yRGp2&{uYNr{?G=NaAE*%akuWn-mvQ2nNEUVmz%xBTJ1u^V$RE z?tsH8v7diq^%u!Ar6rRc>lkhc{%?9F(HKNx6i09H%5XX`CgT7N0D;_c05c)f$Dl_s zB0RU%ah$?W0d6iTx=OoThSYVH;H|GyrZ7#1+SLWu#L;=GFywM zi$e{IM^fR%4RS%6+ep*QdxpgY>xcgRu-wtV#~INc9kSWC+BhF_pDlE3)=+ zn|=UCca}|Cthsx-or?;UQT-dhpmCQtGKNoC421VI<>ozp?75-vu6o|aQCA}ucT5+7 zXJ^U+b99KiS`r{yAY44(gRvyz)OmxqEg66ktv`t7MKqd%71>)@mQ>H%Iyw(M1FA(&f5jc%r-h5u~9_|Nbs7Q z|75H^s&7h*>5c$LIC%BQ){9jo0t!ODi)T^h>(@+k=XC(z4_ucdEaM?KOo-iG2kPF{ zh_xN~9VdbvN2Dp=zU2r`c&X(ZBNO8dz$EVc8?gX1AhTNsvGCzBd5+&-morTUwnzXF zyv5bK8iy{^L_X%V!*xKv2avw52MTZw;yBo(b+&2Qase+PmwewX!w6vTcx0FtUqxe) z`es=YkeJCxdd97?-Z#x+=nf1l#KMey#T0uuM~kC>r9wO|xEdZ__w)ZXf4=JJU-1Zz z_=!5iLH;y2tci?b%M+sI%!5v~(V6ggpqJ8AwiavrtG((RxsH5k?hhi(N2MNtZBDuc z6mD`Ha_T_!Hl$Zv^@loihoPj8zD=XA3t-51OfWpi!c6r*ugdSeu76}|M9@oEuo2Z1uL_w{QP-XGt?2XixDy@G+!0(D*h z0P21~Y#Btf)3MN%OGcCgV4s`;B#CXH8XJtnL)CP#z0pFXAuHf6UQd19Zk=kmF8rEkXs$IEaU{{TgiE>i1{ZVGU_!1 zb71G^Kku6Ww*nKLD@_ug`iuSHZR%%e2LN~39?TG&m-0lxOx|HLg&t4kH38`!qBd9Z z+Kj1&lk3}CR0l=4G+4CE#0Ef3=I;jKonxtU2@)9YJJZ=F(Rke_hFDsA0+IoFB3GX( zl?YmCMoHiIc@qTY<(J^&xAs~9PhFr6mN6j(dtzZ)p#T`NL7Z89JDqRc$laB!j1Kp% z)y4qAFVGtt3$z}5C{ynD8H@x^JWq~t6*U!SP-qdP97eZm4g_n~{~D~`%f0dX73teg z6HyUaZ5+0?aHL)L+fCw7xAy|z7CUo1j=Ayb6%o_|5G(gWj;EBb`lwcb`F&a9o}PHc z>PHkCpL?d=6vce`)HAWeYM%MzDKUnahR+-Xkn&)YO?QrYF%0zrvZmu9O4A-Nk6%Qi zsr(@YHahA>WUQ&hOuE( z15iw}Z8rv)Yf4C5E6gCgPt67yyKkZF;I7+f*_w7U&?(CNWB=yBtwp+dn+ls80_N)t zU=$27?_FLRjiiU_q$f9OS=Fjr+1Fahnpi&nep6A|0gSTaS)e865mx~VnM!noc}tD& zh*H&|I1PAC2aiMOSUs)N^<@y}1-xa7O#I*`Q+90(V4AWn;O!NDf$s+QBdR77R8r8I zyA2>D&&+f5ix$X?IzQoS*kP&M_W$SS;vis%;#FpHtMRo5UZQ5=42mtJX<84`+J`SE zqvbxkMncI>dp5{?`#`_3<4aesvX`!dSf>CYq2MzL;F40|oTN{wLj!{@G2*j3gj@AP z$@~Ih=#u8Ie&$r?IQ%54NeAx>H*uyisk-5W-uctf_BD51mPZW1`xAO57KYDA(eDPx zQXG1qYSf*nYz0H8%7t91^B7G>O~9&8=th|cA1f`NRs$AQ6)+*gVpIMi$Z)E3q;e;r z!PD7z4>?!2fB^(^#Lb_m%Tl9gFYG?3?~YoC+Qky*dkl^>NzH4J!f8x>V12>^(0@!X zaDe-;@|wj+{d~k@5j52Mz*nv(yH0=pUL3hcjsp@RVK^fkenV%`s*u2t3VpkP&t}&lPaXC;*(PWLY|&L|0yc9(`L8)7(T6H?z1Gi9~UI)<`*{D zSr-E$vE4he3eaLw`MXknEbLZ30Wm?+LB=YYiZOy{{S9yRoCj0&SAABP%*}`kANq2u zC&1mmRtkdu_iGGChZf6YG=k4lb2%V7K?{N_+e6?XiSpD6km$M4pj^Z zri&{gaL}LoSZN%RtDun(m3ysin3nl9a! zYQ^TBFPZul@GhB#pQY1A{;*fq#25IYPJb$F7P}=V4~azaFP=aR z3MP;*qf%*(d^uL0whyl7=odR+vj0@*a8)$&9}#x2pdRMtJgjy{6%>T9>{_kQvpGQh z8OMCFpzj@zbK#!I?VN_xD`IWs;^m2B3RgH;hL#xxvicu~SIP*P)WtIaEf!S>_x-oX z0AGD*+wG;Yj4Tr7b;Fp5Q1I>y5kBhKkFDF#S^3eWt)Wy08HcISMfAo&vFgErPK6c) zVuaT}gDkLt&*%X2({kPbQwHy|hf{GsTp+u5T} za}0oh1k4sBO$-Woy#rs20--2F>;PCJekJfU0~M1q0y1L;pzaGDV>B>4`HX7?kYuyf z<-35KbCG_p8vjf?D1tL>w74PYKC}?jz(4d3HP!3Pk?eBWU>3h9ajJ8+`oe+Jv?q|e zCoOpciXwSEp-NKg6K1;obZZ+vk0BTT^6Sm>IK~6}aXqR^$5fU%ojwla)_PQ09pN2d zK$BX!9V>a}O(PJTR5=82?j#xw=!(n(VAz0d@f-q8=?3fVg1VB>fa6#1GP`GJ>YHSy zT|)gGfd-FNk$q!&ActMsxy24~HQNO&%D`c@z&t{9iqris#)&Wk(A2eQ!6Ry+2XMfi z-VF1?)9-mzlA9JmK)nO9*yXTjQr9P-KOpxwMx%jSnyJon-|N?46N4+Tw+W*%lYX&3qxPaXpYFpJfxH&X{vKHvRWzdE z|EPkW4tNY`98nxkQ9lQVs^0XL(n*ar{+glc{i*LEfY>8&>nWAG29z;qUupN6@?(6U z46?ZEmXri&HW*BBkuPT>8sc*sjdb^MMeAVq*8K%08qG8a`B%Dy%ck3K2Oi%X;Zu*cqBhQ^jvXF-s-jRX&cr+*Xv4eBu0nD?RIZZm3N|84!cwRGN zY*x1c>Kex9nP*5fVgZ?QoWrx5n>b0ghk&s`@fea;oROA(o()Qxp9{o&E>Y=zy|-K2 zE&inJms(4P4PtzPx1NBXI2h@@e~wHyDC7kdx!>^1A^&Tvpf1da6$y;6SdD?aO*HCJOp5 z1-cACfavq(R9WbEu7%$rRxK-F8!lWa`U1IjkNbyS10;g+yVy)F5NzYVyL=8V^{vW) zmqwUN1!*;pHFUc+tX|Yk!qOq`PCSy!K0r$6xj64U#FzJ&d%;uM@y>4NGJt53p{4x_ zhreo@8+9F1UWbzP7F|8b{|wG009K3T#vYcFgYDio*S@v){g-qR;z5nD$f$Tm7Kkv{ z-5kYc*%h9<{6Bj)yHjiHxi;TViJ|!Yk~lEkemHDprxwVVY4l`{esR4i_r)pwHp6TI zH902;qWLq1iVM6{e1U%OX<(cdQNxf%^o)L2tOJIsq~)L)`7WhHlyw$Op^ybz-EAPA zhx$FSkOrjZRg1dsgX1iKY3l;y3}SJuA=q>K^(2idW=&O)+T$J4P$lF;AWRb;*}8aoPr%v6sVXDRo-9 z&XA%9GxblKl?X0e5#N!L-lKZX1@m;PLkk`*}1!aBp z+Q+m+0u;9-QjkSj;>SgOOEmGtOvQ}f>9Rq}SJzM#9?S)7V?Z@hkKPSxbE9DKqLoXC z;3vsILG_uVqJrBS&C3OpBlA5g!VduZiC5T&Edc1MPBoH~`xc*G!gQ0T=WONRAgta~ zdwf2vayY@c=QPbG4Ak+Vqqp9$n4|!>>BSeTlSBGWMgf_A50$S%W;T3?L+@@nbL;^` zB-AAc^tiMb{CWro8o))SYX)+Eo-m5oUlYZC2psC&Y`>LL>H9=D*9$M0_m%t%{47Bd z@3A0lRdte0#B|LqfgAlqpA=Pq7G=!0hrC$=glPa`ov>A4ZifxXZ6Mwwxf~x02ni!F z3Muty5%|gaa03=-4>; zEf%rB)$6*L55J=DxxtmUKZs=&4Go9OtJ2h|DH?;@ikQYk&{npe^)|RCBKXx6uFeHb zHLke6mpldks(qFxhK}q^cOb?u*tcddsHk+Z(6w$<+6$UfmNne~gq`D8vpegnqn+P; zj-7p9k_zbn4BvZteEb!SmEG1}r>IO??AgZEM$H4g?cO5KvJ-P*9?PfQpJJLCHCYWN1)=N@y^FqKKk^hzLlI4HB9R zih`0;lbR-oWSZEdCVgX~`|NXWeW&XFx<77htEgS&mhN7w*P3h0cf9X2)~qHX@SJ;X z?a12ZrbxRQJzQ!N*dd~MV`I^?LuU~TlJvZlJ+1Fr~(<}b4@8^m*_8{G~Ia+bmuS3H!B^gX+T2QQro$0!p&Zh`M7ZTjO zKHSP=VCuIuQ;8EFylG>L(F$31b0UqM-ohvd?aH(J(Y@*to<}2)@Oq2RMx_J0$LrGj zOroaPGsbt9+tg*@&t;T5?Bik;z5=mDChv9wU7Nd0TXimtZdFv%y4Y&m-t-DvXr3Be zYuGk`^{L>sh8nS0)Fb6cVnY5Eb|+zE)kC(nLwkFl5gbVfNF=p|R%@ds#z{Z%JUyqp z15?JK;)pY@ujKIC`ZZaJ(>w$m%coDjPIjx(W;ZTU8I zd{&%g@mPG|{mvm4gzkV~1M(tg%|NUTJp198%>u2;a8QwE&S}!Vu8v(MhwKz#OS!XD zX+sqz^H^t(vN9}EY

qZTStdeX2%$bUd>4H5>o%(i}h`lnj_DEK+OcA}cZ6Hv^rWY|i+2D&^ce@q$KtMiD%JLOJ`pQ{=q zMTb}lUDMf`vQ6~Cs71xcClKc@CHT`MKg~3c^&wLH{20(NRBI`U^p*v&6dj^q=PHtN zKj)tjk(lvNCWb(Tq?(gPcynhp_QYUjhkYjsQ3XqLWjJ$4riH;dIa>j{+Ar1HRiW0r zvO~n^Z9ezCqh&6K7b9AfArMtx~9v(4l;hf7lvuX5As00yQ-}FgbBMr^04YC z5VHO}jn7{6uqb#gDRoMhtENQz6f?=M$^{Y9hEBJ1;TmWe_VtI_NC+R&g`Cmc#7)?E zcBrGrw_^b=W#uw>rXj`*OX^qC6s$Hd9{f62k6k|C@X=KVwn@h24EvJn>UQvt8u)DR zgQtv20ckSl*h0mh;9T_H*Ru=tr}Aw}cg6Z_9oHzxP&`H@R_nXWS4?cSd!Eyi-+t@# zW9ZEFj9l_2eC=8`P$$R5#B4rO`YyP`5I@UtGnX_dr`z!pQGl*&6LS@L!@?H#(Ppjl zNoXQRu#3RYAT)7z3mEd>?-(-{de&@Kc2M{2I zCzj`Y7nP7!L;Fs%i1yT!5AjX2Msg=%I%8C~-yHfkHxo*tZatNPI{Gf>3E(x^=GNrh z?h~u*XoCOv(k%CVmzBwLNnPVLyROS*&cX^J0lt~*rFVS2g1QT!UW}~$5IqUkd#||f zvz>Y?ZBXy}EU|M&Smi3)UgG6p$GpC-_Y*(0@pJVu-~*^$hnZc=zn@lb(|4oGRog=ONYxYi<(iixg390MP(QR?;qzZ(iIXaiRTsZr2+e%JVX#^ z-};Mj@QE5()(-jYcYY6v6HtR=6|{uZJ4#knQFuLw=h>6)=H!S7%T`wd30UgAUwmf% z!hF2yvUXl_i(|rM&Go$$C^XD+`EbyA!q}j!d_4JkYdB< zL+@;U#$iI9O5)=onb1FdmyWQ>Z`+PW(ncQ?p4{wc(PBDa;bw#9wC9}v#y((!nV^-G zTf4KAGb~X6Fpdl<+|+~VULKWz(J@rPbW4kmkX~0%e%Q~m3a-l5FyabI{`yuRnGbh@ z+eGs%84v-ZT)FoK&Xz{*b|WvGE2-rLLJ(txvRG#=6lZ--@c`HY116J}HY@+-10aiG zBkm)fQ17B>mSgFzGKH%Bts1rg-yFWeM!n-zi2XwOlC&AmaKG8sG{4t#IsF#w42zI~ zz6xSa5@|qHojvGf3bfuLB8*2dE7>QVlEOlp`Zicw%y+#bR?MHpMJA~M`r(F63eXwc zO#1hDx-D(=>6rEN6Bjc&2z&d}@6SWsv;OUVgIy^bL;8_nFI;FWA(T~WqC!2QSjO#R zB72^{q zA$2pJM?S1w58R7C6%qo1npxz;ZUfrHF0dNAmAK+DBYRr#TsON&`{1B9fiN6O(pReU zQf^^IO7p>uo0t7R%vruEv+&q2^XD0JZDTSMRQm875AJn6*1OxyvNqgrvdJ|H!srC` z*Ek8n+(oV&kz%Kx3B6bao+GF^s8pTM6{7IG$#Jikf0v}SM;b?O_+ABN(l0r&em7;Y z>)ml;#$1x;)+Bq`R_>J_0H{m7!wU6bXj4B{6q|H_C;2o=?)2t_5cz`*8{BdU?}mDI zHR&I+4}=I~N@7mx4>6WczLMc=uS^QP@5*0#_B711$dk!(x`#e3jN{>~Hr#XC5*t#g z76`R9aUCd8lZ+`aw%%PnQY4CE;ckP$(*2_8gprTX^(!KmDYwAtTbV3etTz_Wp`w(3o!P1rm&BHP>YNwu@$M`E>v2I!bVFTD7MXSyv<&f3Y zff~FmXj5iR7usd4@j^c-A#D%ke1<9K-u%o3Er`3`~qZ0gke%G+Qk_8FXp zI!?R(aw9IjwplE3HFc{?-bPNnnZE`9)@Rz)r|9BwOd#C_(|&iV0o?57fqUc%mE zr|%rwxEx5cT-61{dgWP2U1i-IKmV8|rT4I+(19*)ZQdlt*@7aXQuZ?dVGKxfwSc7i z)2UX+WF17g1yLB`!@=>L?Hz$zUDC-zMicxFf?ylbnoE&gx zTVL=9yzxN(R~C_Jz&Qz;u1FFCL>Q&InLW#_HyWwp5D93eysrxm8mZgry12aDO(wdZv|@y+3pEQSum%t#O*%Q)zp);8Ys?gmgjlEjHWj3R?0ouDklTm4qIHu0?b&-a ztvu@Fb&_AiojUV}zHp_lROBA(xHlg?vX{y1?sG2=lGnFEJCTfUI)SU$G6UoX_+}he ztghtv1eLuEq_vBPX{g?}@Kf{QRuy24=$%?Kntk$IxLFV~XmC1$NIk)4xsCgl`TJ;t zkDMs(S5Z$U=3;W>^u6(K;K^Ou!S@rp87g@cN}65cQIQ}i04WEFjg%y|=;GWtdHMKk zrdEy7Vfg=}i6Zm?fJCH_8(yQIEJzOl`r(bbt{|>8dHmINc(TWA=gFxSr8K80$N5>@ z$(pb;h?SW?gBi*y@+s$uwE_@80_;e^eGTCe4d~e;EtPJE7JhOY{nM-UxnD7|5lSs` zJStq(pt*N@DFe1feP%iY_FdE-%Jv!&$30yap+v<&nz%J1@VtFhjTUH{Kqvsuh|SIO zpCG<{>st>_OnT;a)}f_Nril3;d35S7iFSd-a;~3>PuV-VqN*zWu3$ahTC zK>p_*QSn6m(os3ZMz}qOD*EDBJL1k9s6$c@g^PF zg$WLJz^?gXPTtzs(uI;&5ZkD9ELdwVPzLO!#ocGB@@Pl(qs|4o+WkZG;m%B-qdt19 zI1{C0?0;^-M*(^dwc>p4t1k&!s$F@tWA;`%7=dZ zsNKCp!RBVZ@21*d;ecDn20b0&&=aMwVYh{|OHS4e4n_zTL;^X&CE#R^)Y!+YC*PSz znT;?6mfw$%mGsB;TLGRi@Ac_|Wz`jEFod8jT5(bDUUmD?Gn_JoHoCsJO6vqTXTI7( zqmwUVPhd0MpUDdE=G)To24f96_0W(tUv$<5Rg59Ap(*zlY`7rBSRRkEZf>JrU(wX@ zO=62Z9|~7hDP=2ztPSLz2DA+lm;0|>gf@-X%u1`qn6Dczf)-8K>ydreKa>9~*XWA6Vc)_$cvdjFb8&Obzg#IA zBiheXj4b#MY>TOoHB3{M4CN5V0vQwzizA5bc%^4b%r!5`p{4uVwX($|t^yMk^YkP} zACps@fsIYfnXo({;e0!)PmEGMSDdrWgh5X!*Jy# zabwJ7jBv%DTpvfN?~{HAl#!ad6PmyfBbhoSz>c#vpo=hC!RXRB;gKtr#kIBiEX99;Z>Z66^#q zbAp4AT(jxg`fT}AQk6DjnBQfB4amz%wZOmq1Jti5zDVt_RVEiV_Jc^mQ?w!^AD^F% z2Q>_U7Cs;bdlmTK18CFh?$r>uRo{+B173s}ToMfjE?1k90p*M$=`13WgCljmx3}X1~94&@;`|V6#|UylMugj){Z6(gA-9ayv#+ zZfE6dLsl zWzkx)mV}~tWn*ma5N0J6Qs`mr;7?(&^FB)OHIMFE4g*eSy5R^>r+E zXJ1L7>*E%4yu-P9Xls~5v|5u)fd_o#}Cq4L6BXDvn&2S zPBxy)LD$Ufs+Ph%03FcZBi}=JT}i}b4zN1POJ*5SA4@ZLxpltx;|72CQ7$)blAOM1 zop#GsX~tANx5QGngYrc_ezr-o^+~bNAbqBHYvAVD2Px2NUGZ4jLVvekvS@hl@G5Nl z-W5S&4ZZr@s6blS{m)y@!(J;nEHj$7o(Yg7sH*P*;UCs+%Hlb0O5W;20^l%}SAyYQ z2Volmv#k)DX$x6iX@7YiKIud-d;;Dewvbs)HYpKM%%}+9tL`aXJjG zPYS?#YrYhGc{jH`U9jVIL^9gzf}a3^HS;Y?ug&_u5F;7;6H_%qS@pm!1UwnGdXsD@ z^6(Paj}ncH!w3SBQ~dCzgpT|V@@&#adRqSVXF{nLN;STab4_}NxM;QjZPU2%iKe9V48!=D3t*z5!U!u4&y16|TIJRdP_(eaG!=-Zc+jW{qNmQUnNq zwVREq|CP&H;21+}A`Qp%!|%@p#`sBvRNC0Oq!nrayciJEA3#)Vf|FH+HR7lNz=6^Y zzqlCZRzOFWryBn|508yqJDn}L}EM$@KY`D6jqnj21( z5tBTs3Vg3ZOlf-Nns1J+oX>zAs`YGMQ?TU0k77`Cieu!^h&m;PpgCUn}<;L+d$iw~@XuyzX^6kGBDL!+KZ!F&s)`2)gt z1IYv(7Z8TBIq`5%m1%sf!;L$k5gH%9C<)Ke7TngGzt{Haze)dpWou~unFH|m(1Z6J zGWXMtoDwxaEOOXgL7-U+`v0+y6!@x#HPT5@zny|EIb#nP_V2fX+&{83I-J8Or~-}$ z{*-=#3;&pdg6c;Rr#3qf`L221YGVPHBOWMKQFBn{UOcl#q^V&@&q1x5;TA&@_s4x> zjtL+|6in9%L}$fB$FJLn({}+h?DL7DrO`XB)h)n$Zt~16`sJHTr2t9~7jJ|s*h=?0 z`f>doFvH5^nfrqxKIGlLZeLCDp{aTVH%^_=olL0l<7zzfWIp7mZX3FQ?uO}mcLZcb zQwW34VYd~)+=-UfXy}PqSN!?yC-D3SKQtJc@W6xZ4_Vc@|2SDuO(z!=`Md3tBZtFc z;^S*I+!S8{c$InK$NGC7f2O{T-VtcAYb^!K%tnf8;2m*fS_GmFcorm@2fX6z#0~V< zU9a`oyG&Ron}3apL1esS?#GVf2FlEHTsFDN;C2O_kG|Ay{al7`rVS2&-New68She& zF+PMzCs*pirp<}k8d-@s09RQ#vrgYWYk400%a(CnyI$HWrIdal9PVVjnQ#9{q%A;X z{j)iX@4Ges8Cvwf0dP1=9oTo?`3*GaQ^4S4o=^jgzaa(vmbYv;XfMF+dd{^k?;b|; zapI}e7bSt&zJ;!6*Q$YhF;w zdcem!nYGF*?I1X}z-32=Pfl^NE_cTbmE5sAQn*2OW;L-7Q70lIymC@By4x2NX)M=A zG7Ql{KguW1%T0_3ACR_C2&PjYfG11UjR>GmmOFyTAZ`j3 zEEsjb%fOy!lZp7*!9nQjf$eYf8@D@C5|ak>cv< zMw;s1GbDOOF2E!Jm9QzH>$>*#G#2YG2Ws12*~fpMM#A^=g-Sdad@&>K+O08j&2T>e zy$L-C&L2?GB;;uTJ^-Z+fH04CEz8y0furC&^xhpvslX|F_dYNV1nLoXj%ZjdFP?tL z^wTjRDNTjRCA*Se2p8f0AKql=al>%s#+Wyv{;F39Ltk&ARRE6g#`*L6*bne40y_fP zETC#a1wXk`8V5REcKku@4=T=TH!R&IC}1-KGrBcAeqckD1O#feFWmbEocZA#rdFha zEgCF0{O}mzz2XNbdSm@MOKVH)i;*)Q7(ylBba|Ji!}J!ZI+C`x$H@sy4Ou3VR1r?C zy$XzM!q`*+m9c^7Bx{*~yEyFYGEq6NT-Of>#G#<}opkHyL(*)+&nj6<6&w}`1rbXr zw+fi3t(Na(Ft45KN=>O9->2Sv=xC}xW7~;A&CE%dE`isy&+t_ByNLMVW)pb~p!pxOX0yP^L?_`eyA>7P6mA*sUD zjVj?r#QBCAEhdf1bsJ8}+5HfM(YXSq@+Xl8HFH;sMy&MkoYa};VPZU|zBxxQGH{|C ze-okwLRer|y{5?1s9tIv2vyI@D&9$b`xFJz4KiPVNf*plXVEPJh1rT|Q*skRivuT@ zF!sTd*r^Q~g{S$~)95F)N;Vm-jwc4gd>hG8A|-dA$vyk*hY0lPUhVjV_q24^xRyT7 zC2BCw$d(4!cGyPvBNFZd6xoT~8@+}3I4`h3)K)5AMX0<@n~iXDumc8Ug1iA*@dO zSoe+jatb;8hoKeTo(Az3j`JQ8RT8Rshl3;E*2aRLXOEenCW>oZxb{*@FjqBzk)0f} z>d_!`_zJt+{7Zx)#hAHjLBlu}W`1beHXazP$}`3U)vliBaeJ%k|mlwrH(Y{0v4TOy8Tg z(%2x7p*Mq|>;bwn%f)+s>_5cd+f}&8;3?~Es-_;^Th#Y&p3rLre>|b(ciI-v;XOz1 zrgT}wKI9e%$;c(%(OfYj;?Ph%UbG_0-3J>0*rnZpf-R1nY7NU7!?PS;DV$7(sI*rXs*4YYMhvr{zvS2g`dJnGMCcQ~>a1{c^ScEVqz+JBU z@k1?=FtOCJ7ax3L>7M%|!|+5sJg=eLZFMMA_WXE5%8eguK2RhA;1}?@pExTbTn@HP z7zTqimy&z_A z2}@v#4d)ozDp~j}x};T=Lrra@EunZt!2~dpj=);b;D5Ed-jM4=%N>cdM%bPp3e>oI zAVfBXrlQE&1*ji55#fga`$YrFu@=?n6GdjMmTsQkIq-gE2lx3VR=?B8C<+a3R#7gFpXPpyWRxT0M6 zX~P-WyU7iG(Bjn!uV}gv25}7^yd0*crZGPyGZlLVm(+O8>;B|IeFFqxQk6Xq@S{in zdGLtgk?8>pQBe;ONh?nn^h{`D)fieGXZR~@c zQwww+L|wSCwiC37;6@4jcr^g23kZJrZO{v1XwZ&=;|^YhuqOkWBy^Ir3TKnz>q&G; zPv}4E4uK%VN6b&f<+ZLQ9%~)V?(@|cPZE<+FxDj(Ik|U#_9^>>9!TAl^SCxIkVyxG zysl2v<~2>aJ3(0jMvmcY0ys%@k=dH;Jal{%EVeu)Gpe4pWxT0f-dEK?CjQWor-%lm zKzhfg;wiZ3z1!|aM8E)#S+uZcKQnG9*8*v;19ZAPuH%j16%gwzQEn{S=o9)*UwaBb z^+9_$O>;>gGu5n^yedw&xR=};bOc~Zu?Qa&03w+UQ4gIz;T!LJT`%cQ6*+}}R^M7> zm`xp_26!?AgRaGCoY~ntcnXTsGJEuCvxGJr*8yr?UYrnC7qX0=m`n&YBHLQ?-Ljw1 zG(?@=fzY-sv&ixHt0jB-u4e(q8uZ1f5i&%&fXqnTRGtfyH~~B^c|cIad@D#z)3E(< zRe^CRLp5aSK$<8ewPEi@y`5D_6X8*^vJ)SHP6BKY^Yu=Wk!%aqucPI;(q-XJbnl;C zIt=RzC=sNU26wR6+T@Z!U*gAq`r=qnEZZXP=JF;4)jxAKZ>h`uIOvH{M2|`VUz2#0S3(k{L zJ$@p|wUrg44Jy^Jp*~&qtqw99YlIzoch0>;-T>zPBke2F;8=t9aZ+T*-Cio_FcLBY z{W^<9dw-tPG7~r^+Bs=(mhf>?0Qs&bkO8MUmarqgR#%1>FE<9PxsGTBsK0%RA#)^=) zK-_Mmy^iuW#EdZiLIVs^$T)``oMVlIffPZk$M2T#%4u&j@~pkKzWHdW*m2xhauFPh zUmqHSkoQ{G4Hm{<rEFaCsV31 z-L|IY!R$gkq;`7$t6;Z#{j@$&45U6*2Hi_XV=hY#;UyR3*IyabF2F3dJFe{wRL>r+ z^+l~CAr6_y*!Tc;1{ZV~&e%;l-T`hG+2j((-h8%KKOqUod8nLFc#QqV4e74p2L>hn zUg><@j$xl~O@Wt6MCWf8+OFgO)rH19fl8Ym{Zeo4t$r+C$EGi$B-^XNFBL4h_U z>EauXmnuL#2?m#isPa8&$Hl+SH<1OW2gS2M6)m$@!+p82R0T7dK;%V8RxDWprl9?) zHjgTz^dme6kd+~^Lmys{CdK#gxOc#L&olPq!yy&iAr*Tg+asgCAMATP`phP2Ssa`A z^yeU;*-HGoLp`i(cGy=-?yoE3#g;E6L$qAr zS(UUa4o*%RoX*`S$}S4l<$aiwbYOJW=$q>vRqss_Gg$3xZCc8IXLBbUqnmSCpw2w2 z>Mr7J_P6hJhP)G+R!0`*L9e+6YLSPDXkp+H+|)*r$%D`!u~j41K}}CS3-E>Y&TPjT zDg$N_FX*mb(vht@?&=mz_d>ZIN~j@tv3(YfVn^Xsyk7vuWT8~4$Mo>bgYDToT56%& zkKn#qy&PB>t0O=ZdIVy1HkHzAjlnazWbtvx$yrr}2S9`NBdHwi6zhSU;m!D$k&8^= zEDY==d&7+ZrmvEkLx;cLl}S#L3IX_V^?$c`eJ+2thW4UEES;tsWs^i%PJ>hDw%X}@ z!#4%b_g|M#UnmlrI%MiY)F2QR?U&O`+J~JDXU3}_IWj?QS`DvEJkB_D*X*?#1?JIg zai)WpqFF5?iSBo<aEVB zQLH3)R$0$aN9Dp#A|ZO^q#63;_b3}U7&MrHW9Z%*g=wAdd=j*g%dwc zkB3Yt{NT=<^H>6IwnDakRLELsZ9 zc4e{MK4jrjmRTu43q)4&E}45u5uL6PYGvH?*%1T2^GK%gE7Ypb>rlzf^yPL{ zHHc;W^8V}1xWDa0@BhtCH0PCJn@j|zH8c>8vhY=N{>!c87*=j{+T;mboAUP1Z^$0x z-=1#aI+2>^>A`5SGl_o|YX7)$DUCNcH0>%LFK3cq2)Q@)K6D9K$!*eM)=*Qo&#n3X z=t%pKd&)1YLuzhTB`d&v2GblyAkrv{e+v5)j+HI&fRm3ahrDQ0TMWjhbb9amM?v0}uaObrG6f%J)&G$aB`PvLcG|chFXr4927{A(JkSC-#L`m8UQ}tW&BA!_<3o8R2klHn>d(oHxDF%x z>i1f6(NpUE>7hHfMS!8eQD1~O?7_5u4_kUMaRh8Z^mtYX1u6Kx5SAJEZ5nc^T{jJd zYl1^DYVeQGhYu@%Y3HvnPcQU_>*oO)tZ909qGQ3ti&MpWE(ER*s8WpG@>~dV3-yzg zq1S=Vj#F%9<+O!Cb|2n5`bUXF#{)k5uO=q}!*aaX3&ks^I^&9tgTc3u-^}zW^lGWf zC{vqD`Vaq)np`-xjde`)R(>~ttF4;eqEylcV>R`rxb;oZCQjPm%@B?Oe7#jJ>HoC0 z=mJQPFsY-RJQKvEhowI1bwz>3VllUmb#+`YPb>h^kx)Cx_Z2!EWcdL`muCEtb*GEH z0moiGP#j?zgKe%M?0jY4-hsCN9mvAy34=61*HRo9v!7w&Rh83h^D*gvnP=)@pQql3 zMykBMV0JDU7bS$Q;1|$Sybh|LQufjkwD^hEnfts#-wC4ZVB=(ll=IsDS=iFns7xiz zBHKpCiYe6}ji#yEauzIs)PP&+;6PR&@bZ^WvOu<@dvI_-o0T#Bh&ALq^<2MoP0V4M z9_#fbTf-o~tkoA=XCcA|y^$QkAm}zt#un8Lym%50RPC}puz`+3ub3Uv+FsTJPe4ijO975rGk`vcn)4T*pr7KuAr^subrUL`v*yP-tGFeQ%0 z`t~A6s{rg7%)9qnR3;DX+8ggV?{QA9Z8;ITsXczlE!2w@BacJzHYoQrXc?D-+6Ufq z7vU=usQsYvxGENOE_Jf}0S2V=ux?SQemGH_XBrFh3-x zG_?z=x(JgdAa!mxm)k%PTAh=FuKkDmWpobQwpL&x;fak|yrnfu+c$yxLeLI`$wP5# z#1i>#F-NwjBM8X?j?a-+bzCdt*X`?STH2@83={p0CyEO61aMEQ5xx7RBY zXYNualgvAAx0c0iyyPVS(=-4RO~*x3AG8c@S(1#&+g|(oYAeijXeb~2^v&Nx2APt1 zvoK)1zZ57FD0e_UtWx#dmu%JOEHX+<2v{VGXyhWW=namrs=$qd5M}+ zwVxz3$!VkM>l^Qr&>8v(EQfsiMQLaj)3vdH^%IZ}U7AMbJ>^4{&^^q*^@E+-+OR?v zAAnxEGIq(hBQ&IGpct;(YeHPoJ-)iSO=ylrAtQ5QE{EzG8nOxoj}at(*jLvg>khoc zXytK-wfg1kzO61ROE{yT_;YAk4`-#-;&uEt*MWOC5Wo|{LW-l{j(tqnq+Sa^ZuJ@naBBcEcg>69LZsnRMUo#J{!g=DPLZYVN-@}y9^Gt$kbA|vW zZog`T{=uYeiPmj!#t(Q-24j{c?IBY+F~9n^!6AfNw3e2T8>a_`grq5lq6C;qwB^Wm zILgL4yhFXW_J^i0=F`ro4Dgl&HH^kX8}Oh@+JX(4OLvC1n#EfgMbO^v@Hc-6B_QQX zlnek{#w}>Cn$pt-%faZ!5hA->16&=AW@VR#VTLdg#x;y#fUKU!$lDL35_Mpqtej~o z|1-n^#*V!F6Rf@L8dh_S3mjZbScdUsdoYFtTf`tN2HMNOh?j#fw)*Wza!i~a;7it{ zGI}bRBKFYZ!GOpD#<*dCD-V63m50Yci?bJu+S4+(u)0n)E%N-ymz{Y>JgF3xq(V?ZbcX+$&ECP?#o90jte!C|q4L6xmH`?sg1z;KAT z_&HENMd|(gwW0I{N&MIuzRRCoeZg1ApPZ@*;>?SEOhe$_X}KBRP+Rz(K{_K9+Jva^ zLY;h`Qx_o~3K<$rXU8WtGMJzOn;^*WHpT9Dh8bSmH<4+%=9iX?LTlr|l z1WYVwp+1&;`0I87+Ozo&n`3bsEKLz?6Mzfq7h{}@VQ z|Np*cSG}ZNQGb)> z@;Z$*ooD?9`sdf+1pRYL{<%v2xpCkc_}>?W4FzAawJk14R>8lZQM{;fA?>`$gZ}|> Cb$E{e literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/faker_function.png b/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/faker_function.png new file mode 100644 index 0000000000000000000000000000000000000000..26e123780d0ffec5b048aff106d4e54d1830d20d GIT binary patch literal 27563 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 R4@Km+%}-jH5{)lM{|Eh-GPD2y literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/index.png b/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/custom_functions/index.png new file mode 100644 index 0000000000000000000000000000000000000000..9aaecd0d693af5614b5f2ebd0cfd22cb29832bb1 GIT binary patch literal 35677 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/index.png b/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/index.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4e668d894740e2250af6727e6408d7a9db7649 GIT binary patch literal 35745 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/json.png b/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/json.png new file mode 100644 index 0000000000000000000000000000000000000000..93a017a3c009a9cec8e61441b01b27c47d32f12f GIT binary patch literal 22432 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/template_record.png b/v0.2.5/assets/images/social/built_in_transformers/advanced_transformers/template_record.png new file mode 100644 index 0000000000000000000000000000000000000000..44ee2f86e492fd9510a0f6b930e2dfbd2928f9f1 GIT binary patch literal 29465 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/dynamic_parameters.png b/v0.2.5/assets/images/social/built_in_transformers/dynamic_parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..eb88d5bd6998ac533beffe112de22d4ba1b04a74 GIT binary patch literal 33188 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/index.png b/v0.2.5/assets/images/social/built_in_transformers/index.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5872a6a418c2de7be0909e99e8802a063472f6 GIT binary patch literal 30627 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/parameters_templating.png b/v0.2.5/assets/images/social/built_in_transformers/parameters_templating.png new file mode 100644 index 0000000000000000000000000000000000000000..75c05c8f90dadee5bd5438a95045432c4cd4b5d6 GIT binary patch literal 33544 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/cmd.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/cmd.png new file mode 100644 index 0000000000000000000000000000000000000000..64fea49154c183a7e63e0c949758a2c15c48993f GIT binary patch literal 21868 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/dict.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/dict.png new file mode 100644 index 0000000000000000000000000000000000000000..96442eeda28275e85478551987f73e0a07fba88a GIT binary patch literal 21099 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 F{uh+_XQ}`I literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/hash.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/hash.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8042ae502dbd67e41771478a0c622d40a7fb71 GIT binary patch literal 21477 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 Ho4fx3$tu&7 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/masking.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/masking.png new file mode 100644 index 0000000000000000000000000000000000000000..94a2a33a9e1fb92295b814b5e78762ac864b3cc5 GIT binary patch literal 26608 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%0A@O% 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_float.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_float.png new file mode 100644 index 0000000000000000000000000000000000000000..b729081038e1f4ad7aa9c32df5fb92881427a0d0 GIT binary patch literal 26293 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_int.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_int.png new file mode 100644 index 0000000000000000000000000000000000000000..0609004942c6bd57a1e51eb657b7ce858669bea5 GIT binary patch literal 25062 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�J{1 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 KcI7s1H~#})#sr%H literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_numeric.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/noise_numeric.png new file mode 100644 index 0000000000000000000000000000000000000000..3c83974ef6cb6d6e5bb908e84a172eef41d0b418 GIT binary patch literal 27901 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_amount_with_currency.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_amount_with_currency.png new file mode 100644 index 0000000000000000000000000000000000000000..d01d74e61a5f029d644ad957cc16ec14b9a287a9 GIT binary patch literal 30364 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 m?}guc;rCwn|Jn;HI?N4}5#4{0FSO?pjY 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 TnF@90e@>k|gMIYF#b5pdA9@%Q literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_cc_number.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_cc_number.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2c1faee3b1380d5a4ee3daab19b570116f459e GIT binary patch literal 31446 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

gWG>kqeL-3QF>TB_a-6O+5rxxX8* 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 KpS+u9&;Ad-Ny6~} literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_century.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_century.png new file mode 100644 index 0000000000000000000000000000000000000000..a2b35aa50f5382b085f599efe9a1529caa0cbbe1 GIT binary patch literal 30883 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%0DMKEiMXj1Ki+oo&&8B;kF39?S_Pcf!I z_$lhmuxzmEKV}5NRL`;J*{8oczlJ`6M;? zj6%#QqoT1_EDA|Oz}JlY1C>>KGFSaI|K%U8H3||!L^^)BvH1=Zk+lBxkTKFLg_-_T zoymulbz?&p%A2?Bqh#;7NN^%hsLyyWfGkkdjPEUL+b%8TP+;&R2>v41Bvo`L*31p% zx~a06>O1?B*zjyWyP_`Q#H{=OZAN~4B~oU($QYkPZR4XW)vfd1T|^k`o@+#+KH zg|zeRoL%X>hVcUu*!hgxsKKLn<)hD10+e zCnI{M_Tzs6WI5~1XMYvh3|~=vNO?KLgUBl*hMeS}Hv`Us==8Tw=V~v^AmVuZ8TdqZ zlY*`qEzm?I4b8n9T42PJRzPQamTCKM`Gg`8G-MGu%7gJ5aETg@JjS=~ov`sQ6xYZ{ zVx^VFSFRJv?=qRBxkCqz^A%ldB0{9O0J(99vR+P~(LpZXg?cyTm?SCs%IC;!VaYvU zM!W5`NKtWxIshMg(db<4(vn!y1@LC8lOR1g)A=|)0YF%YTcpW!Xn1qeXbP*UI@h=kaaaFur%@PF**0Xp(fQRcy%Mi43K#rC2Io(ynOaITA+E;>cF(7W> z)Azf|#HBliE(FiGNNA1->Wu_4YJriXflEOt1n!0a?3qu6`Ctlej{G?I5h-uWyzzfq zQ?VwsX}zMOIdw=L)^;|P8_&nsZwppbHK%+NVum+BS8W#RSfvu07YT4t0YVT83eOQ@ zd^bA$g_V|4e!I4|!(z)6HRO1&kL-|yrb%k6iH8RC*GJBtP18cts71f3V2PKlWt~&N zeBc>k0yIE|6!NC`R_v_+xGhF)*v1b~lZ!lO7ch`Da;k_e0)2uq;;jhZKlV{DsNU0n zgV4dr4aFoC*%O&=AWll>BAmYS+j9dBv}40&3g(L4{o<8KTen=>)nxZTOkCEC(5Bjf z!@mK(KXiYcXEUcD)I=fkkGsqGkWjSX&(ZgQ(L>tGNG)?bCsN0}5gav#y5CLI$;A>* zV_roF;h@ad#yvrdjgC8#qpNS2CFHXjJXuY9|A+Mle#ir%xnC{Tt&iJ$vE_W>Ws zUvzCh^n44Eu?sr34GGmt4$%RE@MpsZK-l3DfMNG=upn|HwJ1$&tzmn51kXQoJ{zI0 z0+1W^W2R{tNxQe4pfOq-%R#7trF!dLbg=xnri zujNx+GA40EsIQwbJX$YkVeUlJP01K&1VzeJ7`|9LS(k znq|F)Tr+XDx)kcHBgY8Id1jpo(+S|X5(4sG!kI9!KdqHjOM5n$lt;<)DxnOWNOgp` z{lmc^pK5o2QEm^{Xok!UjiHUVjZnLEd=R$@9?drC42YYQzaJvC#~me-6k+ajb*-t5 z>Pm``zrd5_r2G*!kzks?pFTLQ4mgQmW>))-G9y5r-*mFJc9|xAOR>56FcV7H$c&Ga0za#9t&e(8iEWGJtY$2}&j8 zx;pJ~YI>V-5{ywTlD;uy2zmfb-i~@Z1_n4|veO$RKPo&m>h|v3Ip!IcmN{zXuyIn) zM9Li@!QSwXJqBJPts<|uT=t7APGMFUAkVQE?+bA^zU{T57ILGXBG@fR)gAf?=Pyr_ zO(E#WJ-ulPrTQb1ov#vOx>NbsyVD$fqBH_TF4$z?^-jOUZuicS2-*XtcNtK( zNW+BgiOq2{$YFj9g$R?8Zmzp3sH#YvgsyXE=%X_V1+C3>&9P$|_RUamgTpEQgp{t} zH8=!maaZuSg?}H0LY3dnQAX^IOGY-BNaM=u2ib&^3_of{xAVr5IZimeEOe2GSe1fM zkfO5s%9q=qhK9lx5D!$sfbCg)OpqE^6&1RJGVu;zZ2BoZD5ggAiVxR-1D}0` Km3!07@BaYdA{?;* literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_choice.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_choice.png new file mode 100644 index 0000000000000000000000000000000000000000..156e3d3f84d5120dabd6dc38690f07fbd9b80468 GIT binary patch literal 30601 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_currency.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_currency.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9d16a5f1231a36ad3411fb94ffe72cec1d747d GIT binary patch literal 31976 zcmeGEXH=8j7d?uizBUlBAxKq_E}+t+D+oyMgd#J_F8kzH7D=2HI=C;87V0!D5zDQ zKGCJ1_@|PB;$(o|5OeSgaMxjXW2?qk4Vpw8aEvJe|_{8t?}rWXtx@+VBNk5z7_mb@&uUr{O>7+9p$MT|9g5jih}BY z&k~h_&;IY38pr3;f1d^CU$H#(_u1#63*Z*WKbH3Y82#^ArO4^K|9fV{`2YX7{~ubr zMJF81-;K9aG-C}yl(htVua3~NLUDqgJdyuj4xN;mGAW8IKezG=2{Jp-_RidsJyU}K z>_nC_h2(3E2H0b(VM%e{RU*NB_z#CMbR>6U_8~Z^18r99W~p&l4QhR<1pU z3Jo0Y^-qdpnM&jyj0l0vn9)@Vrpr4Y8aX7ytqD<5FU1gI*>mHs-^@StzN@(oV@Y!E zzAMvY6$jrMS2Y-QgV5VSX;L-bf7D^5yP2<3eAD0cCy#Z)^%Y!6B9@dJI?)_p_e%51 zN8;$W6@R;BJ4H!mIHo`Hy`GJF+K)W1u{R1zye+jx7Ul=9WFLAzELy`%`FwzjFHr8T z$1f9*^F?-?%8HJG{snDfFIo-LCCe)UiP_$1U5+a;7b_r zP<9p?SisJc-t}p<8Vu~ypi%JI9kr)J0Uj=>7_rh3tJJYtFP}@#v3kgi&5I_Icunf3 z>NL$7c+K}F?j#oCXn`nkGbABOwx4UItEXZtx1;kMa;>M?6J^^lU2z`LT1dZ#r));& zM-zm>_y5WY3lKgQ#`!DEj=odMx3L>cn|#?YE_6dM+l&fhbCT<#2au)vvi@-jAFuAGtET8hv|sE^5H+ObAhCee+-k z`vpy$`TcwWVu0{aFI6hAS&jg!HcdA;(-bG=Gny0{HEQAQ>`>->CMmvw29FwUsTcA6 zWnWY5Q}_fu9#kZV8$ws~W)_$gzZ*YqU}8FKf__2;v;S>Gt){shAYEAfObb7ivu5jV zps!cP>UOcY-j%>vI1XMTL1w?(WaugvZdM^l>SQ6%GpP z#Sv{adNELwT-x$>g}EVNrobf}N9Q%mQ_tO7OZ9uAZODi!opF_} ztmXWrU8*)qvscbsPC`G2tzBd)9{8-CjbTNpo%dd`2=K96X_Z=Ny!9>It=SWwHS7PP zr}qdT)p1!%8g-K=X;ePH;-`Ty~OW7 z4B#=C-?qW$IP?E;IztXr^ghC(XgxB>D)~hn^mpkDHtDkD^p?r8~<;O{?As zBV)^!D%oR;X(LpJKJ~teH5kn%dCX0jF8n6OWird9!gx9d+Mq0}5)t$AKts+Ekr>-y zGu#V1zp~i&Mnq6X@6&y^>PaWQqVkb);R6$IcGLd#@$#G$tPKGZi-MujX&vl>?LC(C zWwzRvPEIBiE6zQ$cX{Stz{>nU72=7@7p!vII>@_5mrtCZzfaDJn(;}9{Vy(}cH6(! z%lzl#IG0YK@8%LZ7K7UJ$L63r2eGv~`_HMh?Dr2#8hJLFT?Q_+d*eZ(@7C)~nc8!y zFCFGk=-e+;4>-yCNL+7@Np+e`A+IlihB@19nfztR}|A_b`!xi#} z#Eh8R{2o%6hcnIPa5H~seJ=kbZ*dP>C|=&w^kr*9=Fe3|=?XQcv>VT4 zEQTMD4u8v($2E6)4S|i_>2TBY!dEMrxNX_R9a8V^&JEST<_x2L&koG5feJpk$r( zo_bKKTht#xgvwZpUXH(y>d4Z$OT$SJc$TfV3v|nNpENQ~Jj$AFZoCxqwj+E0+e?tj z$Cl2~3=^l~ngdo^B%hfuyPC#5XvQ9lqe_B;2kr<+Dv`_RP*ZA~jDL=~WThG?JlVxW zbqnSPe3rhui`g(@A18x(x}N^r34wm)Lf}4AVp;*JqKS9rX-aw3CYF(@0>tW|)(?vU zwla(2lLjlR+(T#?O6GEE9!4v*tRjX15213fd=Y+*tAL!RSL6bGk|*GfY!%h2l%%gQ zE>Rgpipn&I){i?j7d5J)P6tYp`$tenAn*Cr7kcMXY163X_UvBzskfB2C-Qz%7dj7EK&C0X_wHUWD1z|szd2WGrqZ$|GRsQ` z+H!=c+b9wIsZf-tpt;bmj3xSg-@p?V>w8>fHT6?_k3Q4p(&JcBDs0b!LKk;dQOh3k zNTf%B&swpZg?B!t-@VF0E2FrlWyj7t0Cx3i-A;%U2^2YrHE+_wR>>~NVo26Jpd< zY@VbG>Fo2;o_th!2437cpZ5w)XhtRs_IZYTWU}Q$59^d^57$ai=Y9-Bvr#KQyJZoB zU3-j1%HX`>p#;ES7*?74Glb*&+mcaFRS19Uy6LvZnd!B4uv>qRqijZ|Oh5ilPHnvs z$cQVw3WuIqzfWMIU}xcCv(+|1As*+r^Rc~-E{WSYn8Vqj7rg;^FN0CDW<3QggkvZ3 zYO84b?DZkm&GenG3C9%%9&Ha_#$y5=>Q@|sdQ^Ax?Fww@XHgg(cZ>soq9*V^VU&my zsct6_ss6spb_#N#I%Tj{Vn==dks)n7*71^Hqkmg8`p|%c88J?Y9~50C?P@*U3Mg$X zFe&6Gb@V>kyOF*b@XNWTSWEuJ0PI4jOJrKsP5M!yL$NmVwcfT&1utpm_uqc2X(ZTuHf>y0bX`jZCw*4-xSqGUzjWiH^08IZr>MM>buD0*FAIFEAM+9 zcTL93{Q_m9wE9OXxHMcgPKikHnVd-3#9El8XuIHFjAlrZ{I^YzK6lhaSz|)-^H!Fw z2@*h#Z3y=ZsyeIL(^l z20rLl+8jZuwA2H)*}IEx;?qk1QD}<=w+m^HICh3h9zQ_V1~q6J#;Z`GamO>^1kSVN zk2zIP0w$L$oqOlvZ1!aq0bHGrj`ClaVFm4mowjaxn}oZ(Hpi_uSJvkY+%)Q(15c<0 z(tQdsxI3d-3B<9Y_vDA9iD3>s0Y7Bn105@-JQ=`!g_+$=ZnilA__=tt>*MhxQ~;cY zHgWH2%$%a=C~?I$6FYZJnQpccw?j-v|+ocmE z*du-|mf>|NHr?9ocDYW{8)fXIV`3)ldypg}0C4U#K1z|5b(=r3YN6b&L*CMA!TT3| z5sBal)q`D&trhxg7ea-u+JPcH_S+SAd@{Q9z{O9e2DD&2f*QP#$3AO8xPevPy93~G zLfh7;s56onZst3?ZA$8xdmmSA-ZVQZc;(b5R~EEB?tP4@V~uHR!*ZY}TwLFLd=8dS zsnBbz(3a|v1+(YV-Lv0?TA%Kz5Ep)o{zW48cX@U0YiPa2QAVE=y+b7cyPbI1vT8FM(pMQ?V z-wc{`mUzha$mDmqNEbrNn{_z!NXo5g!@{zU<(S0{z|pKeuCgtGx6bO(86Jje(64WQ z&Ez$TqT7qUScx8cP-rWcuk;->K!rqCJJ@>Hb_}$)e{^e3xpuSuFg1OPq1!4)r>qJu zbl0MEiGY_r!Jqm5j-0AwTXx~?-`QlvU5(yQ^n@=(xMpGiYc)Z6%8=p*fAQNsC|he8 zA=)PW#HXw?*Ca;Shn8W{=c8L*=^e{cE2~2^5Mg!MU)k&WX6log6E2mA?w&A+rZ*vTb7(=YMIm_?QW{r)zW@y z=0(Eqn6aQ72<^Fs7mN9e{RZ$g1BF7{xY8S}a=~f!U zE4oK296dVRPn3wGLp;T05*7r|^b{rAKrq7CKlv-1E7{q(yB}W3_tHnZQ||6f)D$Q^ z%Tw%JE|5JV3JMjqilzbRX8&-oziH#)Lllpp3}ZjgVj{Yd?3{b=&)t)wQG_i=RACf-M3WOzQ7A$w&*;uW@t#pwlc zVWpeWpb;I8ytN9r7%YGr7T7v`*3ZtjxTEW4a!Xyp=4hBI+oP3IwtAQtkxw@Cj0m@0t3m zJ82!tnww(@Mga9Q6!OpL>y@MlJp^SxI6534s~>`h^PKr&$qrm9?bEG>;8Fj@s>iue zt)_XG(mwMAbtI*odLb1hTd02kOBC8>SnG$@u#b|~gH}HD_v1RBmhP!KB5tRI zr(~qS>k2INv)TflaifJ@laJl%WpxbS2UQO9vg?|?m`k~P4DXwn|D5Yq-4jl|D-(Y@ ziU(RA=66rtPu)rA&^rLR)zx15sI=sHuyx(`*(E^I59r(n7(dsV^HdTtV@P6uVO*j2 z>GRnizlC`A8L?}|8fv)T(sGCXB+n!3DD%h>e`&;~Z;ILNjWm#Z5U6df6~~f92arUS z3f-UX($lz@1w@pK7$^O-ZooAeqxjjsb6GiliPZ}*4WcA&5;f^ z4)$3qR`hJ*Cfi3nZ)(R}fNB=S2qk%~lmql*w;{^In?G3JLbdI+&?4lx^hvrM zZ#KN$&L894CC9QM`e{1fRvVT!G2T8sGM)2UDWatz$i|=~nxq? zT@^ULlzEZqvsO%zK;~(b5futIo&1_2Xp(d-PQ#@?Qk%^JF72FRQAtQjPu&^SN)nrx zUfab+DIAI%<(SCQ-+;;KndSE$6p9|_Fxq9Zi9D-dogxWc2*k(d52^_A;g&q!<4s7u+8m_E9e{NnOL7 zKPe8#pq&rXa{f;-77g+Z1h$-{^49Dx)yuiM!ts}{jN565srcjV5}nPr$c%}J7RV@X z@GzfWFOeR;?SSB7SSRG$D6I3M2U=z^hh8#=V#Efx0YMfXv&QpN%EFX)svxS`^*6f)}+5ta322a!WuT9R~|zyIHdr}Bym+caC{jj_x^v*Jl2wR5eRs(!8iH!n)RAaLV9@$yhzB?!2sd8NrG zlFY;}zj;p;O1|?CFdU8@r$tI0#2Efg!?T?pzr(2{Vz%KoTxKya-NGt+Qn%fA{>+UX zGgsG`z3YpIG8tE{P0sJ(k2Y9FeWi(j8-$=Z$W<$}7>g>#*yR0(@U6Ef*?<68Ee3!-C8z zAFJ>ZSN3}t(dOU=WaV5NF>~~6sLaU*y}~oHJXEn_@~b zbJsk*Vq}}W2Vb8XW(5d4`i?er_6duyaq6}fZeTp8KX>@SPR(Z0`Bt9Rfx^P*l?f_` z^>0n=J0m-eJ9Sz~8Ej=7qvtQ3xym#R^9ex0`Jb8pf_aO)M=cH0%fT%sorAI-ua$gJ zDJCv_TOsyMEND0{={A(zg79myj{c%L&7Yd5=;1snBwjWKra%bK7Ev)7z4m0+Cd`99 z&@E<6Rc#)%E0CHYjc72Jfz#InC5xGAtxc6mRzUm==(<7GT|63|F#J#gCMVPxhj?QT z(K`|b6}D>zO)Z9RVs&?VKVI`x45Lr`ARiQXu^iigDwVb^!?MS$rmuqL{2e~6t(3EpizZS22V>CV@~bhN73 zVy3o)E@msYC{8Gh<{ere_~k6K3l{k7T_U_noAnx}6@Ez@FZChF;y##C>F)l>hDm~? zb^N}IIQyHIG2ja#XsIq4gz$E+IJxH+Qwd$j{9Uby+F6~!VS9RO~4D(T%=acKk6^K=zq8YZ@*$<2Z(jqp%Bw`#|`3l5JIV4kY(|>3cKpH ze%Zs?F9@$$U$jqp7izgSBzpu(I+w|Ig*Zpezgto>{7-wk^Si`nLCSBInpeF^maEsn zBc3ZLQTyV;=6CLu>4k{ePQ#DgfF} zZ#r4TCJ%Bpd;NUBUtJTTfsgi?9#W5$X+$m}$sDrC+#3BG|8mg#fLh5F^ zXwU8;lu5mz0&oJ`JvXp*cTXa?azQMJ+HSrM9yUv<0hCWWZEp5-MndgNy03tf))^a@ zTB28r4tMtcv_qvV8|aTsZX>RQ!uwSs{*D56nqGBy8Yiv8={W#OB>q5Hha4W`1RU!Q zbBZ~=Q#DRLiHa9dHK~pF3Hvqs9I%i2ONUIzvVP{$2Ox?7N-B{SUz5PZ{g8%{I)ua!H1e-jBP{OG%emW z&w?p_!I)L-jezM?gX2a||MELhi~LyT+F3t9$7GsZ&*D3IJ(P4mfqF6brGO8;-60Z z;i%k7W^$>8R*JoEKvD_-a1LWFLO4se=QaIht}VNue0u_-{uDp)Ez#?wr%%Jg=2rav zA~pt4S6*8po3orHc~6BxHugQM01_cL;IkD+3PI>PiRG-pLZT$(n#GCM=jIT4Sv(mO z9>X-J+jw(ErfJ{ai zm^+Icqzxy~kx%Z#6-&m#gns%o%&9DvZQ}g;N5qzKhrZjvErVy?dyW&23^dm(y5E!Z zCE8*TKlThqi!u1E6tjqa%$?9P-U7)SLI<_?S8b>$4ynT$?aKHWE>6An2d;I(aUjh${H2y zW8~XOAxz^K6H>BU&RrVa5tJDz(R&T1<_7EKqhKHg?UpJ7J&yxu70=ZPn^*;~e5tC| z)d-x!G&_FQMh^xR{m8TCk$7NYy>7B59ajjUSs$zksJ90Y5_5gn(SOIFv}e>(vePt_ zfCDAjOAqrZ1y#}x=D<80T!!~GlT;lY;|+B4yb86JL8>rqb(jI1xWB`a4b1CX7D|~`9ek~(*mKhX(vw%6+P+QJv@5;1Hnb)DNC5RGoFlOTbXaXdh-3uj1zG7z)V7|eT+TD7E_IJk6 z09vdPQ^o!PG!s#PHALd6Sa@V}E8xxg{cD(FAwcSPrMK{j@+n!{p2%W)WwQ#sot?J= zofrNBM7u(#*xWqb^^9UftCJ2VSSkB?QZPmz=e=bM)_$P4T63xAl# zZEIfaBAg0u5*_D| z+B9e>b;y>AJ;T(3lx0A;_ax}${X}zLuOlTtqAd28AM_8 zQ%j9x8w^kMR>clhX}*{C>wf!qI$=suXOtsgB!+8CEcVZS-*IPQO}|9Tt>~WY ziD`SpT59%INeKTR?Ti;=tlA@ebJdWMk@M1JEHBfk%cXfY5oy062G@w)XwG8z+k{Tj zlhJ3EK2;Y&R}~XfeQo1%P@`JeE4!h2Yl?+T8jq|HHxmiBV`aH9}8Geoan;cmlC6yKH;sRZyyUY$b? z7b^h8^>d#+&3!S6@4%(U;J!zt>QZ!~5SOky6OZQlwu;y8tHl0U?cNXNh?`Reeb?TF zn^q|grqcA78%#<*kLl-5o#fDRPvaA0%j+&agH=vSrz(@?l2smu#&(n!K|A9&7H!=# z_+tAP^r^;nUn|~!cbP&m8H6-;_<-=!o>1YUjoTD4ah;mmw(t9MR{fQ*B@o(7H}Bm* z`iQ8-lpkevbDswfV*TdT(PZ10t zYySpCWIuO8iz6vKO3lH&uGOWK7`D-!73C+vNbJTKFcv5RHjv_uidbsk6-`BE0qyRS zL+u4rr1rt;?3Us~oWd<(P?I^D0tyftv;5bQ3t^JT8kN4OSmIhpchg3hMTn|%iZ)xD zpN9IC)(^d0P0ZoHGjqS8#(KQ&SjZ-I=+4r~#{l`FWb$qkx9CCd(oUy61e-!uWWl}d zt5^?SzE5QBcYZhRCH)ox)}wAejbICy0j2EACQP;b)kXBtzmpD$%y;uR|9 z`o?;b@64m~wH3>e@%-&Nw3xt`TmO$83 zdta!qtOd~G!I!t2n5zxO_%;{n!lwdMIUCeJaC2l^>urO*u+cjZg$kEHpb!8f1M63j)cE8QX}3O4Yf1R{FAt*d-O-3Itg_Ti@o}d|F0bIQNYWFE?XZS zf3}z1)B&)Oko=jV*JmtY^J_xA$Aa{&%l;H9|ULb{8XK#EIICg(-&?mp=`fr zHl6o7F%+U1n&!ue-65V+bdlrA?3kA1=lbei~0 zM1wjn#M-2>ZJV^Imwoz6svM)%vU<(Yj^<(zQu7*-_T%x7Roo}&n(%qLCwLh}7bz3A zXXB>(9@%L2&wo{}SxArHoGoTmC4?@&oB_`@#JMRicfwPHSp~??I0k;xYohf|>yo3F zusL8Gx|y!=j(#fb^t#<*R^H*~p2ln2ed}Lo?DA!&*#6lMy|&&eUnv}L^Xmx(Uxj{s z5SL`18F`XAnLCkD%;#?z((3kcF{11IpGsjYW$eFieWV9gLMksJ9G`qQRo{XecQ>_@ zU&|payzQPs#<$-Ck*&?az1P0pqgne;X=`Vqk&fWn)f+eHu$F>McH`p2hw{G$2tmwH zFL}cxjf0K!wa{EBvefytLn)QjT(Q~hCF8@#G zJMi(X<5+q>x5Zlp&IYYSaY5CDYlp>KTaRO$o#9LmZZ$Q<6^gn25C5a-1X^27icMMWeQ*Sy8BPBhgvEpCcFW4 zrtZJ3aZgKb=k)%2mjfSbMILUgIPJfT1NCBR%Picq8oB9jBp8||@m=+}v(r7^u-m76 zKS0gFEgesFn*saZ@`Us)D2a6~RhA5Y?F~0>f`m5~@wD{ZURt@zDOdBX@94onS~OMt zmDd}*Pjb5kj{p0ZW8WgwuP?&CPq8* zb558PRw6ZsES{&JuoIV_PK+|yIyjB0sGhX;K=H0LX&KaPR;F?H{Y)@r&*WDh{CeW~LP2@uj`Yf1^#*%-9l25&=xy4O0->++g9$KGFUFPi4aZVvow@z*;pf5hs}YZ(!ky1wjYt0d)tRa$QwE}u^{iZlR=tC`@P*s&|Gg8M@8)aHI$YW}Wf1aTzy?QuomGvZ~CR5YaFXSHtP;vBIK=FkFJToRrvXT_I{t)yGfI- z%j*tiUqn7t1MG171iMtVihIEInibc{RklP$0J*@=qw`iJWqQAUbSx^}I|zhAexhf! zzs*W3zFg>Da;??jwp9G@4BnG1RM44>?*3@u(3~7#`rfPwBId)wQ91DF(4U?xt)vKE z9EZAJhw#|+zS_HHDZ%1yy~OK(sB@4O*(R^BHg9%`{6`d#8xkzxW=M-@X{+2yr|BBe zN|SUgw;rE5=%%01jsJG#BbrND=iQ&g^~z%hxF9&3X}UXOxm!(XP&AX#<^TRFzJEb` zb>d9;?*LWzy2V=Q)cM_W2l}Z_qt0F?t%~)Mv~?Ai|IZ&M^m3(6mb?`g`)O_t?fnQ& z9=SYz`!YPzCZGFXZTK9h*+Q<0!&0f70hjLwqxk(yi_azYWQUO?!cSa71Ir}kFRfAk zcL8bOEUzM9;Rl|X*Pnl6)T3!x{hpv2XdmSy>UG^&IqtuYT?Qq`M(=BCCa*i;eLZc} zsu%z`s)25G0Q)a^T-D05Z&moaI*r$VL#t7Z2|H7T?krNnzB&Zge%9LYJE22fU94JyTKKsY2?!i5juP<@@ha=?GosU-|#} z*FF-g7S_M=0jK{l_T;#VS#d$Pu>gM%NUiKK?i4$m-N-pPYTxBuK>hXdw7}oXdG;a@ zEPnNN!Vw_`oC_MYFzXgqPK8u#M+vPDd6DL8CV3`k6#l)>#(xgjnZqB(m&~^dCFM45 zwGUr}wGk_{CB(NJR%kd|>vY&#Utjz;qMqdh3Kp^xmUsX-U*JI$(N+aYO6>~$b9;C^ z1>&YwUoxDUd4G$t;NPHjy|@jqsPYRLqk=B!17uTrTDe(!Gln8Cs~UKo6E#B8pSoK ze6Y9|D=uIC&l$1H>^-iAxZ^?<(Kva>)BsAlclRs*TMCZ<`D;E0y|W}{-FeOb_WHlC z{C~=E10wts1=P`-Fio_ZP7j$V?UKm0cadQ$VEudX1DF5bzOUf&X^M%2yq`Q|L&RY5 zO~$w}W1x2d^R(i(VLY5lO5OG~CEa?32+4*m1fN%RtGaTJD!I7=3bwlZnOX;#jQZpI z!}1X(w_lunBUe9c!zbF-iJ z4Y=9t+&V%z;FU68l~rqzFX;=%X9wFfAnkY%nC6W>$O3}~^ceb7@Q3$67<3}oqKY^7 zDbbza$?Fe$Kbne~E(JCLPGw=Qdh(lVSx=XG^9gflk|zZxH$|(;T2504+*tF(BAXg; zB^*EMydZZ}PJ|tDrkmCcfgc2lrX#K{7C$Z-6T+uQc-Y>I1^rWtZU! zD9)Mu=}FS3OKJXe^^^~V#qR(|1_i@b&--Bki+=p^7mmBab!6p#qdxe=%RnSWHgt^h zN?yuJZ>$b*fw`>4*RLyS!-WqhceT`=|NX$bwx&K=9K0SV#Ms#j5s*GTHFlqh{z9@V;Cv^IqvPZ9YPASp#_)h2UcB;=@k4UX z#haf%Xcj6JS|?9KYKM#4`x^~~F@D8oWypPt<&9H@7hv#ld7un?G|=z!+esA+bbgLp z(&%2!A@hzic_TM=XAiBofrp~9l`S$IuzE&%P^4^T1{m_mVH#Dzkvc8Ar0$h)$KK<3 zWxMm+#hYe3YdY7+0_}o5sa!`bv&ou@L}rh041{SUpOfnXbRK@3PUku1~&)=cS5XnC@6>K(UL#p zwKDbH2uU;JY<#&{Hho2!ZR6VSTJ>>#xg7qH<{v*CO_J6blM;*DF22X6e#om`X80~? z7Vf3^b8Z&_a#v1@Lpp*-&rs!KJ^j2rwC^JHmlS7=5HpgpY&!iaStys1GHwQjdLta= zaX^Z5eZ>`l=qm$nV-esV+$O~8NS+hI zLVxC|@q2GDXbO*0u3dhbNZCJjw)#OT){!nsqi5vjh$pp{3dBLb_9{C^0>c$f6*6(1 zSFZ#%-?OpSD0N%Y5xsJ4!sG+LiCy_vCF(x}d>W z6Nt{-4$kir2FXEfMt)6Q#V%kxa}A6bfmuz2ozv`1oNfXmOBuKu3;gdmD5R!!_?*XSTblVu*Di2^6 ztNJd09E3oW=qZ|&X(lG22#4zB|ebzqn}V^SFzr~-|emaMht zUq=^+N@O?jGy->yK+|z_R;I<=CJ)x7eKTN+Yh~|PVP|=xDkX6ot`ihAM*xowh#svY17*eG#pryQbZQ zX+M+0a2hz_o`m4+=6t**pyq|^qQJ0%JkKOq^&5f$No{`u()^SKF(X^d$~-{KQf`rO zvj`N9Tw`;8S*t^l5=N zc)=nZw$rWRJZC&CblczFQCL%Ta2(lgYA?ETiM}P~5>qY^H(NELcN#24z$9LjNHQhT z4B=2yFYQvPz{G<^4Re1g$pfe_lg*Q%s|B5)tgZk)-(k+4oNOd~KD@Ok|eI z11sp*2yJNGzj5A(9CB>Y=?GvOu^;sAQwa+j0RxF;P@kR`vs z(WTOl$NZHYv?9W9K!=O=;Opv9;e#wW0Sx)uyRFT?M}9e*NSv^e2j~F%eXWl9aYtE64bkp#H0L(Fv!X#rKBj=*PC}Pw zMrIbg^Kgc4p6&Vm!b}huI7;mg-;>q@zR)z=!=}}cmUw15mK;{bB;aEN4vz{^@gUhd zv!mY&d{(mS#4#m6JM~zF{@J(sf_N%;JBCe45$D{7^7Qq}1~$86*=k85 zF|7~b3;Q0hn49s8Eew&Jo#bleK*UI(c9tCx=yn2B9NE7JWWEl1=Fzj>agsjN3NDg~ z-)fe!Ba@9_4^Gyz-f*ZOwnMmn+O5g{zC+$gmgc1%A~wwJwhaA~hs?x3A9N;s2p!Eq z8(|-y;znzmQ@o>?{qX>T0+IN0Q-G#IQ0yVE0T~H`iGfYNxo1bteW2qIyKwrAXdy(d z1A0_HI6Nh0F4NfZ{qP*ct?QsduX|cI6?^M&$^A18@Ub^$_rqey%o|+~r&zL)L~P1G zbCyv=;Nw*~fkJfol1=}x5SO`NXz%jxh=Sggajgn-QOrhI^p87AO7=igyP|pRT}7%p zm~@$lp0MWEKMwN(V$un}r8mHCHdBcQ&{?5wF8VyRmdnL=BQ^NClV8o|Fof=X)evcvHco#b8^@W&ta8 zXf`*C+KZR*Ky!x-K$kJ5q}ddeeWGKZY^GfqtnznRUn6c?Lqeo^nzVIa#vglqe@22W zdKD-QCy!3|rIVqhghw=R;Rr3ec9kB$&N)o7(EcMTP*vSm_FefkTa{NIC>?qnM*USP z&E-j(sTU5z`|N;gbA@!8;0n==pP%{g(!e?><8yS+xsX*gGH4 z2O;RA0Hd`bW&p$V;X0ejvxdpIftXHRY&(uF;z-)h;UT1JgIwqGmDV zs1J6Jywm=>fiS^HdJFnPa6E`dpEuq?bV+8rg#{M5;A~E}F52vd(OQ6>16c2#H{Lp` z6+~-9J)#wo9Jm0?w%b1S;*d>K`C2|8x(%R;&l0y-s`It?mHifo8cZNmp`PWzkUih zvdXLBjizaX5#Kz*9bcbVdYbjO5z!;Y1$)<2$@;O81qd#~nyRBY)9rTAMgUdMP}bxnAXcxd5I88*s1trMzUgFreApi{NjH|vbUUD! zA=L(+VqFy87}`P$x*XyRQObn#q4TdO*tuofYl0{(xkHiCLwlj6K3f~}l22w)S`eB9 z@NW%}ervsqhZF7k6HlKS%xx}%X_pt~mQ~#^LHv*c2(*MIM`}WkI;jMDwrRp*N|OHx zI3AajEREAXNs1W&d8(n|)e#RV#V1(2aE0Tr_N;s+)5B5?IbWb8Iun}87e5VPZ+pX| zA_hJnzTM3aXX7~KP znybHVK*~C=?X{U9OPr>#HrA-0|wd;Ixta4=<*rRt5;~q;%AyF3(i%^#2|3ARS zWc+fDS(qc0otehW{>5M%XwIU<@24Eng*Tj`xElgE0D#1brEH}7=ew@W>yBWUgpGlD zmKr~o){3AcYcj}E@rXko^0r8tjaM%qgJfs7Zqzlzf<4_nWUvrCOuAOs(CyhhX4x>l zgEbI0L6~cUb7$T}R2rYOdAuZgFfi+mmB^M{8UWZ;Rh zwdCI|uoqJa%JhSl-0-617GCNjoBbwvA#aP7f1u@jU&hs;5;Gs>93fOYCPnqmlO3s- zFpsuWOk74ZuVXSPk2Z#742UJ2Yh`=C zMG6vk=RXxF>6wk?w*codP=Ak^?b=uj-Xx1)USs)yV-)z=99(t7L%0g-c$OQp2^2Cd zwgChEY{|(v{SB4NWFL;kfrO;FAwpQx0C;5W9=)h0Hv`>+%|Uy#mspGM3nc&GPyroZ zUBhxDXj;3ieaP}gpq;5LTKq-!AcKEbAyX3oY#TN|Uj30@dl**;ZcV~Tj8jpGtiU

PqOC+cZ*3hG=Wt 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 N^>qxj^E4gr{}({MA~OI0 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_month.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_month.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4ae2d629d1d161d5315bf50a0049d0172cf6b7 GIT binary patch literal 32494 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_week.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_day_of_week.png new file mode 100644 index 0000000000000000000000000000000000000000..a92768660d92a69f16c5489e9b593f3b5cbfce51 GIT binary patch literal 34758 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 MCC%H#w=5t1ADWh4W&i*H literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_domain_name.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_domain_name.png new file mode 100644 index 0000000000000000000000000000000000000000..c6102c97905101daf667402c17b75cdfc0239f5d GIT binary patch literal 28152 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 TEDglIgGNpDmP+ZLmZARx_{FOj literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_e164_phone_number.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_e164_phone_number.png new file mode 100644 index 0000000000000000000000000000000000000000..5469ec2f1a06f01620e3b2f46e3eeee6e2ea3f61 GIT binary patch literal 31201 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 Tp-Kf2x!q?B&!5UW;Slyegp4UP literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_email.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_email.png new file mode 100644 index 0000000000000000000000000000000000000000..c937d3c24bef028b6db733fe1358143fc2d94658 GIT binary patch literal 25656 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 z zamU(jv>5ODTiaH?aGgwyZXP9wwYD{ literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_int.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_int.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0bd876a0430b0c60e2453dd1172f1c7d6c990c GIT binary patch literal 25300 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 XQ~4~2)pN2GRl1{x?QQc8dS3Y#ze!GN literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_ip.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_ip.png new file mode 100644 index 0000000000000000000000000000000000000000..b85b8ff17a2290aabb140f5b58fb3b16d05acfe1 GIT binary patch literal 25733 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_latitude.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_latitude.png new file mode 100644 index 0000000000000000000000000000000000000000..a382ed50dd474332b46b2bfa0cbed7770cc4f84b GIT binary patch literal 28064 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

k#RP!B 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 E9}+=S761SM literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_mac.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_mac.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2b83c32f31773c87c5fb237ef3c20e9e693af7 GIT binary patch literal 28165 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

~8@17_ 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 YzOT40d6FE~kiV~fP3vlrishsK1E6ty^Z)<= literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_month_name.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_month_name.png new file mode 100644 index 0000000000000000000000000000000000000000..d17697a88e7cf8fee95beff497cfe607922f7109 GIT binary patch literal 29508 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

=F;lP@<`)J2mpK6m-^ZF6PwU{yRrSC?>| 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 RC?BxO@rcvmX9xYR{sWtozM%jB literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/set_null.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/set_null.png new file mode 100644 index 0000000000000000000000000000000000000000..c6dce692060b04232b919e76a00785a25bbbdbee GIT binary patch literal 23491 zcmeFZXH=7E*fomdC}TwgM5HMwAXQX)8;7RShTcIydWlF0B@oLf9mWDkSCHO&4@ir2 z={^z4j_$&v zhbnq>bibF-(f#K8$7%2roj(ID=;+MDAE`Vr@JlAn!2Oa(5~OAw?+eBWQ!r71C*2}X z3~64t^!WPkzkOwW@3!YrmgFWmu}X1&uT_OG*ZZEubosY0|6B?G_QE-9{Itb0QX|~l zD2c>iXKQL_&Kp%Qwi9F>U-LuGt1nRPUI2P?NT&Z$dkiY+47fSn!<<)fT+l!0IHKv! zfwvbbOixaL_kW#!6NY|#S?k3q@b+i=88Bq<_xDd+f!@RTntuat*9U$#f&P0l@&Etu z|A!OyMnnNxg@@^>SemB>!%MsIWf-C;Gvt|t_{sm*7qy}V?4V~)=T+NF@%q+<@P@7I zqiZY@BO-TrX8rDLcf_E_MQ2tx>i7DQk?L`xZeJKBxW{zqUf3nk3DMiXQT3d8@x{~U z=z(~a24!)ePX6)Go6?NDyOOIDoG=dy*8XBsMtENuXOiGf#n!XAnoa76RJ(l;JqI~h zB0+OCXPR9D?iMjNS{xP<*As(|6A4e$To8zSpYcV*+0RpeY(lXL({DGex8e~*K&Q%=j%nwO43E_ckXMGCKUoIJ($4oN*kZU zgeOrFSp}ACaIsHJVuh9ypAX9#J&tI-W4LZH`GlbwI=WdEzGj!t=IW8rNJX!|yoFpX zNmUnb6{agc%D*~@vYWo+Gu|v2yKpPDZbyQkn(dI z$u0RO(LS_WV{KYdh%|5*u63L*Xr(Te=;PvU@UCzccRs}xohrwZ=OgS|Q)dPm3w)9% zYt0eQ+ZLVl4J-&Kd_5(+Kl&QGQliYZ(*<^I0g6~EYjtm;6~V+tkOfR9w-f^x8)17@ zzql8f66h>n@$`XP@pNFt+eb_XBRQqwd3Nyu=&@A{TXkNk9lQ+rhFAbSHAqYsas(|XsW$CZt{dO zuHtogYBmp!mDP%^xX_v@qRQQQ?==X<%ZyJr|8lmmLBRG;ZAZgq%o*dA5XKE<9@`J9 zdm_Q|h;udVWl1->#>iG9mWDll6L#Vg@^y>JHWKa(m~t=ALc{y(uA{_vR%Ow0m4Znjwe_NX|(Us7x~GrxA&dm^)^8v;qaLAaxy5T zpvNh8N1lDRw)ZdwrTj&^n+n@!D~~pZS$7U}ZCmU;pU98a

-etVZDL&};5ncE8in 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�yJ<1K?uA62_E7T+57UcP&B?b>M$ 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/transformation_inheritance.png b/v0.2.5/assets/images/social/built_in_transformers/transformation_inheritance.png new file mode 100644 index 0000000000000000000000000000000000000000..4079137694c120f8106641eadc050da3bf2058b9 GIT binary patch literal 33006 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 aeHr_yQ3oc1aq+4*OI1<*0`c6HJO2SqKS65% literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/delete.png b/v0.2.5/assets/images/social/commands/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6415ce36ff5aed0bb318ed8e286cc097e89bfc GIT binary patch literal 21070 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 Vcw(Ke0V83%sim)3a_#Qp{|6YgXg~k} literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/dump.png b/v0.2.5/assets/images/social/commands/dump.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8e16b522ac17d55b28c33576ffc0b98df72a69 GIT binary patch literal 21479 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/list-transformers.png b/v0.2.5/assets/images/social/commands/list-transformers.png new file mode 100644 index 0000000000000000000000000000000000000000..fceb58a34521d0a5caf9a084ab64ad32489c15b6 GIT binary patch literal 27871 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

Z9X(NQ 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 EFDstDvH$=8 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_password.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_password.png new file mode 100644 index 0000000000000000000000000000000000000000..d7974455a13d419511917800952e788f7a4ebbd5 GIT binary patch literal 30310 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_person.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_person.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6e8f984c94f7b9aa7c4f8c6445b613c9afa8cd GIT binary patch literal 29471 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 z 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_phone_number.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_phone_number.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c4b17879eb3669bcb0a9920d9efaf07af440d8 GIT binary patch literal 29752 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_sentence.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_sentence.png new file mode 100644 index 0000000000000000000000000000000000000000..f32f58c7370fe35ef350f4a5036b19b10d78c388 GIT binary patch literal 30816 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_string.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_string.png new file mode 100644 index 0000000000000000000000000000000000000000..923d6902784e6bb91eed1a0b6267ed5253b603cd GIT binary patch literal 30190 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 z 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 Qzd=Z9%Gx)I6z>QA4@(K+6#xJL literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_timezone.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_timezone.png new file mode 100644 index 0000000000000000000000000000000000000000..b717a653c8d0766c7d07b6d3a9206b8697bfe368 GIT binary patch literal 28045 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_toll_free_phone_number.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_toll_free_phone_number.png new file mode 100644 index 0000000000000000000000000000000000000000..e9792bc74fe5c9a902b5a8f6499c898cea5a73eb GIT binary patch literal 28770 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_unix_timestamp.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_unix_timestamp.png new file mode 100644 index 0000000000000000000000000000000000000000..052321e4ec99b1793b984780c559926f7fe29837 GIT binary patch literal 31458 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_url.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_url.png new file mode 100644 index 0000000000000000000000000000000000000000..42306d38ee865d3b1e21e54a5d6352b4e99b8008 GIT binary patch literal 26029 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�Va2=n9Q?o}YFwe9AQvBi7FY2C*sVX~(|4Hx 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 bxeH6HFZQUe>g@GjvzO}W7;5KgUb^*vCbN3I literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_year_string.png b/v0.2.5/assets/images/social/built_in_transformers/standard_transformers/random_year_string.png new file mode 100644 index 0000000000000000000000000000000000000000..8c975e022a36831a52f8366ecaff9f0f4867f371 GIT binary patch literal 32965 zcmeEu`8Sk*__tO?sF0l`Dnhb_EG7HCjNK5~4TZ69EhvQ|DQk9PnX!*;OsNRj4Kar7 zj4jJpM#J|#pHH9fU+|ps{O~+;&YW|fG46Zr_jSFm<#oMY_X|UP4F)<+IvN@p1})8d z#xyj?%V}ti`ky)pJ~2=Uv7w=fe5G~oj%i@}G9e()6mrnE-c!Bx`Y8Xi@sPEPr%uH_ zzgqMYPi*K~!I%%j_g8!1gt-R)3i~@J&fN=M!^CiEuEB0fVwI0--b{M1+NJBmJdT=w zk)S&_7Lxd3Y~zD(b6WwHGI|AE4!l0)EO!x({CoUS>A1zeN99sSum5{w!FlAuzem^O zXz2evdZ!+F;@=}3flo*OIf~3bXaDb6KJ}jh_d|WzyZ!&u{XevJsa5p~|JXf}6(0Hr zF}Hfus=P`$w7R~rxA?}<|I4n^J-12|8U3yPlId2x_r4-8C1C6fbbOq@ukDilR^Xq%2rk2@TIY(jLKYAP6nB3N1 zh|0SNGVyG3NEc%@Gh1-I-#nD1P5x zP`WuN4vg_jTRoCBPva!xFsfD0$X&N|VkhxZ?pqd){N@+!sS_cQ;mVI1GRJDvlnK?w zPLR-IdMW9cu7a=MuQDXO>i_MJ2!8PEA-Vz$-HhW%FF6esE%EV|1He7j~ljNGTu!ET?auw82 z^U&Rw3WG1Omnns4+d)a${<9Bcw%e$2q?hJs>B+iff6R?(Awr*veJ|`14`W!!*IQi+ z{kD?hK_B`oB2R4TYxeKUj%V|E+aT<`E%9RniDw7{T*J33u8VpB2yX|UURZFo*5H&} z0I@>UgOn5}vJ{%B*PmqGGnlKYegd=7&eP~R@TX_t4eQ!c)YFhBUIF>jlr!M^l2@n3 zBMDY~VkbDuQ!D$TF3ee*atW8|+JM@x8_w)u)1_Zc@r#-=wHabH4eW@aRu zl9P*7bxWgbbZ{=TjOI-uIjz1|{1)=W8F=%tE93p9gpfITmvRh$y_mXFc?98Zo#eMe& zWjXUQT8AHGtkWbV{i-jb)|LOs2+GGT;LrW#NxRPw;R*BRZ zCAzKqE#1qydeGgb*sw z!V{G1{$OY(AvNh6Hwl}43L8UKi=_c~6DO{0)1a;$g^cMKA}rvlvbl$({=S|yCqYRMU)gO-4)}PfcBv<$ z@2hOqK+#)9a{GI&2H~P0g>oG`>lN%6nPeM6L^eN_;;%`P|MsoZtLj=wsi{Jh zBne8suNYvD&VEwoj2>1-lxr7=mKlbVm9Sh#YG#Ot4yA(d<}>_` zbJAgWSBBj3@l8WTh&MdWz%cJi_NzpPvhG{?%44Fr)ec)L-p{{7F!dA>ut!WZm(iZw&fF7B&79WZ}$p+V58_4nZk! z57Ys5If02Q@tz%G;<(K8>!J!_Ha*LDL{sd>$(@P!!(lzP39g2bZoX{EVUvw12N6R# z=EsoLvJGLWyd1Y|hW%EN@fD9Y_VNY42_L@k#<_0xVDO|Ug9~-S5@J zCc7yQM7(cCA4~`1W%9xPB0dgRl?GQH)o8nlt+e6l&cK0veiC!j5$2rmB0Eqyh8Spr ze_gvmDw~{^Dl?IVKYszqZoC__;Y%8dy4E4+6<~<3Ansin9HwU0uE#VYG%;Nl%DuWh zG`3IR4z`)tge7hkw>pkEF`(|fKYI?r)wnanH9TSE7_^IgbXq!dSVBgh-nn}qPwG&~ z|Aj}c*dv&qB{Kqq%#SeFoBY9`Tx$9gn;^HZ3r2!gwdcVOkoyL({dU zs4`)Py^F+miVy?Y$~(x8_ILrd&~@Dc4o&`X)kPe}=g zVG*R6UL`N=JT6x+XLUuv!p^Gx-r-myW;|;W?CV|%C8o%qiUazV%qys5ORm2 zH(mUC`UCt*Zz%t&Z7uZg-;|syGKlQGEGVyjtxqELXLePyqC+}VzFNc1YA+i>*3II% zb=y9WG}m{G+|9}kwS8+odAP&2cq(+4D?L4D7=;!5rJ1T#rjH3DtUI#A)Kufxe7k{~G(m2?7bGEQE&zeP7^A=vf{eIDf<} zUF0sRE4|Q?5R40K3iB)VBKB#>k`{6!*6>D-u}-RYgLI{Y)Az&uzF(#IPf1IMv#oGT zxDRKO*EUO3+g!(Ky6~pRd`PYy1O}oZN~(Wrg^GJX!Q2IJ}h`3o@a9 znx27PeRDS=1D2aZS|1D9Qi)7^qe8XUmCaR#TPs_|)!kM~JFAhh0*}WA0?N&PU^FE3 z%?*37uEF!G!NDD*@C5H$5$ZdlA?B^E0@Y#|=06cTADjfk6S@}1HMr)L*$1V{1I?dN ze;FlYl;H?=!W0!^o0%!EGr=xXI}S1AkxAp_z4c>oJB=Jz^ZVx=Y@2$%U+=a8@6ZZ{ zmYvQ)3{-IZzt&vzq7T3KsvM2G$kQ*QW(0qhtM~1Gm0REPUic&gmT-m}Ik{r|bkzB3 z!VC4Nkco&o_h8Ig7Il@D=NfV162BjPE}nn+Fk=F=JgM|Y%xDPs%O^wsXx{O%*hxEk zZc)}pC$YE*C;O~IECre-*W=xx9d?PEQBm1Z|I@E4gZReuPTn!=PNBs{0gA>M+=aE+ zQ|!VgN7q1hEZZrdTmmJScLF=x?~ubx|EJNlu(f~EdaX+a)2>@UN}UXu@YUnb_WGY! zX@9)L=tM-epyYFypsh&8*?lZZy}+-xr%m7Mw@aO?im?JlZplo}gEF4LI=57?V`pxO zOIDE13zoincyn(+-B*}N_wX1Sj;{qMwQfnQVvk>G$>q3l2=zNz2$os z9DD37`Z=XU$agFk@P=*e-4QrL;Z~O>trHCtWcJEMQ+brA!tta%PQQ zTcD7%G&e%7V{>fgwJBe^RJP}5cNLw{BZHFs5(`Stz6{62;Rda0nmI*S+U`}Y%^UJ0 za0y7<)IO{idT0UrwyAcjXN?-&qOLtVQvKo-_gfaTlbHqQ#h_URz}qtEYi?$~zoCb5 zCp-)aRZ^^gXFwGy?Rc{c97hWmE7nciZ6bv<)Rr0r+V*kzz^&ayc1#y#t%nyWTLQ(u z1EuOq5@>a4b}ojMt6vWkTCjSceoro)cp>W}h$M?Kxk4wo z<91s6j!7R-*4(Nn;W7CTFU95>vZDDMqW}H28~NMM5?tfZL|0F%?vM`c4pCR@O6_LF46ko7yGivk+!ee{U_m}~L zLHyQ)m&uEVx3(xo%zt=$O0Ev~$dvWB6&hS^xj&5KX(YNh3W;1(Ib~^G6#v3`yeIoM z@9;NJHH$0Ax=r>y1-TtE@$~`4bqf-He<810EcNYBe(Nd4l1%ZIuy9%$8dt{S7Doml zTvvMIrkI%v7DEIm-WS~WS87S*12QXv5~{kREDL6pKODb2yf}3U#4$CwbnW=qAy9!)rO}Fh3)Z+BO zVhS%lDJ?%^&7y4Ci?MhN}@Sfg)1f_v-!b?tqOlK z_xD%0wg~X7q3n^Av@*x2z0u%(Rq4zWc8>h+N9*#oHhzm05(pkj!DG)Z`NG3x{G-K* zWZs14TCxC0ydPV?mxBZ;U@Y&7i#pm{^OO^XW+#g72weNs zQz5#P9!p3L&wZ3Akn3^W0>w8Xj(tm2CPgy(U9CLw1GzJ$;Ts@MNN1Gx}XOTsV``kt8ynqYz^y+C2@39Uh2FCp+ z=9E?%E7m%d9mv7W;@aj(%K_Iu(d{fjvk)17G)!08yNb_2ZD&A(cQEEQaKy}n2PKA9 z7ProYhNvf;;mlr3NdM@yemcCT{<{-;N$07?;=4==9G@s#BQxz6w}wB;y>d)(DA6W) zXk@K|NuL`5&Q^UzRwu-_iV}anCTiootEtKIehm#?yrj5)4Grt{m7E(447G7@D<_GY zw#7Zn`Zq;Nmme+q9e7lUmvB5PD24V^*kw1*;zMmq9RuDH-)pNXxgVl!&2j|>@sgK% z-`2V&MU}iHBp>TZ6ZTwMvcU0Q}#&Qmr>&2A*0 z*+`Q)PpuWVLzdgPl=@0yo?1(6YHxx9uz_60_J^)6fwBBN=!P_w#=1eq1`SnyO4IR-UUY`GEKkA+O9j9;k4YF)CFJs*vk`!~@#r4Fsvbdz~W=R?r?QIz8 zXOBa5%qE_{1XvNFzbdOBU=<0lqPGBU*?s=~qjxNDMG_9DL;4|IMQN73nXeiLIh(*T zvl#WXku-x8jVAscoU4qP!=ymWijRmNN?yhncdlPdsrP;*DX3=UFKl}_+GxAfox!-9 zt^yxq9G0YP*tosW9`pJJz2FaE7&utx>8QP~jRrfGg*BfDsDCcnvl%J@oe zP0g<6R$I(JwJ;JhWca9(D=20@_h_HOW80ij5Ka)M+d>lt=?$gY*7L!(PGMTXb;fMF z8~Vg%rrtC$ac3=B11<0liK{fiuE@YI@00RRH|BE)&|{J=L||Q2e17%aYJ0iCKvH~r zH0~;_=y}i$Q1*LX+xHK_Y_wxbRZ2^oBb{nCPs|5^>fTBs>P959+KD46n9QI2yR##z zU7GhN8-9w5>~a!UEcG0he%@Agj1QM__Q{YH0Leo5cIHX*Q%wsbfqfihuW$=EO3mb- z5AuaRnmAcTdKW^0hu)B&&&W!!7nxh_Ss=?tNQSWRV5Lc$M=0oCjTI_;Xj!3Jk2P%7 zrEkXNufyjxhstYkW#bOpUMPedJR0uBPozS$mlLo`X z%KV#MSEx7qaMt0t84W1(__CBH&42D8m7Z?>d{;w)>PG80M>ZG%JVw?O|A10&@NzdA zn7@753j;TpNUh0lQpyU)hCPMeuG46v+Y~2U486Gq#TxO#uRZ!_TL3iUf}py(n?sC# z>R3gI*YY?XH(KDj)#T;@cTt&35G+cJ>3L~j^Dk=CXC-p9RK6)R5M>vM1K^L6tn0l` zxTY4EhjTP9qUO5)tIqr@wPon9+g3@P=8g>uOn6!1{*pQSxY>%)rCA6>TU^*MT&-T| z)+1BC^jpPzrFPj01?|9J;s+c(D6M7mlxUEsb6sS#@c(uT}Wkm0t$WW`z$g-v5vKDAgFc@qW=*x@mq zu1IUx=|iDQrE3%=?}mlSy-t~Cv+r6MQ}s_P8)srkKjO|5P& zk%*Z*Y%QE#>%L=T8W2E+UuS9r_34@uR&^`x}&aN zRHX-iEx!0v_J_qLMQ9i4xDS+GOx&SsRGH-g|7$&ChkKM0S?C`Tn)_=9fAUd;0LAm= zAJ?9I*{>Ft?Oa=A-h0DgmD}|`33$P zS=#RaD#I7o+!4WbMVX*pWEWt^laz3j)#~8Zr;bQR69sbI`8UNAU#5*!m8Ine+fsJ= zDN9dC2JR(UaUX2vx4{i89fYg?;YEenM67=D%Ami2+rll)5sRe`X;c$emt-vx;y{nG zo0!zbX&Zv9I9iq-Kn2Q%x+5Uu&vVo!MpGyy-@rNFG4n+ySK09c0C4~ zuioY!8WZ1uUb7dBxlhV8`4$zt-ph;Ss=OkkJFwMFAZ=yB) zc~s~gAcmJ3k?P`6J5($LS4Nkjp*WzC5W@-i+Gk9H;*B?mG4R@uw^`M?~E+Uy4(9G zV8S0@K^aKQ8Z-m=gxT=3z|W_zZMCH&fbjC}$C)^!v@sQVa#K%P4PO7n3!WV zTJ1AWQt)5Ld({_e+u2c!da=16)1fiXs6u?&tvJyUUmoJ3CvTqA%w}Q@VJm6vv)HnB}P|X0B2GiBTCf%^}Nu*pO zW@%z2s9nZ7Hl^vBzZKGgKE1x-0cEE?Q84u&a6(&=I z@du#;#hfKWQPc2=q@?_F*Q8Yu_z~G6t43cJ>tyHnK5PT)$Z= z&@`@%M+Tptv(B*hC-$5Cd%i!#8Ji(Yy?=t$H=$m$BT1>`p_g|Qhe6*vY&}HuHtzug zll=t?D(H1*XUzv#2+Fd&FUP%)>~cdd(dG&fX&L^&Jmn+IveM;@rX@f-{BP)ce(f2< zZujUcc{)C>0H0!34?nC7AdQ|oOcTnzsr^!VA9LbJVWZRo0PbL4_8EHjXmeK4O#&!- z@q3g(w}(!Atk=U2Tb&w8rSc)hc9x{<318zJM=DU9(ZkqlDERGS=?{-vaT%eo*qgu4=)1SP@>5e)l=9LQEAb` z6&TjCvZ#o!9#r|fYG2D%>^PdeaDQNM>B-Q&bS}G>}T?5N$WXb!-3)lB^xzZ zg_8`(mxY#Orwcj8$CKwk^(IZpNP*u{Mt`1vS4W_N7{T@E{l4rF; z9lJDw9q_?H#QH!vHX8CV=l`1Mnf$pk`z})+ z3FghX{dC`a!G`d@l2KNB&cfs#YT5qr#3p%WbyWY`0By+(@j&=P=%k0Sah{qI0IuAm0Qj_d7BqSyn4q?Pst8$2(c8jPBvFc zG0B{+AbBPg0q9t}WDGz^CLn0bWcBod_z5OGrw2-&OV5DL zhdNJW@J^wQYWv>;pbn$=1WYy{%gDj{eg|0lZ7R@Tv#>kKStFV15K{KJJ?Cy*$h0K^ z^zW<7l9~c0#>w0qWtRf-{pTMLlfUe5{b=Ul?61X4una6UZX1_&LLBAWS{!Mq<6lC5 zNtPFJT;t1VzOb~AnS_1{z;XTZE*gMI;1K8|WP)*@80LEx5Cm&da(1rA?E~C>$E~4? zrvQ|CkXt)3TGoCmpX!LzxS^*=cC~T8Qj-vG^o)?bym6D~d*@KUNgHYTz?LEURdy(W z07W@t&?N?JSW`gX+Tv-i8%tYS;bxtrT|uw^0-i5F8yo~#IA~Q33vIt9K9DP-JlG?H9D-r?Jpg#m31DFOF91(Ue~>q*Q*5r8XDVaD{;u&obARHemgl0f`1wXn_tOuPi7}`i@t6l+JwozXcwucJsfYdz{qJ-Yq zdjfEwYD1ZJBSYZ;w7+o17>X>>RLKEhH2<7`_TG*r?Z+7GKXqTg-FgH8x;qlX}qIN#4xkAaA@*6-c2LtDw~R2QM`{ z1=wRZzIi3}tQ!7^7KqjCG5h@Ikucv-O|aA(bUaI2z@)O0ZD4oQiAOe!kZnyPCzL6x zo$S4H8j`G4tFLqXvl20RIr6{Uh!>acKAd&qLV@sNDpQ*>#*L}a&qR^U*Lamn6;hhj0>Rzf zZDpH$D_LULerSPAbUS7mIDKl*;gTTw@zjh`mMMhCb&s17a%MR%_DIIe?TnH-)_oSt z?E7V>WIg8X-O$Q<#f{5t2x`d06nm2vDqm(Nw|#}bB?!qa$BsTSKJD$5xapZ0Dptr@ zfn>W5+8LVO4&8-bt&%yyl|llx`A&YDiOc6l2|a})Yohja=|{i-#BH(^zjg3JAlPp< zG5F;i=!4!Bjuf07^5@@0EWgQlf^RFS^tOUO$G!Jp(jfUMm=^yu2sYQ=L2g~&vtiVU`fFh)nRMmc)80yj$_5Q)!vQNJzcv%t=9cKQ zu2X|z+Q)!0rb$*XDiBsGR0X#=+JsSiLn~=|Bcf@{7O%Zp98I4-oZlfZl2=)QF&!zv zj5bwhNu(u26?|`O6B$_%PLU|<{NlP`Q?1b(+HNR2TrGQBGwQmav9p)gA)K7BfE?SsDtI{0EawyZgm>{lNvZL-Nd1m5*Vrbl ziZ~`zI-{H<{oouaE_OV~SSbeMW~TdW)^L)_)uM^K@B?f*MeIGTL(07u;-zmerIqWX z65$eHvZp@HQmT+^um|)x7ENW9+Otm;M0PfZzo)Se)Lna;I8!aM@rk2m|I2>t_@f;8 zx=PuN`MWRG{$;hQ=**Yv_%}KXbHCp7LoSX&r0YtkRZV?Xqk867ixDEC!pYYhkrSaY zt9V-vL{UV?14U%#$chh7=Uaio_t&0Y{FfB_5mK(D6r(DWH6nQWSW#(WV@RwIU#hUT z-@Q+W7cyv#WWwk*U`dcXQpJV%o`2~s64AW$mrqMVlp4=|itoVsKJhe$XOz-=@}h39 zOugOdH4QrNs4BTZyeVUF>dUQa*S{RwkKwEkVXg^lwPA)gD-JLbl)<=WiVt6%6(l1u z|040h5$C@I-CpgVVn`MCc*_6?l(maDd*e=qQ%PxJ*SyK+GDnEqN0VuDuH&34f7im} zJkl~iDJ%3GBkP#No$

u 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
X|FS8KhHdXPv4%!0mqUAc?ekox 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/restore.png b/v0.2.5/assets/images/social/commands/restore.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5dc92d472f71cf81ff30f868f6fa37481690ed GIT binary patch literal 23632 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/show-transformer.png b/v0.2.5/assets/images/social/commands/show-transformer.png new file mode 100644 index 0000000000000000000000000000000000000000..c0166540eb11bb762edd8912eb3c5011427fffb7 GIT binary patch literal 29736 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 HcewjM>5+zo literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/commands/validate.png b/v0.2.5/assets/images/social/commands/validate.png new file mode 100644 index 0000000000000000000000000000000000000000..fc6f0adfb749d3d32eb1ad277ac8a1fd993b8a4a GIT binary patch literal 23976 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/configuration.png b/v0.2.5/assets/images/social/configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c76acdc6cb74c761dd8b293a886143011aba96 GIT binary patch literal 27698 zcmeFZc{G%7{5P%*5h_Utm5?o!Eqf)&z8gCw`@Zi(2~o(tW#8Aa?@JOwc4IJx?8{(m zV;P3$nm(V;_xYXk`}aBL`R8%YoHKQ9_kG>(>wUeK*X#8bqM{^2K}JtTL_|a(`}(CC z5z)mmBBJwdq{QHVl%IL)6A@V-$-aE9;qh$)hTdS-vP& z8NT7j6R3EE#}@pXa|C}@eFJmKuDGB$?kfa57yS5VtQ&~`^OY!_=c4vMUmww*yZO(z zFR%PB{qrsBn(?{6-@aS?zsm@Q_keO**4O@V4CBl%Mq*=dsb@lN`!ZB+*sESQ z%>M8COn)g8k^kq<6y%VO_?CHRu{GthEM0dg+ApNfl*^9Bj`=xQOD4)Y?3?q2BA7Qb zuLV+KvcOBB7|z9A8tQ+9;&({6X-+lvF@`^<>nCT=tVUpw;Uxk1q-sK5wQ%0vdYd?B zVae*+?0NBi(a-iHns{QvJx4njga+#>VyK#{cqHsKKmMFY(($Dotd{y!NdMRCG$qn_ z67=M00RNNvTHMQy2Y1C@NV^L36cmoeeb8_Ade^FzBJnW3%cKDFsL=pnN;RZ-A=uI> zjo-BMC&wgR?ha0bk%Jc=G&SNiJ19{yAdV_MJ!!T(D>I31IU4eg>m(dk{T|Y?$<@=y zd2FSnb1XgM{BC{rr`N2~FRd)zR>WOl$}k$xPnU7C8}ox!=n7DrXwt6OP$nyeT#KY< zzE-f^tnPaDYgrF@*Oo_SFEVl^1_fC)^9g`7Ki=aD{x0*XxX_tQdKVe%W#auDh@Z!q3gXLb86ey zIH?meGsH^{mit}$s4(?s|vg;X%{p#w4MkH!etqV;D7Vtj()3Nl4bK6__SxxnM?>wuC zOg+=ui4S6&MDKA&RrL+l<13|1#N43{PxqEwYjw$BNjSe~^VRo5)Oz?66K7b>4MPD& zL^L@JVSCPy9o&(qii)pn(gCwo-e9uwAZ;Ev#Q^hUmb(&@=5xjB;Y<_$Quo4^r%p|C zKYk>OyS>uQZ4vQ`VnS8dR|Zk&s~L)WJ&V9hPp&77n2q=!zC=m9i&=X2?x^Z$W&*Mj zW)iGnXoS#de@WtNx_3WJNoiX+Ro$SV%iR_po+%bP3NJLW`B1tlsZvWtx47FCFw?J_ zo+CrWnb%M;v5gG+G735QsK*3@^eQtAk>n}oSG8!-4LLSA{!vl1QQezjTZQe?TB<|C z!((DyPCgSn>Q4Ys5sj)+9`vzE>cIAJgRVjIx~J`LQREz7_~QH?Q8yAK{C)1ktxXUnl z8u-{s|3O^O$lJWiw#%{-e&r;C!lyG`%vSD>?+3Q`*UdY`r&fbKt)cs?{IbXor52(c$#w5SMOJRMxJWXYQuZX z>SoqjUPgfvj9yM>O1>r~7&kQJfFU0l96tPIRKc{fv)it+AU#(X*bKY0Ed{Q6D1XWE z!iGI~>_+2!Z(n$`g9Xe^Z@U54#k$h=INHT@>=`!VGX$9NQZ-yR%~>~MeX_XPT={5k z8RNY>n@F8>hT{vRAV)x6DUT9f0ECCRANOMP3<@HglvX2Cl9K~J+?!FMax3t|Z(K|3%n6pqe;Q}H|gXf@w;%0Q|-ir2wtsu>q zmbJU;d#zN7+|~_LMpVP(=hRk~f#Xdi2Jt|$cd5U~^N%;}=~d3d$Z$=72kn`xq6Cy%RF)9b7@x!UvXfS~x+><;;v;4Hr9%`Vfsqiw(D~aC|g7zlW#5)K1j! zp`JSAZ_){BMIUDuDQi^8p{=own>ykx-tvv^W;Psy2S1IQQUkEiso?}e-@T3P5q`
} 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 EKd!26QUCw| literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/database_subset.png b/v0.2.5/assets/images/social/database_subset.png new file mode 100644 index 0000000000000000000000000000000000000000..c676eb38252fd620b370d16c8daa17d8f1d0c3ee GIT binary patch literal 26956 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 z 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/installation.png b/v0.2.5/assets/images/social/installation.png new file mode 100644 index 0000000000000000000000000000000000000000..d698b05bae5004b7ca4076de7c04402bdd18d012 GIT binary patch literal 24345 zcmeFZS5%X0)HRB_)xA|jqzMQpC?HipdWnUi(xi(t1?f$C2?4iQsKE--l};$3_YjdP zReBGa&|3%)5+K0;ytuz}&ds^{$3M=^xp+r3ByV}jT63*AXTl%oXwaYHI7LTCM}P0G zsy-dvUqy6uM}7Z30p8KQ2{)&sv;1{W^_HQ3(#oV?kcB-0wniKrED{MID&v*Uw|0B_ z-o1TZ^6sU7?v3!hx_x?6!%VO&^Vlix%A2N{=Z;=ZywZJR6h2~FL0~6hDl1lr49yKC zPt8nf-Xo_eyJUS!Qg1+aK!%qOa#f>e1EEg}b+MQtw|6 zq5ob&-afDW{5W{Inf4F3e>%FmH;%AEui^av|Cj&28?Z;g za6f1k-aD+p_KGmIH&0gVFIhPd#k_^o|Ig1}>=cfR4p~_C<@y$_H&u4Tl12zYt|u(| z&NKdG@2uW3kVv2U7C0^z@@uOqWTwP-QE$nE=Q!Q`$X^dl=M${XnM8B*#Kl}>64>Ir z5PJW9x?D0393^CkM@|Diq?+$cixVO zuupK`X5mEHCWLTo)15pVGC?bgKJcE|yvc;L7?%V;P8MJFd7##PQ(P>Z`;}U8L7Irn z@;IkgrAt)plqGXafd#u!dATW9?Im$>F;01zLJnmWokiI7*B`wj3%8FK*Ou_&a2P4e zkt!KCvzqHEQ&koBTAi1DcCFm&&RYdr%{J;=bCu5RU{(%7EYw{43ytE;UgNouy>**`a@Q8#H1o& zLs$7C1KJXoK?qr^`iCT*jTKP$A&&m?!qhTr5XG83JP&S>nhCl{`yq5VEMVuIzt{L| zY_KUE-8a3zi;!vH+1=`YMNof^+|zb5_^8vGn(FUle%s{@o{lcz4kIO{Eo^B)o-eBhYFZ`bOGe zBh}vW0;S*~N3F2%7%H*sCy#DCqd_3Wxd_p?k0GT8pj$Y{Wtx!@>lZA?_{7*H6bgA1 zs~dP2_E(}d2)G$dYw$60g_W$YKFx#gx3Mcf6GK6;V#>o>Az$Oz)?bB_`1W3c_0DCr z9s@=acFuwW?Seb!P8{o97Y6~?;pTIn3(ecxBweW<*CK?yT7bFI(vZJn|IQs1De-#c zxoUsv`Vu~4KXef>t0|Bq^6iCjiCxdCzjs%JI*gLOjc%#bRg|q)A#4VY?|NTDGQ=cK zT%z(;bL`rD=QNXTHT63X+A=iaF7wf*+5MnVv9H`)mW2yrHg8=v9;UsZQeWnhCQYnz zDp#hutG+Z8SAL3XW?`7<{qkTJ)*Vo>8gqWmocUy{&DG<_N$BiU9usA6`%31cPu(q>^Mk*{w{DJ8m)KIHw#O@P zjNm>Fp1Ftof!UQA+2V1p^Ssp~JCP;2Jra-b|89g1{Pf7L1T61DFY>TR3Le&m0vI*%Lr;{{3Hs<4b>0(Y^Igj{nYalvC|-b13$o;Yv(fSHp*jJB7}4<};fvn{LS>dYwAiRlH8(KZQ*I) z^%zp;YiSY>8ha7#J~@ysS6)C<7NDAj?V3`Paa^O4i!Wfmig%) z-0~n~IFeGn^4UDQ=lE2T(V4P>6c{c*f?*ICTAk!lbf?|N$iPh39tExbc!S&XJHKkO zVAzPQG#nb>_B{v-8+DFt9Z(@-Lw3*pQ>P;Fn|fjetb{8mkFYyot^2q<@uoR`UH2l% z6#;>yb5@AoB)$q)O=uDE@Pq^<4TL<{6kp{~6z(82M=ya0F((sX+j2*mlJYrn*sE~0 z^-aQ9c1V!zSgr@|Eu%z{^S$LlRM=I;%2pySKCKRoLfvb+hlKPjwZ&{tOHqp{z=UDv?`bB&s7_Eh9NWVV1LJ$z+HN=YtiFk zHA3AN2Z~}E@7F@}2+cYv`a^eE3`{{d!y!MWMr6OdZOot_|(0Z7wj=Dq@+lo;62o~s%xa}Y;I(#i2q8MRU|R)L-|^VNAAWxt;v8O zt2x^`ml~L1N{)x(bNcT=3wQAdtlWvlykowGH)z|!_ho~36Z>kdCOk+dIk@ggfxA9) zZGn}Io`)+0zHSQglnTqi-mLH&Wp^_RN=pVWeyY3fQoT3r2ffp+XyT|q3uT!pHU5TZ zaP?Z39T&EMXwu>9>V7UbXr{@)W~e>0m~uV6D7bj7i`vXsUvH^qfuFvU6{Mj`tNBOx zRIHInE0?=?6f8baAF~23njA)#2M~}Ob{=_>SUox#I#My@K+LsRjSn4g z>xxGk6CfG#)%)$h7ZKt+S+(j@|N6jEt(5kss}>s+ZB}oEymac?pINW(<>>LFd%k6T z>IpOzy7R}+Hw0r&EYFLF(8&zfNidb3vOX(UJoQZ-3+r)n zkdrKvh>pILJeFAlXU%59iQj`?-I8vIW|6smX4uTGr+h9LQlVf|JoXu_ zV9>5gCt@$RP+VyBZwKbooRz1J(2YgXOVMFY2|GcdQDhE|FcdjTCA$B_m{wMtK!33mi?BGa>J+{3-lUixKL)do}_=Zwwc@8 za-8EPY409cFcg9oKIh&=nCf+F?zVd#c2~g3Ed4WbwB0A9Ch%x$qj!m z2$q7-DzX{~*Ap2XUGtH~fE-n8(5sd8caP0&;v5yx(#^i1QU5l^kb zoke3l7rCp{a#3>j+q1+WWw-jG-{lGkJz5Dvzoe7$miE85_>e}%K9Q!MsH-UzyBR4} z_}W5;i|9e4U@5ekdvsJJ^3Z%{t_bW7W!TECDDbhWMRWrckBmcTx&*5pIT%|{T*e!Xb_u)s=50J?#briF4;$Hv=Zne^Z72L8&Fy|pYn2{bNC0F;f9utmJ zQ`6SgTId(w-~U+3Il!#|)~H}xM0*I3GO_dy`*N6s8 zx?yOQ1FD{e4jIIflVY_pfy}If* zJ~+R#P1jU_LBTsNN=^*Ic*zaQLX>PLlD|{X}$= zdt5yWfWX!O-jM7ClKL_j-)i@cQSy>mW;|v>{UFTf{wx_Jq5BAs4oROJvs+NgwfN!4 zxz>ZuRL&)e^cl=qmEo@m`oqf%yD}=$b$)t{go;n!y%p+ZZ0tf;02&}9io>`7*kgIM zP$vgpTcghYuvbH?-)_4zvzRiHH0&itY<*(@W;~>xvSUM1l*f?18 z3G&4MLz?SR-g3M9af!f%lKBv>NyI91Th*>lx^7guhs##DA&<+_^e~RB7Jb_u<}sGV zIq!PUoUC=*BH~kKLIl%b?&Gu2b3ip0{nlRGuw@iBXrIBy0XJ4J4H7837kbYSvlqzf z6aF=G(s~7_OmtHW`1b2W|IJyq(F+H=LrcW{+LA2(`pr%vAwhy^Df*1CRyLt2_!wcq z@6=5m4sX=~7G@Y#+moMnpY+L|z{G@fzaE{b8&{~26#NL3fS5Q-uJp43{RVmlOeQMc z_UR!7M3;K+?>|VHOgi1DF220DVYn+d2vv1{BRMB_Ey%x;CE#5Veg_!uxh?8m0*eG? zOt%?86QUat)cLYHDXbwB&&hW00>os@blH(R9HJlh1ax8NVJQcTwFj1EHf9r*){aWv z+dk33E84xrl)Ph>xH1(xTz~;>3uDsq4}ufvFaKDzlKT+oV3Sm&g13g8NwVU~T;m;_ zueDF6Zu~;$=AJbfsdeUSbrp_7USLAhdV>Ov$>;aa$iyK`?Mk_5BEDE!nDEIN7BFxv zrn*kRE>E<3FSm6y#!57WvWkrZ)d18L5VzX+aUv2H^py57@QCsGRJMY>pp$eC;z#q< zpIY6!>Q{)M`jNh&Z2ye2kh2rMk&t!6|3k57PoethyXX;&6a*>@6&=P5D_?wv@{#{` zveAwhd$74qj9(5H%MAJGi(?=ta&T^~xE8q}Qq|ROUtIicL~oK2So4nK24nC1FljM1 zy0{Wm(%_JUQ)?z4%~y;SjT$I~#~A3PHi`QPgkq|9Fra{hGZvhlX~8Q15CHHscEK zK`rH4w9;VIu?Xt+&Z+vVtS(byzqoyK%yCSmgRFD)n0JIY0JE@lJJu844Kw75RE5XS z^2p*Ql<1-0`eSruY|=#>dU^)^^ILcs!Oq=>d|!1{o30(>DEuf5C$Be(HBXK>WHFsZ z^}bso*rpd>b8YStF~@+h>|HWKe8ygMcg71wxpar*gf4|BgA^C4#{uP8XPzDJPRy18 ziO1gZ+;B|t#N)BM1_-bUPK@vGGz)+NN!v_f;{{g3dWh)j8yuIl(C`m7O%R55c{j@C&U%%l03UlTyK z3f9S$|5|9`dnr@rq)rYoz&kkDT?fm*EKt%KMVa-6+8ib;Jmy#1X_4(^>Vg<>FHFfSZerYFtY7M)V7>dkBQlMgN(X|*=_k!nAuxUl=H(q z!q@O)D_d$j7c8VFlU_v@;Ece$OJd{Yd~TK?avsbkMPo#5cWv;Zupd8) z&)Tao#Z|k9`|NHtr8^t9=(5$Z_PCpm&#Oca>X`+;T!;g;Yb3(RNYC@Zh~C>cHfZEQ zCu@ABhUe!<&&+o&Gqa!xm$JdVO#TnyrowS8`JXh?0m3f4AT6V!@|#-q48$DRAQV2w z)l8bJtPZG?3%{ZfSh(z0{(&QJ@_5SA>t=?FK}(}vbiA6+zSVs}xtK2*-i4c_uVBgQ z@0G@W>CMf$7hvfR7E|&kC?miPl)sux1sZhm^43dHwyE6{b4#x9%{|$s?K>K?Wx7{Q zqfW^st)662=_ZpD66*kH+nSali0decE*UMHC5N1z3R5=vM1swk4}6j7Y5<)KmXMJ4 z(Zj^2!GjTBb)LT&Y1{0wDrrKuy&yW5$+tLKlE=Jnd5b$LcMXGXn5 z6Tg3d^TF>y!>~DzxZ|Tot+OU<=G;?C+xd<4?78{5;SmW5>4oR~zj1Z2wzOI8U9YEh zF8h1**EH(Pgyp~q&nQ<-T3>bLYZ`*dmrV`{V4n47eym?GTB^uxQJRKpg)-`rnXL4+ zx(J7$0o%BAEm2pOosqAU=!&}4lgq9dMgD~vFS)e~iQ@M3+^issnGkIN4te8R`*=6D zY7J**jjQOQSMei-!Sa=MKp2g-{NQyW#zCK_=fX%4ZU8JX2D1r_=nYom8T`)NPRa;l zx5eAI;rS2KKbI2A=G5#%z`|%1;{#D9@kbNE*+g1!IcRU>2dO~5hl>>VW2mJ1U5y?< zChGp0!@XG>|@dH4o-{u;Uv33c_mBi8+&4UR*ta01%WpI7AuXqV1@rwp61B0!J0 zH@#@SNP3i)m-}J4hzj+m1!xN~5q9mdmAJWj1%%y1X^=->**RLEAk1y@$+J6los0uW1CRZk|S1IG(5$jd-IR68!TyeA^W6yTCj zx}_Ii(|N@|Dd2gS*Ew^Q4ZYfqGRTSsmfm{qLt5+g_+6x@5!849F!1@%8ksY4ZjWfQ zPsYn$$yT}|JJgZ6l`FKbd{fCXqZa|-@Xhe*ae4Z3GVRXdkN<1Pvd(e05M#yN%29jY4d3?~D3MQG_snkeLlzfTKYA z)0TLu1%#ZO@FBB3t`EK_CEst>W;4e*AOsejU78!fokx4Uxsh~#D7{Fq-lLD5KBjnw zp|y?d({s^oUC-uKERXwB+iwOZ&bVE_e?{c#$>nZJWHV+!<_;~S9umbg3Wy97R6LEKsmFie0 zmzg>SZrRH^^W)EqszLKt+R+FD&;efwTzPJ1BHGdAiUnvfg?Qi{=_{~cg8zVn?tPF6 zkrud7Zgn45*P!jusa6cJHVd}}iVC;dc@%X5G*RbD)JR*aTzW=koW~+G@n!#p68H#N zszl?57<-T*NK02YIO{I&u6AzV!Nfr=3_HIdyF($QpZu zHjr0S_EsH|!)l&CG4I(4L7-6uu0`KxzM^pK+WH{q*mH+mw>DxHPjsb@=b_^u~ZDhzwgmq>T%F+TZ}~s*=_PLA3SRxrH?H}LzOIc zyS?_Ho9r`XV#ETrK0U5;e>a}3iD9lQdU0%Q#Joa0c4dqay6xdgw+KhX$$@bS+ng2a zhd@d+ggG%rpCrDTq*6KA0wvLHeDVsvn}%J$w~Zsxt9|G@=If3KPq-`HOv$Ki$hbzIk~H(p2OQ0yoU zmXjsL&3oHp8@doYXnFhI4KO-#E(46GVX4ag{u6!+(jKIIv-F)W3sL}P*@MSp@gS}3 z7&O^!a$e|AS#K={wS3L=9FIq4Zs^pxUc1_FO)9ag*xs{!Q?x+&aI$pqB=iSw`mx(l8H>x)aqOLoJ`aFGduP52I3TO7YEkFg^5;nQGI*u{R(DX_1{e0cp|# zI-)K`d$CtfU$oa_{~ra6(z7$X$$=^H%78Sa~kTvQ`@N5 zJcfQfp~pq#gW9g1)|qZf*;7QT@SHvy|LA?({bunVZ2mp>X{7B&g)1@!CL;`r!V)J+ zUh@VX{$?Q7F?uO@10SHh+TWNL*BXK$wfFkDs8!cv>&g+%5YbxvAkH|U^C-jt^jbP;+~wja=hBA5Edf^QrQeoj_vSk1Z!3ZkZC2|Iyq(O$Bx zpeC#$g`ecq3f5ZONRtB14kUYd`8!m;8&%J!pQ_=boq=-ZGcw@ROAL2-^Q!fcHb0YI zV(#t^iebBkbC;Work6ZP+`5uTwc&!JH41Duc80X0Unll6 z#QUx{26z!d875hrw^rTyw(SedIi!d+xxJrA$SlyYP}!h{(l4e)t&A$xdyNH{@(>?- zwU)f{*vC{h^(BwT)DY`YDC*d0-KJKa;FA&*sZ888z;<;5M?G>PrQ{f!mhz3R+H;m)S~H;NMDB zQfRk}iYRg9OABf*%DDiO6Vjl>pl)H(D&QWf3Pgq@y4tQ6v;MM`w3YO^Wn}9E&7Hwp z9%+nbn&;Cg!Bn{`?OD-bdjc`Yz3k|4ggp|yi%U|J*h*GhVBoRW4MWUnMU@aV%JOeY zhFjlNXHu?OT=DlOuS3OCmFGZ}9OxKbn8erv{yS=K(5Se)PDCbdCDKI3H4JQ#D8Q*X zZ3$UxfSgiah5uL48h|d3#;PA4-M@ZIl)z)=jSMfs^MpWm7b9W6(ek<6(-AaF%Pd!- zD&)ZA2llMWk-M#$=n4F-K7cvj3_h0Tr{}Spi;4;umuZE1hp><(@@GJng zKXqzRd#(z;jfd`%`ptttho7yC8!{5S^-qMnL?6v9vzEJOT z9I{}>w%DO{=rhJnjb{BjQG=e{D_}Cu$(ite*FCaFJB52VCXpGcs@?-`7PNXJ{aoCy zYs)kF82saIwqqRR*1lQwc)sm|d7mgss=V00wW4ZcMGew;+<5dircS{RMgY6pMOZvi z9NNYknfCZa2_^_o*f^yILqwZ*mv|Tg3_QpKp#8xCNN6UkX~`wymC?cJeOzhKy$P(R zDO6CHO9uueO@ur+voxd}(Z5}so~CqaeLc-yZ_j!HLLyMMH-QD2^CS@lcG;Qgd$sgCbL9a)W=E(&S>{X209-h0 z$j;_+l_RN++L_@f;q~k7{CKAGa=_f&298A&8ftD*K+5#ot2xD+CqG5pC64hJ@$Izi zm$nSM=E*yFyUcz$kY76>BK1+>hH5?;e#?*d#FiAX~=BUJ@)$%Vg= zHa`ZUivW8fx^n*09k|-e{1H9*GM1IvuNVP%~CkK9X*^AV~BO}offZ%dp zt9G5SCHM)#=kSIEwj-J~iRrd$AkLfSowcSEyPwTXRU?di0ym&x5B z`g&|5(=&s|@7NmY6+O{l7JbNRfqTexe5qnM+NHh6`Jne6@uge2MP!=i@^isN8A+iQ z`ltkzN#0X^#1mfcj<(i%3ArW(R%7k7|gyMblz&jzfeD=0K-195T+Co#sD}2VKkN+BPAXNi+>a{tq;NJ zN`X{%PpU~+&o*0zk*fq1XR2~I zCi2`~8fm*uw)P&ay~C2l=ia(M@6nSa82r`k6axO*WIBcJ^cSX`#m#uqZw~`}P4NeU z{b|ccE0I7c%c+`cAPYj1H@1?MFK?wv6uNnj{`(V^ z#g5gO$>i+|=$#=C_7V!?_(JxOZOqder-#VAU$rj(HUHG^?8WoCR^;Bc9_NQsUrMrO zi;lNCOU74i?vHEz+wmP@m?q=Qxft>vv0C{r{^n!tI!ULH;+uHeKgaJyDi~(#;qq*? znW|epmyI=pDR+mpD}^6cOV=n<1DUbKs8z!PLq1_63#Rz*v=P4+>InSzK+eLjXj;we z8ee-t+9j@lU7@t`J+#`752yKzHo6DeUS5B7y)x?C(fOy6@nHaw(?>*WG%=cV?5;~; z*(_}rK6PtoGYK?S?PUktJL)tEEV zpOIeA2kb`b6?tktJ=GU}3f-oBg!QJt2HWb7ZQ9_ciGp%>yaTnkx9=8v3Ydvje!NzyNJUzr&Ji?jop}; z-)Uc;U=Bd%Mgvw(IWFlO949L(+5E}};Tlf!&JfB=+iVz4A72gt2&dikm%4RzJ6-b6 zG_G;{d(+AmXo4WM$s7Y0JLoS$LO3YW%6tMT4%9hQqE;6{FyLm9?xJ;Y(b2gIe~Qq$ z70fJZ&Vx80G>jm&H%I)oUe-K%(3N|cMUO4m$XG+W=luw2!7JTKb!t9%D$nP)u~as5 z7Ros-OJjH>U~fTB#l~>5xFmOS@Yi#n^uklduHoF3SZ1}zA*|Hm{jXa#ub{00x7~Q{ z500%>p#PPRy>?f_Da3ZOZf0BXQI(3X1>*j|nfcz5+yLov#$3Z?4E1FW_fNh+9L*(z z^3h&dTHMH#3547xq;8Ud?Ct!kh=`oiy-rekJM*-8--En&m6hLf@@(D;p9LZ~E`N+!ZD6om1mwGla*=;1)aPi)9oc0KLId}ZyUiCXm0LL3GiWDbw6k*WD4b_ zTjSr3?B{x=RhZoCXw0K|PrKt-CW-#nBBma4#d}+h=YPJ7&v^#vm$@EhU5Bmvu0~oO zP@ZnqZI8AI=eY#zq1qR7l-wS>?9z_wO`_o$2@gb6j7+&^3|_Zv_0$VE!F^pvKQ@Gg z(dq;rm5J@_FCEjP?VxIY387zEv2n#7%8wOlye(BNEk7#N3WAO8?z@5tM4{51{HI3t zHHhH}DOcYq+>S0VH1aXjx^PiZ1z|bhD;kmGW~W>j3gT|Vde=K##qh^lhmz)>*D`n| z7rZkhyDZ)pLC-B+V&!r$P_1WXJ~BVhWN4&qh@9sHCvh8yWtGN$4zlSBP`6-YJQP0v zx(kNHv+vhPz+~rLwSmDOff}eR8K<4t7Nl-6r?j%Br_}o5rQC#zuRXl~NTq+Z38B)L z%Or~DFa~@+Un-1T`JEz9S?{*?AQvxV_!1rnoKDa@6jLXwE`B@pvOr>~utsLfJka{1 zE;mPR`{G?&$>JrDkY<`Li(0v!L*D-L;d{OA-X)VBRm0)wr<;bTG3MKghmY{3v`tmj z)opgt_S8oDlBT;xOs!S!=^~`zN6aOz;~laZ=mWUWdV3y7B<~ir@-FwS{x=e3H{{xz z6n`5CNgm(U+Zmw=BIctThZ}|NYV5yG?%lPI(FmmMw_Oz6$Gv}KPTW%aTb=9A!%Y1< zA;|LX-kcg`cUFBkn^m2eTOYdEHm9E&F;$6m+iXjfABOlT;dxGF#^DA#SL&aEduQnC zI$ahR2zo)e^8w?LdNh0q?B&Dl1%R2jFd;Mt=KOKS_!r)LcB1sDlJPY*f`94$c|`I=^Ya+jLom!;c5hSXw$`l4=XXZ{EdcV%%i^PHzg}&g?DjoXDRc33w{`4&~Tf zqZa^$Yb2DRKg6M|HWtt2j%l6N2({%kvgm(*>}U9&yOPRvocSs6$tkG)*H_PCjx@SR zznp)eODEq&przG4wV%1o``_NUZy8|JarS{(V&c(dQF&D%mRuBoHCEf* zLSYw|{@g_P^hzF3#t-BcMB8OQ%nhqU%)G0t6_GqD^4~c$gjg0<;G9-!MSNfm_FF98 z;Y=9c34HtS&+7c*EZd2G8mOxV#P<)5ft2z6lNm3w#~jz;;+hv(U+2Xj+?icQ7~i?! z%=QiWnR2(z7K04ou%Mof_K*8BS&@dSs1k*mPOEW`##C?1j7nnU3+Zv*4+0fmkS351 z!<&Br#Kj^R{TZW`$`@8byhf9q3g*yzRbuN~AN?lIA(Q@WVuAPIJ{xwppp?AT|F=PI zm{!(mx^hXnp{n7a>acvr_#ExZf8jJ9>;!LwZNP^5bz8|5lQ!jKjkvgo&2B_5x%w)X zz_)f?jfRLWJz5K@ZJHCIhTxhuIs-oRlj-`SW>~xH4n9W4>o{ z4%Xv~{#yyQ>l4=;9HM{Sl-=NqbOQN z;D=4rvM`M|6#hCKf{T2T3w3viBW##`O88y(QKsIzy_<%v{QB|6_lxxz-=(rmt|oG3 z>WVR2_C7tl6}i_>*ZcK~f;Bex7YOfg#j+m7l_pjfINf!K4yQAjT?K^yoc@IEseV1`R@VGp ze=9G>>wqVV$xhOTr`q%J^x(2=dg~-w^>4Jpi9dIr4#mMT|2q(j2ls*&YXafX;K1{o zB*tI^wfR*xZP!AaGeE8M&{_2BLhQ9pG-o(DU4sv7r&T8dF2fB}tFl*AU7FhA{5^~6 zV4l_Z9U1Z*3-uRVys{LhZB9ScInV=HHh_A%+dK6cUUQLlie&RM|Jb z&*^&lDAxqw2YYDX*x&qLb#co5nhir>F@aRFBVFCEiaoRn?F z0LY=h3GPO82vG8)uA1woy+)Y8%t`4VJAIZkCy>GcS!Ybkw;^Hnu%&<6r@+5PotK75 zTk9n`r~;tKUp^2k$#tOu$A93 zL9$@e%4*jIvtmaqBXGNYdk5BBTR1#cJUo%D$9;W2kFtz}!M7*{BYfanrRTu6q*8-v z`_$ic)f$sTNJ3Nx59Z>Gt_Pty;U=RWoo5!RLS}z@K?6T`+A5|;Cxsj0i0)|Csy(q( zsECaN4yEDN6+nf9W?=+yC}C=WX~_E=G^?x7>AZAR25^&LwJH1qCJ?;-zdGx9SCcz) zR+R~uM)hWPAZ-H#tF^x)W#0JV1+@j5U|wMa5Ed0X^%Mg4)U3Z-B!IBXR)85%V zr9us~oL}48=OMqFTFZm7ki`kmfN63t*r|;^JySC#+rh!&OqURs5v*+N$^;{%Rb!Ja zjFdN%Q3YjsB1Qfl^c|^_43Qsp=pzV$n^EA12yV7Wzkss6fc&XS z0f{2;mhR-riymAGuMJg`Bp*NPoR<{@)E*3?v=P9j6qA-VZ#r_7mlx9B z0pZHSa(fezDU8&t8}0&78*!ptCz;E+<`sNC0>cp9Q_bgtNKj}hKz<{Bq7@LSSp?HC zC&qza=4D{~7Zk)QqYg!C#`DlILG9}@QMJFa?x24KZ(5WBWa zei=N-3F!9TkqoT0Vk|W#DuIf!CSxNV*tj5fQ<9WFwKjF!z=*xnSR{H%B%X(%AW$)3 zV`v=`yw*#u4A_;qOqgW%L>=<8J>s}(QGVL2fT%(%H3fkO79;{_j98oZ;4~&=lXWxz za|t%R_0vjjkDYH{83{`&l|c8g8VvWK1^r$kO}s7_UFWNChP z0O&+R(n`C*tXv)T>vAeeZl30diKYwY`hiV|)BOvOn&6NwVgMZF=Vw8xsxA{)@!(3J zFIg@a#)HM?Ifk`aVFzO*@siDD^~VwroiWJN^TW}} z%v15ZL9{*Lp6Q^n20+0bTHL_jIF1L1rk0Nt0NMKmS$XJyj5JdT8!iw7Xm{L{s{xp$ znq}>hAd)os1A#0k5}~W3q@p5EqCzW^n#YzJ1{`TXFQh0n{FNXFU4GY~JL2@~XeUzf z31880Sc;_bzJL3sKj4bM$5X=CWC}ZOiI)!RrGj1Z_O#PupX->&2)?vc@zoHozIf8+ zNtLl>S+SGCpkaVj-tMd-_Bp2sCcBYHXQ_m1{WhdGFt*eL|Jyp>^X^11jVc0pI}52# zIu#N<&C;kVjt?CvpM4g}Nt;GIU8WA6IgsZkyKu(=Vx-i7Nyk`TLt{?C`y!%-xpjrj zf~5zsW+VR(`m7IVij!z3Vcgj2wY}cF9L?^SDQ2$2ajxe5w)l7l*sN%EbyW*5gz-E& z%8EdQt`ifo5GLWV1V=~2a+ibUc1TaBdWj(cKb*9=a#v>+COB)pkxLz+<`x7ORy>;= zxmWz_H7o)U^NwUM;H{Ga20$R0=T-Mz>Rp^$x@-OhN%;OG-5N)hg_^q+JJry<;ObUe z_;iMyMY(36d9UXG?|u@yu}Ufm!T0l$3BYcKKPdlFsB`buEy&PURY8xt%bgEGgImq7 zb?O+S6V>}KNKsoggE3LBl=*xAtW2gK)_><1Pjv4jyka5XL%Yws9Au{PpI=|HelW~8 zT-}}t#Ho;~?dL3|8o34_;q#$O;M$O88`4@B!+KyTfjVb|S5kaxf#$`}%F`!Fx@tv( z|Kb|RbIo(voeq^7l}#pD$sAJ(L7pFLC*jSr& zd*D{qi`|gARL;FE3|uYIi%S7n47@UcMpR-P76OE}8(2!og}$a0J>V%Ev>^oXJ`X$r z@TiIf?+C->(&Dglz*gSdW`wEVif*p9e5Vq(DpMHi45mkkwQnTIJBDu)(#~wm3tI@k)uFlgW48+{iwA;o?+$fMuyVDM{M@q1H-2 zY}R#rBER0}1{X=;%7V{Ctco(}I<`5(hI9r4^_pT|I6K}z5DB4DSIm>|#Qyb2U7fKxTby;F`a zVxts0VSko`H8)Id%>RY3Ms&}Pb{~Wbmh7jz25it%m9mFs=_Nb^1ioy2Amd{*uAR9U=WE1WKq!-+Z#-}T|3bS;L%$FF5=CTIccsGX<`2>;6 zqz#HW2b2(o<{%7e17bkf@a21GLPZ~@NN}Gt;FU1B4;kz&UZeW)E$@$laWm zw*pu~E9aEhvZs6umJ9RSc9bv?HBFyWFflb#qo#!lRh1}7m4i(_?O+2#pmfPj_5WgO z)d++Xc9U76$+9K0d!0jM9aSN|ze_(H!+ zX^96;SIhB|+#jwGRk1(i6(h401Uwzeiz-ZsMLi7wSu>7zbd)%ig3fVpxxb~cD=#mA zEO9=G6*sE=w)S>=X(pv(SO6*N6)CUsd!&Fs)^3nzDa`!Mw5Hk(=LCBrphEifwf3yy zqXG%w2xUtRr2T6bt+dnkk3glv7_RpU=`cuXgCGUAp2tcfHgXW|Yd^U)+q_}ZzmG7j zuDI@r{-W1BNiudhQp zKfh;?vHI)}3hsA0p^6&=LLOTWj1|%=`qV=B=oDdZZROQ_$3j^Z^!uRbd`isMv&c?euMbjvrYE-wKoP|yK%P%py zpB%R^WjvrQMv{7fO+L>TQUZ?7DZS57Ib0a=xBa6=fee00#v-xEa}a2fOBL+UX<{Dz z$K&#r`dhY)Ol&8!oNwI{-kctpRe0*IPpp>!+Dl_s6kv|GY)_j7txkzqy!8>yZ@8Li zI()+AbOHG=9`b)vXj#tf40fbsX)y!^^zY=yz=6V^G;vaeHJjmLf{)pl&eEqee$Lh% zABS!P9+*q5HO^+8Lr>NUKtDgQfktV!TeS%? zFnjUP9@cr21t2&3Q|0eR0w39LN!p2T1%IZ&6UnfQ3E;Q^*fwNG4?s@;q_ElYV>ZxEuNYRCdNHjtz? zRRv9dwtMrkENSUyFc4aQ@=0_t5mA1>Jzjz(p1CHG#!N@&srFp0yYo@?4QS&AxzGlZ zxGVkQ@Kx3WBhV2R2Gtml^m?LZv%qc;wMUyzl$JA7QanSBW{jmJ%g(lHR%8D+;)0_m^K9;CpoBt{(bv z$SoZnOMR7TsEUfg?$IG2^%V&Y>b@$G>$h$!p%`0r_J`i12cLZsS6FQ26%SVJm|@~S zU==3Fzv!NugRX0m5IPsBX*bDQI-KwDVFU6yLcmpmxWh>RfW`TPS49?3qt{Dq)cG%> zVoqs~y<2)K0^I1{U6N-|g$2<-jh#e(Vr67IG}BXnI|(o#-#6a5En}k=;OpWzxIx*@ z`SBEsH}Z-C*4V=zddLGmq=2U(x3eSw5LvCG9wU`6NEPf1B0*fc*4DAF_i2eSK0fDk zbBW$Z9XS0Fx|_(qiyT-WB^Lp>B+3*+*g@4cY&W+zPrXL^eiFtA==ibar0R75gd+3Q zW88^u7dODka$Q>PqP&GDy?Pb59?d2*fapAIO?}T(-ch@^}NJ3ZqG#GMA>BJ;DTcvsgmKr~V zgI{-m32K6*N`hS)&CTM0v@d1ti4@NPd5~QX95$lr)F|b zIIbCprs93{969C`u1wWn;MVtv!KUT$K&vV;TCFTF$1{krA95X9o=pC4P|v63*C?b| zVh<1AMPs6ZUt3sJ@bYxkPSrnMC>Rr?2W0Svey^l`mcDw~t=s&%x8bIsNIR+v{G0~0 z$)@xrzx*_~T8V`sK22m?Yjsi<@>vPY!M?g59j z4cVR|b;YG3_qs&FXdo$iP1H`vgLX*%I8gs^7K>{1r{xg9iGk|?WQ&0#cR;Y}KVcV= zKf4JMv_leIWYb~lSZgo!Xy?L4(eIX`r3P4qd1Qt^s*J`gLYgJx`5(nyK6mQ@zuZ~V z1%DIcv^C!q>LV@^5#RN9Nd{;!8+ZB(Gahor0P`=Gx=!kAcvX-V}^nre)oF#hM4Tb|Z> zntEjzba8f$D0kFoGBN^PSE7&D*&d&q{)u4^Gtk?!-b$G90QLvd@?D?^g)&{bOn+Ui zju0;t>HxX`NL#PJ(+jl3=&w>HPjUUPcCNIm$ukXWXKHPoqbFL5MHY`#5Lr@W6BIb@ zfEmHTkpdEsr6^0-B0|`cR8Lh}B1}gtDqB%m20}oVuoI;~972MCfGkM{f6LVKbVjCkPrEgH_!9F&wDS|eO=eLOiq{f+?-uh%gFOub6UPfiC;oTDOlo^;HAqe zwQ7v6=Xe!|**;=fw;6;MX13|g#3g75RNRap1 zO)(Z^cXhngc4#YKo1J0kxjTqR5ggds1E8%%TW~C_K^awTB|Ky-H^?Ei#_!sftv)>(ci=C z+Oxzxh-ac7OenhF57p|Mtn4c*)C-F3u`a*t8s4@yW&^g1`UUV;2{+$7X1uUMY%{PC-N-;sH zVTmYvx7%h{`)i>yB8e}skMQkdsj{bqfmBO~3)X;Rs$#!aVECzB0GIaIu>VQ}6+74A z-6=1CIx@$T{#dZ&Q2$2KWG*c~mc7U$JE1H}pO^)|gEzo+#}-|6YilEr&0crdAXV0b zb4Isv5;IMpB|FQ#ADLW3>?d0!`s6guAA|$)XLv5rpvGMi5c z2voro*OpImb9w-N+cj}$&)53C&1PWGa|VQ^&~kvqh=L=YW3%!p6tB^d9(0?`k42Bj z#eZp;O;YWsvJ1p#?h*4lV6GHqs3K$?3k(+rmd4|o}N6lkZo)f%!jOOK#lf!b>#$32!Zv*Lml6l zu0kL#&rY>IepCwB_%Z`!P$X^$YiO59UF~JuDKfC*Q9+njfb}=b{u{R3N=zFqHV7DBE;k^7 z;=f&!(|!N3x^R=*0GN0Blo&TYbBSxYc@TQT|Hg*2Ch}P4dM}vSL>T}Zx(u|+a7!Vw#4R{~rZ-|voCt{@>u92^IWGMo6l#YKa}82R)sqc++FK|yIIVS-f-NPCi8UbS!VM%e80cPzx0qXq_f33}rq zSPd|4wQ~8?v^MqgQz5cn@7O!5kf+?6eXsPWpa-&dcKQ%>`BDD1-CHu2d5>xnhdi({ zv|5vx^T}E^Hb@M<^b~weidhN@!pqU2o=jk3h9SPc38xyA@i#b#o6J4#83Zce4zp4k zcYzk|H2D=zsj8>uwOnDLpU#V;K*e|`iK+n-nVJgO))LWOix3Ld5hFbje? zPK;0o9dT@|U+xg$#+VLF@U|}i0r#Bb)M12ggG&y=WxYm5x*!DkvWP_bWV) zUwJE)UGcvye>Nn(KR^u5hkr#bDY~PNF9Lk5&;M-CE3^bJi;y?bMf`Q7JP#oYH^7%~+y5?C|4;RL_!8iT`H)4_r literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/playground.png b/v0.2.5/assets/images/social/playground.png new file mode 100644 index 0000000000000000000000000000000000000000..2179ee3e33e738edc1e6f78d623d37d736af88e8 GIT binary patch literal 27782 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_0_beta.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_0_beta.png new file mode 100644 index 0000000000000000000000000000000000000000..640d6e6ac8356a35038183416ab7bbcb0930e1cc GIT binary patch literal 34353 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 aZT)W3Z5sH9C%WjF)IVc*I{#0bJO2Y1jx=ci literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_10.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_10.png new file mode 100644 index 0000000000000000000000000000000000000000..30a05bbf067a5899bb575fd58f06f87d604ae40b GIT binary patch literal 30097 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 p-H*pF{)diqM6&N@`V0QME(FUJ)s(irSLc zYL6gR1ZlXh^!xq(?&qB6-{+j?kNeI!Ip=fQ3ge{SKETb-?jgEyg8bz zwErmId-y_eGFFkV9Zr}5h%r<0f&c(woSu0j6>`ifsT!Ix- zUTAxoS#2sJVx5^NLroQFG43&+4UX0drI)LLUj?scDg#3`2mZNMQf3A#V!R$ZA2j*r zsz_r0^?$BRIQE_U=jwVC)3JZ9KBzuB^v{(h-?#mLubyR{dc5!N)wiDid%ORGY*+TB zV)-9mFpA$v#+Ad)cSWb{)t_-2347MS{Qt8d4wb`>FiD8@TrBw72_J$6^(%&;z5OAa z8_Y_V`a?QxIa1^Gp+lduJe*qcCf)inJ~YD4GBJID^L@K@N$zLfw)`!L9P^rR{;XWv z2bm3A_k_J6!j%PvL1LDDHH)Qzl(~JDV&YKJ^8S5}+n;F?8JY-HkJ-%tLqpSa0~O;k zQ2}$ZJrBO5S72&0z$`t{iB;WZJP9vpSqWRp3t4@m!4|3e$n&+Bal8;F(?r%=d=7Oc zqFk61Z-K{$Z!VP$Nn*^!+sQHMr&@$GB46tVyf+9-V3*M|`J#2cr0jS9Ww+Y*_)PkC z;OOqtPANE?9udC7IGDpfnTwLK2q>LJeUXa$( zSsE!!bG6JU5w61@GD~iBFmQdC8~*B*%flx}U90v{vO+jGT%+?PWK1N9m*!F+X%Pv#~s5AsNp-KUs!9b?PT(B zc93tuhxTe6++f{3#nF=N(V>B>@{-QssTc0lw$M^P4w{;icguLJv4-N@17lNu(lV)? z;OB3=ys{h>5HiT6JdUS?U-j#nFs1%^Q|Z_bg#1IHfxwMkxB}i_kpFg5RWnrgH|JR!C|>U$M-yQBV$m^&}28MnayeY zQ(UX42t*^`)nNg@E=L-xUi|GUf?IQT=Dg;Ca1xqUQE629oU_$j05LaDmxa0=D;emM zmocJJ7tn9=Qm})6#$F{;tY&Vq8yS@uNq0Z8=DJ~VU?Q%z!ZGn2X&x?HKD(weZ5*Gk zY4^^3X;2w_k4%}a=WW*M#RwpTF=bVROmFGA%`%1-EHw)1XDSa#m)s;+%>B4n!&Nh78@Nkxiq!H`1s)O8tzt_tvMDO_NQc(eFmKjerzJD99$?`b?i+am2V)b;^;K!7# zoJ}`k&AKCYbCy)My*2Et1)pVCk$FjJ+Se$7R`Z}lM;XW8esEqRvRr{ykUEIL8dddQ z6E?G+Q+!m4$;#I>e0QIV%|7ug)N<35?o2gWs`D*Yr)utPT^+%fA{>0@(>r3iHQ0_B ztCX7$Tx%K(T&=ZI^wVwY_`Jd*Mq=^1|GJ@KEVg#ll^M>~>4YX4qc!=3b>( z$jGcl5ZHwU5FC9Ca@;kdUdK1{*(aP`nDlYn=o?*X6&5qBpBzKtXVQ-N%^%|x$836t zSfIJ2$YgWj5jsHKmYG3sjqo+O`(cGF4Br__d!#4kRh?AEn_p+OMWcg?OUeAwx3zkk((Que z^&hJ*wOm3wk9Y`4T`eP2Xxc}iA6z)Y^>tvRr`&TUrTjw#`Se8tl3(7b7_%F;b^N{? z%eJ#WonX=L2#fCXJL9ic1MQ}tpcMRT>L+)CLiO9vqR?y{d0;DApn0^i*Mf|U;h#gr zQ>9P@a$$0ZL0Z-O8&UJ`v%@M!)5~7xn&C(s>=}i6H*2J^X{jc(=ew}Si9Cz)N_!t~ z8N|R`Vqu7A2zAZ`j-)a%as++-TjAl(ad4zb;|d2LmB&Mi8q;(81Aq$>b8a1WT5s|R z^lZY&n40|dv9^`ToNt=<>1$JSiamR-Ftf-rN^?Hb;{-R#IC`0wNC z%t>CRQx(gIeY@tgK-eFRRO78xRC-4FR^Lr_ z;%ydEwQ>-};=t_r^QVz9u7%ypjjreKqag9fL+q6Fm zUt*HLlPpy&Yvz7fOjAU2imvXkfgoe_@&24LG4}%c$zp67<%wV1ptYcA_xPW-@({6v zM5#eB(OVkgT4^Nqtt$CFZu=V`OUshC-*rl7z!)39c9-gGMBE7Um?YCJCGVp0cjZjCCQ@5t^?sxfr=66}dz?4td`{;o3%by;a$o~wK2ply zr;{Anh#C1@wcy|jtM-o~B;ay;1`0VT(d2&h{2BS*>y59)Pi*ph!LRce2D~p-uf(~S z<+uk1u0298C5xx_DvON86|XWszb5~KR@W&cvN|Z0V=nGiP3z{@IuPl7nACa3gMiB! zomr=%C{@JSd7;V$&X;PERV+vl3LJM>rONjRbyir|+G}FPxVq3FjO^&E6KJh`?-xWl zPCs~5kyMIR3*VW59-RO7>S`F_OmxM$i1zHJ(&bGS^g>|m*hyCP#jZ^F&fi_&rR_zf z5q_`d_}G;hjqX0X^#pExzF;S?TOUmZ!QCy4sV&02yI7%;7Z*$X+8lM1ZIz??nmPn8 z$;-_5SsQ!PwvHH|5PndWE6{6)E3F=Zqx#F|V4ZbDlQZ`&&d5K>EfjPt>eTHfdWFh6 zXuRYdM0@wU?re5-D}++Xd6mw(_e+SIi#<=4TCsEML(3qh?$E1}Yok{uHma?7#aKi{ z%BK3f7_P2%tTxTKF;;)0RPPL@d_?}vk83X7D1YJH4thvQk&;hhU0w;2)8FM`yUVLl zgBSkOgw*?kAfk(pEYeLRXG-be0rC-aN|i^Ar*?jc_WWd^s!D-^zZtl8h7g1-h4;vU zrPU)r^Xv2o4w(}fW}tS!VJZVrJc9VX3l<=hbjYo-({Zc464}aTaR{Oae+Sh3o=UY? zd|*U!9ak%EvAo^AG*9i3YaFfXbe%##e0Eo=aH|r%^1BC z^3WZj#uq2MU~J1z3_QTW%aOfzQR+v&SQL(GY+Q}ez>O5^Y3gtrhYg|j9aZ1i&Q-T6 zkI05C@aK$(8N(VWuEN9a^3^^W=Nx$q>|y2M{C-^?KeY3x?VC8Z#hzmk)Vwbx7W9eJ zl;oQRwRQNq@<=Lkn7iK1BqCoUls1_^Ml3zz-c)6)}sZz!6VgD7(0Iiir23 zBCU#sJ9dJyCtB^tt z)k&F#@qRF>-bm(_?5w`!pPS^kIZc5A)A#r+E?t?CJ~_rwd9m zGUblCq(N4lq+J=~t$p6IyG?DAM5g)A1;6p1gVBo@Tr@08_eKfSzLl+$WO~Ji#}Ue7 zoC*YJP>4!(NDU07&?V616~1u*Ik1+8*u1nlx3}qvHy4PW z19?5L`3EV2??+Hr`WYEN!mH>MXjE6}0!c*^R|n=7Wry}(=UvE;nk2oPh_lUEz% zUhkt|Qj#~YTKSw50`;?jrH&8Az>agcW z6pW!sD!F_Q{;Bda*0}xcqQs@1)^oE&dloJx#Rr0G2P#BBx@O_uwhs=l2qxM z-swR)&`vyz=mT$wzL}S|1)%cMN3LBZedrj$x=ZiT!_2&-)(3G2_Nn>C(oc+)EpT0g zy9F`IZz}KCG&hv#r@|~=YWTbP_cNusn~B7bFQJQLPnX6b*2PKKU$$mavkGamqi0bt zY>f-4X`KVJatQ0!CdaD1!L#ZO0scz&{2oB>EGpii)?4nZekgAhp|T|xD$Y=5`wS`U zn{3qLF~Y5UXw7NmMyT6*Ev@>*;*677yu z+q9%nyI;tmT4l0O{-J}=)d(H?;p5Era zMm5SBLLCV@v9j~t3pw|;bAQjLutR~Md|Sr24;sebHUTN4j1mXgabN1`Mbq*{a9?YU zlsxh2e>7Xggf`786zZEFzOMO@wrLgPfR6?9)H* zU7Jrx4yHXZ&Wb)az;rmeZ}o(2a*z$jL65L-IiKFA5vR^4c!Sqtt=qvPpf6#`?rudj1m>mZ&b^F z6pyVG@0B2h={BsA#ok%}IELUWAEhA0Dw{Ka zH|M2_(=8bpQ$>JH+GJJ~6yG8qp-Q#}E)iIJ1y%Df+2jyWq(}PeTf7-CbIp-c%CQ^i zh)We&5`J2)I?bDqUpQ-vuk-YB0!hWZ?r&tes`_}_Gb?pE*Y^JXS{G-Fyn-qt>J0LG z*NUp~*lpx;&qnM<^{z7I?t!o*H1G5jnO^S58ddd>3n!B%CQ-@Yx1ml)))x__czKf+zVOB#gxY@#v+=XjP zmba1)F{-Ldx~Cp*>yAY%D0sao&rVYB@$h%;1Mh-zx9O!5PM};2Su%L_TyG!cO!#40m;Tyh2!&-*F}JXOYni~9{9yw(p6xUX%zMN+I(et;r=;*@P;`GV(P?oz z51P>dM`Xdk478W7MO!ood=ifM(Q;k*MxTG^n&j8A;wv*+lvSz@}@(S4I^V#is zMQLjL%4THqYNk0@ z7TK|}d|XI5T=}I3zqv*a>_0v5C`wyBzq|(j?Ufzfcj^J%bG=z>VJNE5UF*8Km58hr+Q2TJm@A41CYnI=nz0Ir z!GGMSZ={j>{2+K zPEarA5~I1DibBDNb6JBtSq^XdM97z(Zp*qwo_$<-m}Nv-Mbq*ODr7Mlc8)W~CDoXC zHrRtfra_>k!@4?Ewb!=OR|27( zY27Fye)x^=VG;*>RDe%3X)_*re}0_=H$R?mc~KPhpD2nD#0Fsxcat~w*+rb{gG z)+W1qB}k`BgE%_9DzVDK8)6&;|41J@+DoZ~%Njx~QJ+grbK_#s+|}pHfRBUOfi9_{ zQ!5z-@Epdlm>na`IGbY^)(|eO~opU~i|+V}vOvRuM{TdnIv@2Q;;k>%2V^pwdo&X*^}O zU%0@NH-w=QzV~%l(M0`?=Sd_5*EM)N$Em!d+*s;lTS6;K8l^Va)N3ZQL^Bea5(EY~ z>^@}T32AgUXmZXz@pp2`Dcl+O`9>kKjyMepYrDnmMY1hzZCI-mFD|CXh+flcwnTt4902V>_qMn08e>$PZw6sWOq(*mJzZokh zztFl$uX1owvl;WjA&=!@Y<)u~qvOMx`a@?Xh!EJw#>G&wxNbpfYu_)i@|@RjM?M-TbOXy47B6Qf z#CL1!0AR=H&v&<=4B1cgHO zD34#W#^Sv(FS5~tPyGX}M@GImjgnAzLsbn%L#ov)VL@^XXlsX*d9l1gAVOts%)kTc zy;nHf37vpw!4)dM7n4{@hA8y$$ql;du2hAU92(J?Qdr)OM4zt(Mdvf6?`IoSgB=@% z8N1TEq?vCK7%&|aI9WxF;LiZAAPH^RpVn*1Q3^0dVzOQ+xl<#llx4h^=D)BdF!q_q z&dWiVyERWl1e*lyzN;(QJb)g$8WslitMr8n+dkvZ_S@XK5o>Dl1&ua$t|H?`s`ZX6 zJQ6J)at#a_T;zwp$HXjQK4+*IiGn`MEq4U;Y4iRtm$tI+le;}JaINLuwc7%eS@|Ij zoXxQ{DrNfd=ryfSD#SkV9I+Q^0}{9|ajkLz>kfa~ek9O^?AJ&`Z3b*?BNFFT4j^OWq(~d3}Se=#R-5q`c&;F=VzDKB7k4GrSn&aRSQs&E=I^55OFH3a%aV zy@Q({D@?@XZ=@*)^?`bNA&ZYjC#1a8NVw6)Ds^&~2p=l%Q4(B@ z0-?DjC3(vIcYE8a$adfWf|yeSYLNi|yBx0D^q|85xNszj2j5rCL7!PyAaPiQV$g-= z>Dz7Rtde)|XZ@13l+VcaCDjZOK-_E(+S9@&KP{^ta_eky*LRvFL%;TI%=&0@(E>#} z99-&)U$TzQ+;@KCAQoa71b;MHw)VGn?}~;5O)bRcPBI8SJ&$jbg+}t%1W_%Mc}J1L`F8op z56u^^`Uk%f##}?zdL*@m`$Fb_@(6Rs6~-RDC`oOPuM_^%L&hn_?c~~dTPLtC4A$;% zDLNZ&C(#X1Y6iYqQ|;s5P8v1mlg&h``4)WrTrZ6B2Jp})?^cbnr6(0e_9;Ehv)aj4 zDg`&sYiLUN&nI)l_TM|Pv5aoXv+NUj-(Pv|@_+{YcZ+F&54>yyZ$dqd809>*> z+ou*xraz?J&65puaB{D-;`rQukGp~IEYFmojeQscWY0ck3i^rX4rq?5?TNc|w=p)j zeb;NVA)HJ==BUEc2hff*XTt6Q;4GyJv;{>Nh#U;`0QB8LcduL2`$d3(|Gek!H83T} zn`K*ald#*EodkK2fYLlScZ?n}zdK6rQ&dntbx#{0Po#$-sYD5TgiH2mF#s7_U%2t8 zR~BaA@*o~5hnI;BHD$zpP&d=Azp}EL#^Jm|t*ylp6X)MZ^3LU$6Xpvy6p{#e$%px` z3W;9P7{8~TU|1b*Y?XcBX=2%B8US$vm2x5rC8}}c&vHlr+d++pz6=UOOba*uuCSR+ z^d*2$w>ejeNM-unToylmA$z=q8%A7Hkum5i`<hJC8Vxty-6Pz z-kBn=kNnEm8LH!EtxGlE{+qm2uW;i6%YPyS4NxQQPd)Ay;Qy)-Y zHKPBVzS}t~vSk~85gyZ0r{^q`KPPsPv0KYh};t6BMGeY*>6XMyagVpYd4oa)=te=j9Tn;Ph6A=bCXY>tE?27^DdU_ zsNfU|-94gHHc))v6kie3C8mL^Sl@LEI()1n@Yt5lT)$~A{H*WjM|fda5HVyrKEY`a zgI>@9C|cVAD8fR6nYC9(Rl5r`bcLvsfd2OQ?Fc_&Bz>j5nLT(Rws2V9Z2Bdp?;Ss~ zP@riwc#RjKP~9$YY~l_#axpctHI>^ixJ~I$+E2Z$9~mqo{zjXzZYeoi|E|c}nD|HHTtA+D@x46G@Fv;SxIa5dXv6KIRs9|yqg`Tx`}dp3 z_Xj;&CgH936pA!ExkvLsh(`7-8AYrxj}Y_ILhc5Z5WSByv#bFxc1_->#^!<(1lqZ- z=+DP?n&Zvc*VO6x)LV%8I(CmUR$#t}TRnJ0NU&0ObXG!KWbJJA&X`h;ZuNhfTdlTF-D9p4tCtyzs+tY(DhsnnGw? zgI}uthU^f#@2W<72z}aR>%-_hZZleN5M&IVsKFZOW#ux?l=ryY^i zAhN{^7>Wl!wx92GUi^A~Bj>0z)FF{4YE+@LNXdFD;FHnkcGs}cLp%*405>(0yT=9| z^KFPD=6Y%6ZZI`sDLSwuTmvh5 z>&|&a$HY_1I+^e1W%De}7&6(Y?=8FpQuBwis=g#3e%~b~?hagmIUvV?Xa{rb{2M7{ z)KoY*Wz~i z`d-{JP}V>m#R=z6MMvrGI%faGOX_u#mkN$nKGGH{gH%sPA2qJ0PZ}!J2DR6{>swwM zv}w;3nVq+2sx4Nz9MKtiYvJwvC21Bw<5$LI@r<#BjHVa6w6&- zE8}I3YyJ@*XSCXVj5Vc_-#W4xK_V_R)srh6ayOP`lxG(THHNRvzzla7u2jQ)aYnIivnXRguxk7JUD(=)Y z^FfUAf}NzNRlGWMfnpr@+Vd{pXv+l97QuiwkySNTmK#+5B$UmKrAh3YfhV~^qM9QMy zU7eYqUezCkUS9g=Mwc%2Uqv)tPHtX|eWhS%)PfgPe~Qr3gP9a{=Dh)jKEd)#!rmt# zkUwr(KN>wBk)mh({=vU&S`K~Ftk#e`;VO>;SADIN0-gS0ytja=@LsWyceCo2;}jm| z>aG~>3(`mhXZMtx* z>OWn&j6^~tpt-Fy|5#Lsh7>~0c$q7!wa&TS+U+Eu;r+w(eV&=+F!EGx?Vzmh^k^|7 z)y>cOCTK74Rh!+YMQ)PgACy_guL92nFD(NI3K?D88su7n)Sq-w4Jx<$BpiA!Qw{Sk zM_B2S^Zc)zR@B?)DbNNH)raW`C;uS|pHy;1of6)DT3)}?KYY+G_a5s%WYNc3zb<_j z_Nb_U5xg-YG@Vwz7)pwQ-3&;lqp%RQgK7D?Y z(k1FV5tbmb=x!w`>wBhrUDS?vA!ecXN6{E0xQD5inqjmR<*lilZaXJNK4rX^FI6nK zY?lYtwDY%Q_a91Tuh`xSRW7&`!FB!^`yL{}JGCvbc|Lcfpn5#6*`V|UOTF@c&-dZO zg)+NJbv*tp{3-Unznz9ny|;z1euJWM%TuvVky_+@gre$Wz3<$TFF0_2>6A=P(!=<6 z&hn|%twL-2%C;G#{_rsg7AmW!gO>G z{H41;V|wBvd3&R{wILJ~U#*tEF1@no;-Rzg27=~3*`ucEhd;Du|2C*TtunlN^uJYvjfkmP6@MPsj%^%P z3rTL~GdGVgfw+fpVZP0Y{O7YuUy9U0s0~~0bis`y8o@W-e0CIXvlXaNVom+W$_GzJ zSYAF-VkhEXKEe_r)na5{!j{-r_+EL|PF&ancbV%?^uKFjn(*qMmP-?#&9j*7Wpm*Wa?cd@P)_-`K)+WC|7&2Ap6{Ap$3-X3G39dX5Y*?6V+SYO?J z?06k4}*WhbpHyu>ofG&w&`l_4AEe|JRsl1`Cwy?~hTu66#Dpdg*>dmoWA z(`;QBU29fseAB}%jv4)U|9>AA1i|pKS_ue95bvqPzE>tZ@LQD56PJ4hB+*wAm-IHi zqTbcM_)qmR{7tU@o+Mv!s+ABpPkSx~md5MCGbu~&YVVi+yC0q}8DaU(ZDX%Ji>xng zDw2FzNf;gVm^MF=@Fe4v1BCp8f2}MjS*$%H2+FIHr*iE{_vVgz3vR4D4O>#s3OIy& zeDI$$|A7LxS{>F#jKKiN(szu;oHO28q-|NeVRT=5Za`~%NJxF`R9f$9Gn367br zIhf!wNnHQwo=A!uyWN-Fuw*o+7(%=+&k*yNod@mS-`D?B50rhf;>#tBC4KUYqbp|Z@*9@i zNe26vE?t7Xc}vLb6XO`U44J>Vx^Rj+f2&JZ<=`Qa{&8Kv*SRK^SfcqBR&v7{5KN%( zO;f;6(2vP4L1D(0-)X7$^1%ACn#2@3{SJ>u437tbf&FDs+G4~w*3EQnuWX4TpuL(2eK0)Uw=O~8}_5|3%12B{fZ zG6HN2`S_bkCmfF(qWia?L)D#0KU%42BM!Zv-Lbx*=#Zp=@|-6MN0AGYWyC-7u;Yk6 zU04@@K8Ydz6;-;C+FS&1M<`&Fe^{1b`oewX+gcoRj)67Lo%;+HF%X-C40)L7zGuwg zol|P&Lz{Jom``d9dKA#640$v&G5uCO38=zkHqLzXagOwdj-I8PfE~h^zO>I17#1SU z4iV<3!R)iIcT*fZ5~hbXH~#K<(q{ssqGDNB)|NsO2k4M3{0J%er5c_EpOgWplMJ#S z<4s6a%&>MfXHYr*lz1>HJ-+nKB^&U;{w|SIih!<95WnY#Sza7a^WR*|Xv&G6hmsTw z9c=DJ@|*$l>>C-HC**I#KFFx3Zo|jsZ+Znf?^wvk-qcMq#Tq)kWub?>+x+HU>Kq6t zrB$6uj6u`NB}a4rJWFSB>KJe`(7JzG;7siQ+HCTacEBuPqKGlowiFa~F1FprG#-KaEyn{6^O= zwg-i#6CBgrRwqqW00$mmbGj!SHjK?)?Hy=PB3dmg0<2w8tIE`x<4!GJ^%a97&+off z5Tp>GN$ME86KcT3G{#)?Xy*~G9-x%wXUAPJ9?cCeUTh@3sdReM+!1Jpe*$J<<)+q5 zOhsRF1Umc9A3hE(p9DarGhju`6;4M2BIv4-tUFZmI4hBkrOn4Eyp*VAt@{Zj4-V1K z1K23+Ho2>>tPngEa76eW>6N`~CZ;GLZW=$IAu!*}$6p4MF07WtqGKERBph2f3tk^& z`X&%^+d(5g+}Jqm4p*S<5AK?2EOEcfRU^RB98xn)Ea$8%uLhqHFDAdUyHTtvPAi>^WLvb2&`97H|W;0*V^yA{onX z41<~bA7OeX1q(&*y6psV1C2?g2gcx~RgfwmW4IAcgkHd3hA>VRt%n9^dj%*=?{e8J zO&o}`vP#L$y?~+wyeZNhtNhX`RP}t`n?p>}pgKFiActH7MDXlv7+x`Z7}*(IR))gt zXHrU@Kh2KH$@%3)qAPc z^HPB9P9Tg_@dMdH=%;|lW%}=>ie(n2FRUjYOLhainglS~3Yatp#bm7BEMz8gR4yd< zpP$=m`)+>r3|9|fmiI@2IV>M@0ehJt|JB>&`zWVUkB zJar$A`!>WQ<<8e0;l%ln@^JET?q0FFf>NYX&E6B``xI(RJ7<&0gts%Lx>p8b_+_|6 z9}wCTPV?k3Cg#_KYfNdoyDMHv)ZGS$r2|Y|yTB&(q1o+5-X;%9H)G6=kj4m}E`a-# zk$P0n)wGz7$E;clUv6^ufC#tCkdI{r&ZXR0^nr{4u4Leo-^_5wxeIrXA2v<7lCc5oy+f*7%HBC#R^f4+Cku><4ctoK zMsCpC^C>f{%1BQPeAK~JBPo?j76RbMk1{_%_|yOg29Primi93%8PH62Gg;f`dXxe8 z;KoQDP&Zjy@1@J&R^sdGc9nsit;cb^1rXE-DT?`ui-QF=fKKNXY1IXQzH9^y(C8A* zowBb1Szt*E!~u{)+C4Dp#Lg72(-SkAnB3imOHdE_-hx39gdag65;**RvfNzI_Hg4h1F?EHU zdMpV7-aLRYZ;gbgEgxbvT`AbDbu@n|K2hfinA`xLKr1efK3V9mXH!eQ&dmn2BHO`x z>ET14#f1p9)GHP(VgYCamkM}x89)rxXsU3OtUM6IfoSw^`UK?s_;VMtUSG-q zw0+;=f(NqRVhm+p`Re@-*3pTllD`xSIdgo7|9bficOO`O@#V{JSqm@jx7MHT0T_OY z@b#`YB8LW(e5^Q2N_{Vh6UCdUiAr}7JHCi$yl4sr8rcO?}Frn6qSAcv11PcJEB>*Vc zvif|v810>cT(Wb(LWv^dSMIwwMm=1}O}$yXaPdqIIFl*|@3M~{|A476vtJfwEHGF- zh5>y60U$$~=5}|M^~ix;!fk$SgPs~EAV8%=X&M5tj?61H!Rvw#0mdbqKO&ru)CUqc z0As^yFIj`7mTx!Qb?a<5N_eBk?8I}s91YYu#(4fTsA-eR&WdYxy38kl0dd5?F95Ut zB$@1lfU5xAB*+4JC7=fZW?HPA&Yv$R4Bp*@vdbA4>#~J)0CBRD_ZE+mB^eM$LA3Ey zcDv7gPviJ8Dk;dF=~?-y$M{L0ocQQcx$@lx(C6mII&!m93CIEi2K1=B1QL$hn%m1o zzv{Xzd1YE!^%e~7IWturI^-q=_xg5&ZZ~x>O+@-fL^y+m4xc;?yChy|y3Z)*rywW= zb%A6v=lM}q9m;XPJ7T~ zhQclc$lN;4otMfx(PDFIr{|l^PVkBlHp=IB+K>oD4Sko?gb$2x(dHVBWc)&jmmgE z=;Rqhu@3AWtxo<5YDylGtO+3fe%bg~b=ZRwC?Npz9;ChnP`zuKWGU!lc5T9uiXWa}GsfT9 z_5M3sHgy}&z5b$B7~71HI=7Vh?$fH*UJ4dL^ZS+cLIWzQ^%PU3Ey- zF5J@}TgeLOBlvrK6d)O5pFS=Hs|8}DIvJ--g=;qL+$-6s*^93Yk%P9Y`!BoT+HI!wyMg8=(dTKw2IoE=_LtR34Ru8M-5yb#44W5KC7V5|xU&A$8}0z7`e*sZ{*3dw6uq z5W-2j;~2M*0PHc}E(z%{h%0svX$EJRW}e93j36cmZD3c5$Fi zIkVBLcZOc_{#ma(kpXe8Or0I6cGb&&6s5_`irL&7<5kecU65427s4zJDAPN{zM(#8 z1-&r~Tn~u~u>TDp1`IK`6l$37+XEc}L%-Aw(flJ*jsjl3tMD}2!C#X)1SlJ0#c_mR zp$|KGhEZq~t*9m6ToQl&$njo49?X0gchAO_A&vp!NDAW-=8#P?AN})Gq9?@}nn}f8 zhfnT%19;8ynLig5H*=jCv2?cvH;}#3+($a_v>NG)VR!wlToyxYsqoILHPqDRCJqT8 zoSHs8O2Fg~)@Uwi1l8@GKEBJX?m}RmC$SsGa{`L8nFB!4ZZQ`H-?+8394O8^LY__S zGXmuyIg5)`>y}i~H9o1j>HP)obs7BwwF1M66OvxLCj(07PMu_wIc8I0P(^v-{(VYX zvIEprLjeAC=?HSeNB6YgtX>*mIRY*aNm06;pnUPbpSnF$&~ogEuEUy3!bBC4uHBS) z1lq;aPcoXIDVU?uLv2?C6RIqLs6>)jL3#J4cj4&?B(UNbg8G=e54rj91Uk4=oQ6Rg zE7GA0ZrN(DFWMNimo47}Y~a!<))bc?3x&pEGA|g6O;m+2qtqA-q1x^=G`DR`#K2MB zk1}dho90GL{e}8$mQnTM6)2*nn%O3-Na14f(eNQIp`XxAuMr-E_PKMpIu^Z%F~I#} zOGdSmYPZ+)2+r`}<#(WPv~AfnwY)SON<E3*Zvudz9DFlEKGIdC1ZafS|X= zcHjywO!2ul4=Ydr^&ab;nR`Aull@z&i6J=#EI3N@h`HI~1^xE;en*d_tccrxc&#ic zji)Bdm;YR3Fh<1mx_9O_KO99D1`66fld}BT1K40vP(?+qn^xd-SL2OCIZmc!mix

p2ixz5Iap~J*tcOfMXwz@t6E)p)a^rlLdhF_R&prB+p}?l# zTQzlgY}3-AcFwPQ^X|MH9{|F&1W0*Ww;R*589tzU{uPnbxSeR8rMm`H;?AolmQ{y` zt1;n81s;9zr%ZqvYomMV1X9zm4W5hc1oghz@0@N0V56v~-iwA&H%$3jUxQ}8KsuV& z#rvl3?Ydh|uk!NFs`g){yRAI}TDyXC?X{(lR9+mXe;k8>b6%qz|Byy_-_7`Q5FyKu zUWSCWXMpOm(J-r}#SPfxfg}RPOun{e)T3D&Vq>4RTNkR9Oc@UZv;AWZzoa2FRpcjy zy?!-K`ml&ChuPE@1y$T}WT(m*%3)bmliT0+gP+ONik1Z(**N|LT(oRI6SHf(_}uBo zK;h1@JEI;8AoWTmj{=VX{kP-NT*i_{-{tx5JZPI8Ci16uLI5kD(5b5BLQvR0Etm9F zvOy%z;c6Q~^_@qzZJBQX3<4Ap6=Uo3Mi?^SMD3)v(3UF-wQ$6Rz1-@_|a? zyaQh0@;=M&dg3iAZhAU zZw7*~0k`2tl3hqADt(s=6?JL{42M|$S9@m~4s{#;{b|2TQfZUQ-L0sEY$FQYDJmxW z9+G4!L-wqRXhS7ov?0UH*s^C0ch>AA~Beb31ykSO$D{wpPG#hc$LNjVn`NPZ08{nNfo z$Z+QdOpau65LsABq*uS_+pS%@N_E=hAD)5=v+T~Tu(#G5?x7}PuZG61oB3kLPhJy_ z)WdCh1=S}KEZCue-#g%o;5wgP%>qv{vJ1m3>^|i2geMmr*;SoBv9TgxwiIZ$Owc81gs{_a{gya?%R9CPEK} z-J6?Jvzcw5& zeZkCg%@>$Fk6qfvBi}BO-@OEu5G!IfA3Rep zlIwNX8zs*Ub&^&Y**LHr`SuclWrIw{%C^!YBr!0rsL-?2K;vCd&^-cWNu|I#7E>w` z*S-odocU!ucwC6Y+uR!rwwe)<0j_9b*)kcW!wyZz)J#i()hXlh8d~wBKuBflhU#r& z+}%^M-a>Cd1VFr_mTzZxBknMT-hbrITvlv;BE0!!MMdsSni6qL=}N0sUTVwj>TSP1 z8#T1`s=dz3=dKkW1Z$UIx`N3#nJTl%GhZ_lgLz%Gt3vUwH$$bnOYQ{j|I<(p%IF_P zv$>-c3eXyna)+DjK%ubNy_ZBTG{p-EXToAO_H7V5i_ zZ`O36JM9yXrFQsZgJuw)sELn-mxvzH%8Fyadv5N-&6{B10W_^ukKv?<_^yQk+D(mYAfQj->%gnB8Kj(z=oSC;}~N%4*( zKh_>Q0mvOOK{gLzD3t^xlfLqUTm;u+?9m@vu-!0z!RP$B6qb;gbsqie{Hq6AAgIR* zp9N#Jvbw5oUf*^FoTmK}y^s%52sq1^+^`>^;2@>Cw%rm`Y=nUb*8cJ6IR!o$ zWC>835*Lj?A5dL3zl&{izB^kyD_!Ds^L^>rW@DZCz|B=tmf5Ii1INB}y9Wq~?C!Be zPPZ^dJ^}b5N-7PVEQ^;ATx8wm2^j%HRQVsNir)aE<1A?2UNi= zPb@#~0IHPH$S@>ryjBl~L@eWnbU5yP9+eaCREmwj0Vhu#qDd$T`h~BryBDJaQq8+T zCqckgc#qcjo6G7@8RM5;5`PVaL;=i+!p$oiJ^Yh(<(h<2mdmGsgnpjzgR*j4a%}n4 zuOB7EDBBSWCKDn<2eHOlHTL-cS8_|tmnpo`Gnyb4f)8jPOKl5bxIKO%<$f~J|Llzi z%285Z^ckv4(QegQ7sZuX`_A?Ac%06;UgcY1}l4~sO65qf_zHk~;@06n+<>id*MEUeeJ zd|$cOxmgXv?TqjZYl1ZFlY<2_R;g6(3ghOB&L~^0THzmU!3e>Wthrt^ear#M(Hxky zRBIOzX)A*BY?+Ydn`+=%54!hxf6VhcDdxj9BWgyKJa_l`eAd_^XT&F!o$}#wB0b$R zDWRMC=~)5H3jCGno#ZehWcZ}Ll-F{#zMjJ)jHR7FDe zUj!ZCBDswOHs$}i%e{9!x^#LbYY$@;;$^I$TOmd-0hz{E=?J~Pv3i`8-<_VN>_TnR z8^_kizNF`t_lv^L`)mt;eXXTaM-orSx|1?rzs6Mv&wU+$ClSJ`+I&HYl?0hI*S^7P zm1|zdI+dBxzqan=)jUNLY3=$&odVf5K4CDsFbNIg{(|3>j@Ol>%tyb+Qi(|rucf-m zH((7sN!{j2jA)6QN#+>;8CH2Bau9FL7Xur3i@{S|8hbP5j{};AFJ$Y(QxDG|Cu_@_ z*nZpc8Px{mNkA%X?eV{)8@e$-=-6<}9+&!O8AAg28>|Z2^`UEoxvG_ykE66z#l8B# zD7`g*vr~neapD@yYnM_iVw976GWP5p-Ab#7^^74%kH46ouKNnv_cyC&Hui_O8Z{}i zfBdp1(*1$#rg-@|T-LK|Ps%=}6w;^N1T4R+R&Lc2gf=dBMRQJlyMUjnY)YX2#=3hs zQ3+S96U~qO(5p0k8rwcXsOD7 zyk?nF3VD~_dDVh#7?ji*jB}EgYa4i2xjYX$zj(74=9~{0pfpDIM%#IL*9R7BoVY6> zl%^BiQZaCRUXjeL+Ry(lc$`&4@3(xi9!#^07;nN{|11Z*a73Es}WgU<@LFDCP?}cpp zIq2Z$@fv%})*e!{4P;B(i$d=jsCzq3Ix+E>KQJ&}&h?%2dxF&tnkH)uCZRSgDw{5k z=?8C``z}IE2>%_?FAnLwpJqZB|8n3aWKuSGw-tmBlm@+rh5AbhplS-mN-~DrG~^HN z%*~l{VjE926c%+YkN&qOgQ6Dy@*}LHX-$nNvT*xrm*&BmddCGRdTTW8q|t5)bFCfm zP|GK_^W?fKvY*JeO$?#{j;5E4OZ~=!`QsYAkra3$|%YGQmFJ5rK&!@Hb!7H|*6WlGB{W4Oy*$X|31;GBxHxD*4^7CiGCst-8 zRF6OvfJQnH-6Bsw_8(^JHTF&_lKGyj@kF22Wtg{Zoyl=&_&h|OJypRQCd#?U~*=LiX0#RkfarT*qTmrSd zk$Bed)D6KkC!pE|Jc<+W^(^t08OaOyMb`|l20Xw}!ucN#jjc(l{zm|hDx~^Bn-G6f zADe92PFf>e2@&sqZ&~A#M<}OKOS8Wp|g_TLd%P`&@~94Zdr?-CA0Ed#P=MAVE1EjY~6 zZ*V+Y(#ExWZS*F-?V3{dKWh27iCe23m#SU{JMlvHGao$@PLPitydzBMSrx~;p~V_I zCjQq$Kp67L2c+g}9cr-@=}mySMVd=Dd?j|kE5hHKl7sCar%tM&Fi|}ODo-tNM|9H6 z?P0VqV^H^C#jPAG<6ivjLjOi%6PP2zjQ77%fQuk&ptB*?;{9`~_YJB6v_YhYXpVwBuk5!>cu!GNI5VPNjVDNNV+(S$Udt^u(!_MximYG--Gc3VQiMB4k*H z{U8yK(v2kN__T4DBca?_M#iePwO*?%=M{(FDy8!`|x<&={mMUvfhyq?d{)!m_C3pV77`GPS7Ktqs>C@$CMW7D4-mX-wBf){UD!G8j3F1t*)Vb`(Yz&xw37coT7 zvGkbh)_Q3`B}5wS1h#lK2_SJO*9@`vW=D-Z$GEYp?ccs;Fk!3J|1NF$+~#jRHyCNZfF2E}%s#Kiz;-8#Ra@ZLMr7nOn$C zVuXr5!lGboE4JYk+;Th766rO zR?KlCeGg|{=q+fupnb)o17Dt&pA^fE~ZQwcJS z2=op;ekYwLmH!l4K40dV7#qZ@c>3Az5m= zhJFs|hul{noOZzFX3@EIEgZIf6{bP0O9hxW!@Sp; z9n*$eZ!9SBM$Yf-2l1X3Vb#@GEQ2c64k%Xwcal=5kN2Gy#bAuk6cfUn;H$Vp?wrUE z4X1_h*ov2By=pJ^n|(CUZ+p)7WvR4tFc(x7%jH?12uB%QO98dQroa(yl0PrEY-Czq z&Z1JEKPy-d>F*JdzEZfS%NU<)-NF(eWzV$x`yC7?UBtGRQ`?A~8uv8FM9iMJZ-FeyN%VLjE5ZO>Cy zGiu=B*&;3HIP0yp*Y(s~V6)KG-RAbE`WPTSy3Jqx_Fn*|N9KkfW&)gI3(PM+U5l~1*c~vmRpUy_%dSNjbslf0GUDLg3kkBpV8&GM zw?A@nGET}m;aa~Ea{2(uy0Zb;LXgY4b6bTd zQs5Wijd;W!>)%0KHH3kV-KB(2+v(rP`P}aiFNf$jE^G@T8!1P%6lXT|y;CS)On*k( z?u6NtZuNAHNKYxK9~Nacr2{WqffxqJv^H%)(yg0Ai=h#ELzP-12rB?IRb=J>A0eSf z+`LT4Gg4Z}|2#|sCHnh>W6C+U79f%Momy1>8WVHHAAmzL;5^$jo2tjZ18h@JBJY6Y z>p|i*;+;?D0dAYsaal%_lXk7W zvn~UsfEhv&c5Jz`)Eysf{;RYM4e#niGQgFKbo`LyD96v8d6d?PZzUg8CVI(Ee2(5} znG~+{%$_twpE~JWM|iYaz?%w8vaPBU0F$OpE-NQGrCTOF6x~Lum{=&pxj8>l?(ux? zf94js;=!{rKlU>BAQ`)37Z+ZDeMi{RAsFU(@I)YF_Ioo<>45cm=}8q==m#9YFnLUh z+WDxJVrcu8h5$26I{u#rKSH+#n5@Cr1pqF+zvB#cWT>$x&ip-~_CihDD#70ZAa@e% zfIv!tsR@`soU*--8AA46ESK5aw9jJAEII!2K_u;fsRH%w;Xf@AHv>BTU87qK0rU;R zzMb)nE0Iivd05R}nk?FZt1BgkY_CU#JJ#8Hd8FH3PcI2MLph59R|C3BOr~xfYMXgb zd^>jl-Kf6RR||`5QQ*7YxnIvHID3F3zN(n1(IfODiBIKilqdKf|SW^AD!D3UZk@@4IPLChLMet;ez}I*0ZB-rM66)Tk$06b^d8xpx0==?Eu5W zL`nAor8NrBnlO794f?z&h(80{Etqw_NDHw&L1G=|n`#I9bDV?F-klC!>y51a^Bmuj z+7%j}ak-;4k6+(AN#DQtUcpibHisBq%(>eiHX8CH9loc&Z&o4gOI_ox-D8Vqh;J+=0};r`BQ!taCxiri(Y4 zICIUe&nMiO-#c=bTfgQ_K0#ok8uC}7@*R-M`m3VApejo9Z>II680o2`;7h%(Mr2qx zJhpE)lX!=CUeNw})q+<=z9U1n-2+G{2*cE*Bs~S?KdUE9D7S0ocIip4`gvw%TW=0M zq;$P}qT`2t?mEn$)7!7dW&+b8%yK^A=-S7H=%wQh3d&8qHClTk7zbuHkupveFex0e zm0uN6+yLK?2nTJ;e?VPQpY{Djuu+Ns_y_+oSJ$UP$(dOd&T%lU38R%4A{q&+KXeLf z`l{rpV~LjqBJ#UVG!65=%2OZHhDZnMu9G(EZiuuFuABcwlWKag>t zC*$~3aq8Nq5#Ko#guxRO=|h=cP4AqD*Vp4?LXn<9=%+@sxk=bjbqxypXX(3N zG!1$bV^+8iqAA`k!y;k6KNKeBer&M<1-;-dIx_>!W&MT9bB1-pt4{h_Y?_m>H@liQ zumG~LU?B&1NwOoX047{;v!tuK;7FddoC!zPS>l6un#cDmrO1Fq%F8Y!GG8duVy_&# z3`AK9_}|IWW?rTo+S6gVm9SO2(a|3bz0n|}ykFeU_iWXvDepdeXZ^`Z6*vrtZ_R6= z@tTqkC^^2vX+<3ks896G-rBQg1l9#H&S0{fPpu$3g*Ta)OAOnaCHuW$bp)ho@D6rN zElUCcsw>Ec${b8)ac~r~J5RLWSzDxejbCr~)& z4RRKHlUI;!30#5xlR9(0FjCl9%5~!SG8E0FqzrNo4_|pQpCnf=hi~Bl_*a+HGKbUH zK=(RKsm!YQyhu_OgbHaP#ldth1_ln8TZWix#t=1P=2~x> z|32WCX81t`WDR*D1b$@U?GW11qQUJJOmv^bAG-&d1vZyahd;U1(&0deo+v(|$0C>xt_%>WTaGzyzjXQ6{mb&f_1z?qATe zvBsdi-P@P7O!w_bblI2M!p& zTAuBYAZ|`j16MFeIxR8V?8ktbG}$5rpb@ztP7A$bDn&WQ%G!t@$Y}<#xcL2ir-Jg@2BGbW(NEZ7~^*Z z_4~lo->1X=K3Vs_1>*k?!{qm=#Q)LDFqr?>Bbakm`TTNan8L!2&FG7`eDUgq^z+vr F{4Wcaw|oEq literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_13.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_13.png new file mode 100644 index 0000000000000000000000000000000000000000..85d4fca38e04b239ae9217da90917b563bd5131d GIT binary patch literal 31763 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_2.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d12e6e3f802fa042dcd66713b91092bb54d5bb09 GIT binary patch literal 31313 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_3.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4e2326678c652b578dc99b51ef84d88c7ff759c5 GIT binary patch literal 31696 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 Oj0+mNXLHV2-Tfa`ll7ti literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_5.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_5.png new file mode 100644 index 0000000000000000000000000000000000000000..b07eb0e10d996f406f454dabb8234d4ad33aa6cb GIT binary patch literal 31455 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 Nmim5vc*`HJ~D(AViudy|)0Ng&t5) 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_7.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_7.png new file mode 100644 index 0000000000000000000000000000000000000000..d40e9219cd0074a1aa7ea2ecd6a38b9c8e3e1270 GIT binary patch literal 30765 zcmeFZXH=72)GdkyQ4r8qL8Xd_N*AR_R}m1AUP23?^xk{30SW@rmEKzjp@kNTjV_%K zAQVAq386?rNhoLME#LWZ&d)o>{c$g2Fh&N1=gG78+H1`<*POi5)>LJrXQQW~p&TT7|PRV&4v zJ70R+^g|Sw%#j4zX=&4sZlTipS<0? zy5Eb-uYY_q@%-~KLj=N3{L6)hU&yScsR$oYA&(YS(CL15KI#n9P5OrU z*J_TTb>@fsqK?5hO9o0ESw>EBHP&%NV%L?0*Mtwx>HXd@{a`%%naqbkT+2fM=hY!)RlIHb=JLv2V zjgdrDJ#Hx-Qrev6=JT@7w#Mip`(I@|Jh^NMAM+x~j6*}ww1LijcS5}Xd~8ESvc6?v z8gf(B8cU@x8@%mX+@>(i#pBL#l|EA|4J?^GXT!>Zi#Je55=S>}2}dbeA;e-2Oi7S; zId*+s>DxtawxalMPGZahUgQl*ZEGFbiqQH2J3K=Dw1X#)m){tN8@AjDiESN(S=3

\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/faker_function/index.html b/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/faker_function/index.html new file mode 100644 index 00000000..28c2738f --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/faker_function/index.html @@ -0,0 +1,3703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Faker function - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Faker functions

+

Greenmask uses go-faker/faker under the hood for generating of synthetic data.

+

Faker functions: Address

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerRealAddressGenerates a random real-world address that includes: city, state, postal code, latitude, and longitudefakerRealAddress() (res ReadAddress)
fakerLatitudeGenerates random fake latitudefakerLatitude() (res float64)
fakerLongitudeGenerates random fake longitudefakerLongitude() (res float64)
+

Faker functions: Datetime

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerUnixTimeGenerates random Unix time in secondsfakerLongitude() (res int64)
fakerDateGenerates random date with the pattern of YYYY-MM-DDfakerDate() (res string)
fakerTimeStringGenerates random timefakerTimeString() (res string)
fakerMonthNameGenerates a random monthfakerMonthName() (res string)
fakerYearStringGenerates a random yearfakerYearString() (res string)
fakerDayOfWeekGenerates a random day of a weekfakerDayOfWeek() (res string)
fakerDayOfMonthGenerates a random day of a monthfakerDayOfMonth() (res string)
fakerTimestampGenerates a random timestamp with the pattern of YYYY-MM-DD HH:MM:SSfakerTimestamp() (res string)
fakerCenturyGenerates a random centuryfakerCentury() (res string)
fakerTimezoneGenerates a random timezone namefakerTimezone() (res string)
fakerTimeperiodGenerates a random time period with the patter of either AM or PMfakerTimeperiod() (res string)
+

Faker functions: Internet

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerEmailGenerates a random emailfakerEmail() (res string)
fakerMacAddressGenerates a random MAC addressfakerMacAddress() (res string)
fakerDomainNameGenerates a random domain namefakerDomainName() (res string)
fakerURLGenerates a random URL with the pattern of https://www.domainname.some/somepathfakerURL() (res string)
fakerUsernameGenerates a random usernamefakerUsername() (res string)
fakerIPv4Generates a random IPv4 addressfakerIPv4() (res string)
fakerIPv6Generates a random IPv6 addressfakerIPv6() (res string)
fakerPasswordGenerates a random passwordfakerPassword() (res string)
+

Faker functions: words and sentences

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerWordGenerates a random wordfakerWord() (res string)
fakerSentenceGenerates a random sentencefakerSentence() (res string)
fakerParagraphGenerates a random sequence of sentences as a paragraphfakerParagraph() (res string)
+

Faker functions: Payment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerCCTypeGenerates a random credit card type, e.g. VISA, MasterCard, etc.fakerCCType() (res string)
fakerCCNumberGenerates a random credit card numberfakerCCNumber() (res string)
fakerCurrencyGenerates a random currency namefakerCurrency() (res string)
fakerAmountWithCurrencyGenerates random amount preceded with random currencyfakerAmountWithCurrency() (res string)
+

Faker functions: Person

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerTitleMaleGenerates a random male title from the predefined listfakerTitleMale() (res string)
fakerTitleFemaleGenerates a random female title from the predefined listfakerTitleFemale() (res string)
fakerFirstNameGenerates a random first namefakerFirstName() (res string)
fakerFirstNameMaleGenerates a random male first namefakerFirstNameMale() (res string)
fakerFirstNameFemaleGenerates a random female first namefakerFirstNameFemale() (res string)
fakerFirstLastNameGenerates a random last namefakerFirstLastName() (res string)
fakerNameGenerates a random full name preceded with a titlefakerName() (res string)
+

Faker functions: Phone

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerPhoneNumberGenerates a random phone numberfakerPhoneNumber() (res string)
fakerTollFreePhoneNumberGenerates a random phone number with the pattern of (123) 456-7890fakerTollFreePhoneNumber() (res string)
fakerE164PhoneNumberGenerates a random phone number with the pattern of +12345678900fakerE164PhoneNumber() (res string)
+

Faker functions: UUID

+ + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
fakerUUIDHyphenatedGenerates a random unique user ID separated by hyphensfakerUUID() (res string)
fakerUUIDDigitGenerates a random unique user ID in the HEX formatfakerUUIDDigit() (res string)
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/index.html b/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/index.html new file mode 100644 index 00000000..d48d1cdf --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/index.html @@ -0,0 +1,3228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Template custom functions - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Template custom functions

+

Within Greenmask, custom functions play a crucial role, providing a wide array of options for implementing diverse +logic. Under the hood, the custom functions are based on +the sprig Go's template functions. Greenmask enhances this capability by +introducing additional functions and transformation functions. These extensions mirror the logic found in +the standard transformers but offer you the flexibility to implement intricate +and comprehensive logic tailored to your specific needs.

+

Currently, you can use template custom functions for the advanced transformers:

+ +

and for the Transformation condition feature as well.

+

Custom functions are arbitrarily divided into 2 groups:

+
    +
  • Core functions — custom functions that vary in purpose and include PostgreSQL driver, JSON + output, testing, and transformation functions.
  • +
  • Faker functions — custom function of a faker type which generate synthetic data.
  • +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/index.html b/v0.2.5/built_in_transformers/advanced_transformers/index.html new file mode 100644 index 00000000..dfff2378 --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/index.html @@ -0,0 +1,3215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Advanced transformers - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Advanced transformers

+

Advanced transformers are modifiable anonymization methods that users can adjust based on their needs by using custom functions.

+

Below you can find an index of all advanced transformers currently available in Greenmask.

+
    +
  1. Json — changes a JSON content by using delete and set operations.
  2. +
  3. Template — executes a Go template of your choice and applies the result to a specified column.
  4. +
  5. TemplateRecord — modifies records by using a Go template of your choice and applies the changes via the PostgreSQL +driver.
  6. +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/json/index.html b/v0.2.5/built_in_transformers/advanced_transformers/json/index.html new file mode 100644 index 00000000..37b242ff --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/json/index.html @@ -0,0 +1,3506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Json - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Json

+ +

Change a JSON document using delete and set operations. NULL values are kept.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NamePropertiesDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesjson, jsonb
operationsA list of operations that contains editing delete and setYes-
operationSpecifies the operation type: set or deleteYes-
pathThe path to an object to be modified. See path syntax below.Yes-
valueA value to be assigned to the provided pathNo-
value_templateA Golang template to be assigned to the provided path. See the list of template functions below.No-
error_not_existThrows an error if the key does not exist by the provided path. Disabled by default.falseNo-
+

Description

+

The Json transformer applies a sequence of changing operations (set and/or delete) to a JSON document. The value can be static or dynamic. For the set operation type, a static value is provided in the value parameter, while a dynamic value is provided in the value_template parameter, taking the data received after template execution as a result. Both the value and value_template parameters are mandatory for the set operation.

+

Path syntax

+

The Json transformer is based on tidwall/sjson and supports the same path syntax. See their documentation for syntax rules.

+

Template functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
.GetPathReturns the current path to which the operation is being applied.GetPath() (path string)
.GetOriginalValueReturns the original value to which the current operation path is pointing. If the value at the specified path does not exist, it returns nil..GetOriginalValue() (value any)
.OriginalValueExistsReturns a boolean value indicating whether the specified path exists or not..OriginalValueExists() (exists bool)
.GetColumnValueReturns an encoded into Golang type value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map..GetColumnValue(name string) (value any, err error)
.GetRawColumnValueReturns a raw value for a specified column as a string or throws an error.GetRawColumnValue(name string) (value string, err error)
.EncodeValueByColumnEncodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByColumn(name string, value any) (res any, err error)
.DecodeValueByColumnDecodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(name string, value any) (res any, err error)
.EncodeValueByTypeEncodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByType(name string, value any) (res any, err error)
.DecodeValueByTypeDecodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByType(name string, value any) (res any, err error)
+

Example: Changing JSON document

+
Json transformer example
- schema: "bookings"
+  name: "aircrafts_data"
+  transformers:
+    - name: "Json"
+      params:
+        column: "model"
+        operations:
+          - operation: "set"
+            path: "en"
+            value: "Boeing 777-300-2023"
+          - operation: "set"
+            path: "seats"
+            error_not_exist: True
+            value_template: "{{ randomInt 100 400 }}"
+          - operation: "set"
+            path: "details.preperties.1"
+            value: {"name": "somename", "description": null}
+          - operation: "delete"
+            path: "values.:2"
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/template/index.html b/v0.2.5/built_in_transformers/advanced_transformers/template/index.html new file mode 100644 index 00000000..cdfaef2c --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/template/index.html @@ -0,0 +1,3561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Template - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Template

+ +

Execute a Go template and automatically apply the result to a specified column.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesany
templateA Go template stringYes-
validateValidates the template result using the PostgreSQL driver decoding procedure. Throws an error if a custom type does not have an encode-decoder implementation.falseNo-
+

Description

+

The Template transformer executes Go templates and automatically applies the template result to a specified column. Go template system is designed to be extensible, enabling developers to access data objects and incorporate custom functions programmatically. For more information, you can refer to the official Go Template documentation.

+

With the Template transformer, you can implement complicated transformation logic using basic or custom template functions. Below you can get familiar with the basic template functions for the Template transformer. For more information about available custom template functions, see Custom functions.

+
+

Warning

+

Pay attention to the whitespaces in templates. Use dash-wrapped - brackets {{- -}} for +trimming the spaces. For example, the value "2023-12-19" is not the same as " 2023-12-19 " and it may throw an error when restoring.

+
+

Template functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
.GetColumnTypeReturns a string with the column type..GetColumnType(name string) (typeName string, err error)
.GetValueReturns the column value for column assigned in the column parameter, encoded by the PostgreSQL driver into any type along with any associated error. Supported types include int, float, time, string, bool, as well as slice or map of any type..GetValue() (value any, err error)
.GetRawValueReturns a raw value as a string for column assigned in the column parameter..GetRawColumnValue(name string) (value string, err error)
.GetColumnValueReturns an encoded value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map..GetColumnValue(name string) (value any, err error)
.GetRawColumnValueReturns a raw value for a specified column as a string or throws an error.GetRawColumnValue(name string) (value string, err error)
.EncodeValueEncodes a value of any type into its string representation using the type assigned to the table column specified in the column parameter. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValue(value any) (res any, err error)
.DecodeValueDecodes a value from its raw string representation to a Golang type using the data type assigned to the table column specified in the column parameter. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(value any) (res any, err error)
.EncodeValueByColumnEncodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByColumn(name string, value any) (res any, err error)
.DecodeValueByColumnDecodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(name string, value any) (res any, err error)
.EncodeValueByTypeEncodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByType(name string, value any) (res any, err error)
.DecodeValueByTypeDecodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByType(name string, value any) (res any, err error)
+

Example: Update the firstname column

+

Below you can see the table structure:

+

person-person-schema.png

+

Change rule

+

The goal is to modify the firstname column based on the following conditions:

+
    +
  • If the current value of the firstname column is equal to Terri, replace it with Mary.
  • +
  • For all other cases, generate a random name and append Jr.
  • +
+

Using a template function

+

To generate random names, you can use the fakerFirstName template function, which is designed to create +synthetic names.

+
Template transformer example
- schema: "humanresources"
+  name: "employee"
+  transformation:
+    - name: "Template"
+      params:
+        column: "firstname"
+        template: >
+          {{- if eq .GetValue "Terri" -}}
+            Mary
+          {{- else -}}
+            {{- fakerFirstName -}} Jr
+          {{- end -}}
+
+        validate: true
+
+

Expected result:

+
+
+
+ + + + + + + + + + + + + + + +
column nameoriginal valuetransformed
firstnameTerriMary
+
+
+ + + + + + + + + + + + + + + +
column nameoriginal valuetransformed
firstnameKen JrMike
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/advanced_transformers/template_record/index.html b/v0.2.5/built_in_transformers/advanced_transformers/template_record/index.html new file mode 100644 index 00000000..917bb8ab --- /dev/null +++ b/v0.2.5/built_in_transformers/advanced_transformers/template_record/index.html @@ -0,0 +1,3478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + TemplateRecord - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

TemplateRecord

+ +

Modify records using a Go template and apply changes by using the PostgreSQL driver functions. This transformer provides a way to implement custom transformation logic.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnsA list of columns to be affected by the template. The list of columns will be checked for constraint violations.Noany
templateA Go template stringYes-
validateValidate the template result via PostgreSQL driver decoding procedure. Throws an error if a custom type does not have an encode-decoder implementation.falseNo-
+

Description

+

TemplateRecord uses Go templates to change data. However, while the Template transformer operates with a single column and automatically applies results, the TemplateRecord transformer can make changes to a set of columns in the string, and using driver functions .SetValue or .SetRawValue is mandatory to do that.

+

With the TemplateRecord transformer, you can implement complicated transformation logic using basic or custom template functions. Below you can get familiar with the basic template functions for the TemplateRecord transformer. For more information about available custom template functions, see Custom functions.

+

Template functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
.GetColumnTypeReturns a string with the column type..GetColumnType(name string) (typeName string, err error)
.GetColumnValueReturns an encoded value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map..GetColumnValue(name string) (value any, err error)
.GetRawColumnValueReturns a raw value for a specified column as a string or throws an error.GetRawColumnValue(name string) (value string, err error)
.SetColumnValueSets a new value of a specific data type to the column. The value assigned must be compatible with the PostgreSQL data type of the column. For example, it is allowed to assign an int value to an INTEGER column, but you cannot assign a float value to a timestamptz column.SetColumnValue(name string, v any) (bool, error)
.SetRawColumnValueSets a new raw value for a column, inheriting the column's existing data type, without performing data type validation. This can lead to errors when restoring the dump if the assigned value is not compatible with the column type. To ensure compatibility, consider using the .DecodeValueByColumn function followed by .SetColumnValue, for example, {{ "13" \| .DecodeValueByColumn "items_amount" \| .SetColumnValue "items_amount" }}..SetRawColumnValue(name string, value any) (err error)
.EncodeValueByColumnEncodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByColumn(name string, value any) (res any, err error)
.DecodeValueByColumnDecodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(name string, value any) (res any, err error)
.EncodeValueByTypeEncodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByType(name string, value any) (res any, err error)
.DecodeValueByTypeDecodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByType(name string, value any) (res any, err error)
+

Example: Generate a random created_at and updated_at dates

+

Below you can see the table structure:

+

img.png

+

The goal is to modify the "created_at" and "updated_at" columns based on the following rules:

+
    +
  • Do not change the value if the created_at is Null.
  • +
  • If the created_at is not Null, generate the current time and use it as the minimum threshold for randomly + generating the updated_at value.
  • +
  • Assign all generated values using the .SetColumnValue function.
  • +
+
Template transformer example
- name: "TemplateRecord"
+  params:
+    columns:
+      - "created_at"
+      - "updated_at"
+    template: >
+      {{ $val := .GetColumnValue "created_at" }}
+      {{ if isNotNull $val }}
+          {{ $createdAtValue := now }}
+          {{ $maxUpdatedDate := date_modify "24h" $createdAtValue }}
+          {{ $updatedAtValue := randomDate $createdAtValue $maxUpdatedDate }}
+          {{ .SetColumnValue "created_at" $createdAtValue }}
+          {{ .SetColumnValue "updated_at" $updatedAtValue }}
+      {{ end }}
+    validate: true
+
+

Expected result:

+ + + + + + + + + + + + + + + + + + + + +
column nameoriginal valuetransformed
created_at2021-01-20 07:01:00.513325+002023-12-17 19:37:29.910054Z
updated_at2021-08-09 21:27:00.513325+002023-12-18 10:05:25.828498Z
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/dynamic_parameters/index.html b/v0.2.5/built_in_transformers/dynamic_parameters/index.html new file mode 100644 index 00000000..72a12415 --- /dev/null +++ b/v0.2.5/built_in_transformers/dynamic_parameters/index.html @@ -0,0 +1,3616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dynamic parameters - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Dynamic parameters

+

Description

+

Most transformers in Greenmask have dynamic parameters. This functionality is possible because Greenmask utilizes a +database driver that can encode and decode raw values into their actual type representations.

+

This allows you to retrieve parameter values directly from the records. This capability is particularly beneficial when +you need to resolve functional dependencies between fields or satisfy constraints. Greenmask processes transformations +sequentially. Therefore, when you reference a field that was transformed in a previous step, you will access the +transformed value.

+

Definition

+
dynamic_params:
+  - column: "column_name" # (1)
+    cast_to: "cast_function" # (2)
+    template: "template_function" # (3)
+    default_value: any # (4)
+
+
    +
  1. Name of the column from which the value is retrieved.
  2. +
  3. Function used to cast the column value to the desired type.
  4. +
  5. Default value used if the column's value is NULL.
  6. +
  7. Template used for casting the column value to the desired type.
  8. +
+

Dynamic parameter options

+
    +
  • +

    column - Specifies the column name. The value from each record in this column will be passed to the transformer as a + parameter.

    +
  • +
  • +

    cast_to - Indicates the function used to cast the column value to the desired type. Before being passed to the + transformer, the value is cast to this type. For more details, see Cast functions.

    +
  • +
  • +

    template - Defines the template used for casting the column value to the desired type. You can create your own + template and incorporate predefined functions and operators to implement the casting logic or other logic required for + passing the value to the transformer. For more details, + see Template functions.

    +
  • +
  • +

    default_value - Determines the default value used if the column's value is NULL. This value is represented in raw + format appropriate to the type specified in the column parameter.

    +
  • +
+

Cast functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
namedescriptioninput typeoutput type
UnixNanoToDateCast int value as Unix Timestamp in Nano Seconds to date typeint2, int4, int8, numeric, float4, float8date
UnixMicroToDateCast int value as Unix Timestamp in Micro Seconds to date typeint2, int4, int8, numeric, float4, float8date
UnixMilliToDateCast int value as Unix Timestamp in Milli Seconds to date typeint2, int4, int8, numeric, float4, float8date
UnixSecToDateCast int value as Unix Timestamp in Seconds to date typeint2, int4, int8, numeric, float4, float8date
UnixNanoToTimestampCast int value as Unix Timestamp in Nano Seconds to timestamp typeint2, int4, int8, numeric, float4, float8timestamp
UnixMicroToTimestampCast int value as Unix Timestamp in Micro Seconds to timestamp typeint2, int4, int8, numeric, float4, float8timestamp
UnixMilliToTimestampCast int value as Unix Timestamp in Milli Seconds to timestamp typeint2, int4, int8, numeric, float4, float8timestamp
UnixSecToTimestampCast int value as Unix Timestamp in Seconds to timestamp typeint2, int4, int8, numeric, float4, float8timestamp
UnixNanoToTimestampTzCast int value as Unix Timestamp in Nano Seconds to timestamptz typeint2, int4, int8, numeric, float4, float8timestamptz
UnixMicroToTimestampTzCast int value as Unix Timestamp in Micro Seconds to timestamptz typeint2, int4, int8, numeric, float4, float8timestamptz
UnixMilliToTimestampTzCast int value as Unix Timestamp in Milli Seconds to timestamptz typeint2, int4, int8, numeric, float4, float8timestamptz
UnixSecToTimestampTzCast int value as Unix Timestamp in Seconds to timestamptz typeint2, int4, int8, numeric, float4, float8timestamptz
DateToUnixNanoCast date value to int value as a Unix Timestamp in Nano Secondsdateint2, int4, int8, numeric, float4, float8
DateToUnixMicroCast date value to int value as a Unix Timestamp in Micro Secondsdateint2, int4, int8, numeric, float4, float8
DateToUnixMilliCast date value to int value as a Unix Timestamp in Milli Secondsdateint2, int4, int8, numeric, float4, float8
DateToUnixSecCast date value to int value as a Unix Timestamp in Secondsdateint2, int4, int8, numeric, float4, float8
TimestampToUnixNanoCast timestamp value to int value as a Unix Timestamp in Nano Secondstimestampint2, int4, int8, numeric, float4, float8
TimestampToUnixMicroCast timestamp value to int value as a Unix Timestamp in Micro Secondstimestampint2, int4, int8, numeric, float4, float8
TimestampToUnixMilliCast timestamp value to int value as a Unix Timestamp in Milli Secondstimestampint2, int4, int8, numeric, float4, float8
TimestampToUnixSecCast timestamp value to int value as a Unix Timestamp in Secondstimestampint2, int4, int8, numeric, float4, float8
TimestampTzToUnixNanoCast timestamptz value to int value as a Unix Timestamp in Nano Secondstimestamptzint2, int4, int8, numeric, float4, float8
TimestampTzToUnixMicroCast timestamptz value to int value as a Unix Timestamp in Micro Secondstimestamptzint2, int4, int8, numeric, float4, float8
TimestampTzToUnixMilliCast timestamptz value to int value as a Unix Timestamp in Milli Secondstimestamptzint2, int4, int8, numeric, float4, float8
TimestampTzToUnixSecCast timestamptz value to int value as a Unix Timestamp in Secondstimestamptzint2, int4, int8, numeric, float4, float8
FloatToIntCast float value to one of integer type. The fractional part will be discardednumeric, float4, float8int2, int4, int8, numeric
IntToFloatCast int value to one of integer typeint2, int4, int8, numericnumeric, float4, float8
IntToBoolCast int value to boolean. The value with 0 is false, 1 is trueint2, int4, int8, numeric, float4, float8bool
BoolToIntCast boolean value to int. The value false is 0, true is 1boolint2, int4, int8, numeric, float4, float8
+

Example: Functional dependency resolution between columns

+

There is simplified schema of the table humanresources.employee from the playground:

+
       Column      |            Type                      
+------------------+-----------------------------
+ businessentityid | integer                      
+ jobtitle         | character varying(50)        
+ birthdate        | date                        
+ hiredate         | date                         
+Check constraints:
+    CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))
+
+

As you can see, there is a functional dependency between the birthdate and hiredate columns. Logically, +the hiredate should be later than the birthdate. Additionally, the birthdate should range from 1930-01-01 +to 18 years prior to the current date.

+

Imagine that you need to generate random birthdate and hiredate columns. To ensure these dates satisfy the +constraints, you can use dynamic parameters in the RandomDate transformer:

+
- schema: "humanresources"
+  name: "employee"
+  transformers:
+
+    - name: "RandomDate" # (1)
+      params:
+        column: "birthdate"
+        min: '{{ now | tsModify "-30 years" | .EncodeValue }}' # (2)
+        max: '{{ now | tsModify "-18 years" | .EncodeValue }}' # (3)
+
+    - name: "RandomDate" # (4)
+      params:
+        column: "hiredate"
+        max: "{{ now | .EncodeValue }}" # (5)
+      dynamic_params:
+        min:
+          column: "birthdate" # (6)
+          template: '{{ .GetValue | tsModify "18 years" | .EncodeValue }}' # (7)
+
+
    +
  1. Firstly we generate the RadnomDate for birthdate column. The result of the transformation will used as the minimum + value for the next transformation for hiredate column.
  2. +
  3. Apply the template for static parameter. It calculates the now date and subtracts 30 years from it. The result + is 1994. The function tsModify return not a raw data, but time.Time object. For getting the raw value suitable for + birthdate type we need to pass this value to .EncodeValue function. This value is used as the minimum value for + the birthdate column.
  4. +
  5. The same as the previous step, but we subtract 18 years from the now date. The result is 2002.
  6. +
  7. Generate the RadnomDate for hiredate column based on the value from the birthdate.
  8. +
  9. Set the maximum value for the hiredate column. The value is the current date.
  10. +
  11. The min parameter is set to the value of the birthdate column from the previous step.
  12. +
  13. The template gets the value of the randomly generated birthdate value and adds 18 years to it.
  14. +
+

Below is the result of the transformation:

+

img.png

+

From the result, you can see that all functional dependencies and constraints are satisfied.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/index.html b/v0.2.5/built_in_transformers/index.html new file mode 100644 index 00000000..3a48eba0 --- /dev/null +++ b/v0.2.5/built_in_transformers/index.html @@ -0,0 +1,3222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + About transformers - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

About transformers

+

Transformers in Greenmask are methods which are applied to anonymize sensitive data. All Greenmask transformers are +split into the following groups:

+
    +
  • Dynamic parameters — transformers that require an input of parameters and generate + random data based on them.
  • +
  • Transformation engines — the type of generator used in transformers. Hash (deterministic) + and random (randomization)
  • +
  • Parameters templating — generate static parameters values from templates.
  • +
  • Transformation conditions — conditions that can be applied to transformers. If the + condition is not met, the transformer will not be applied.
  • +
  • Transformation Inheritance — transformation inheritance for partitioned tables and + tables with foreign keys. Define once and apply to all.
  • +
  • Standard transformers — transformers that require only an input of parameters.
  • +
  • Advanced transformers — transformers that can be modified according to user's needs + with the help of custom functions.
  • +
  • Custom transformers — coming soon...
  • +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/parameters_templating/index.html b/v0.2.5/built_in_transformers/parameters_templating/index.html new file mode 100644 index 00000000..9e07dc96 --- /dev/null +++ b/v0.2.5/built_in_transformers/parameters_templating/index.html @@ -0,0 +1,3417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Parameters templating - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Parameters templating

+

Description

+

It is allowed to generate parameter values from templates. It is useful when you don't want to write values manually, +but instead want to generate and initialize them dynamically.

+

Here you can find the list of template functions that can be used in the +template Custom functions.

+

You can encode and decode objects using the driver function bellow.

+

Template functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionDescriptionSignature
.GetColumnTypeReturns a string with the column type..GetColumnType(name string) (typeName string, err error)
.EncodeValueByColumnEncodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByColumn(name string, value any) (res any, err error)
.DecodeValueByColumnDecodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(name string, value any) (res any, err error)
.EncodeValueByTypeEncodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValueByType(name string, value any) (res any, err error)
.DecodeValueByTypeDecodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByType(name string, value any) (res any, err error)
.DecodeValueDecodes a value from its raw string representation to a Golang type using the data type assigned to the table column specified in the column parameter. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..DecodeValueByColumn(value any) (res any, err error)
.EncodeValueEncodes a value of any type into its string representation using the type assigned to the table column specified in the column parameter. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible..EncodeValue(value any) (res any, err error)
+
+

Warning

+

If column parameter is not linked to column parameter, then functions .DecodeValue and .EncodeValue will return +an error. You can use .DecodeValueByType and .EncodeValueByType or .DecodeValueByColumn and +.EncodeValueByColumn instead.

+
+

Example

+

In the example below, the min and max values for the birth_date column are generated dynamically using the now +template function. The value returns the current date and time. The tsModify function is then used to subtract 30 +(and 18) years. But because the parameter type is mapped on column parameter type, the EncodeValue function is used +to encode the value into the column type.

+

For example, if we have the now date as 2021-01-01, the dynamically calculated min value will be 1994-01-01 and +the max value will be 2006-01-01.

+
CREATE TABLE account
+(
+    id         SERIAL PRIMARY KEY,
+    gender     VARCHAR(1) NOT NULL,
+    email      TEXT       NOT NULL NOT NULL UNIQUE,
+    first_name TEXT       NOT NULL,
+    last_name  TEXT       NOT NULL,
+    birth_date DATE,
+    created_at TIMESTAMP  NOT NULL DEFAULT NOW()
+);
+
+INSERT INTO account (first_name, gender, last_name, birth_date, email)
+VALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');
+
+
- schema: "public"
+  name: "account"
+  transformers:
+    - name: "RandomDate"
+      params:
+        column: "birth_date"
+        min: '{{ now | tsModify "-30 years" | .EncodeValue }}' # 1994
+        max: '{{ now | tsModify "-18 years" | .EncodeValue }}' # 2006
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
birth_date1980-01-011995-09-06
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/cmd/index.html b/v0.2.5/built_in_transformers/standard_transformers/cmd/index.html new file mode 100644 index 00000000..d8e36334 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/cmd/index.html @@ -0,0 +1,3676 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cmd - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Cmd

+ +

Transform data via external program using stdin and stdout interaction.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnsA list of column names to be affected. If empty, the entire tuple is used. Read about the structure further.YesAny
executableThe path to the executable parameter fileYes-
argsA list of parameters for the executableNo-
driverThe row driver with parameters that is used for interacting with cmd. See details below.{"name": "csv"}No-
validatePerforms a decoding operation using the PostgreSQL driver for data received from the command to ensure the data format is correctfalseNo-
timeoutTimeout for sending and receiving data from the external command2sNo-
expected_exit_codeThe expected exit code on SIGTERM signal. If the exit code is unexpected, the transformation exits with an error.0No-
skip_on_behaviourSkips transformation call if one of the provided columns has a null value (any) or each of the provided columns has null values (all). This option works together with the skip_on_null_input parameter on columns. Possible values: all, any.allNo-
+
+

Warning

+

The parameter validate_output=true may cause an error if the type does not have a PostgreSQL driver decoder +implementation. Most of the types, such as int, float, text, varchar, date, timestamp, etc., have +encoders and decoders, as well as inherited types like domain types based on them.

+
+

Description

+

The Cmd transformer allows you to send original data to an external program via stdin and receive transformed data +from stdout. It supports various interaction formats such as json, csv, or plain text for one-column +transformations. The interaction is performed line by line, so at the end of each sent data, a new line +symbol \n must be included.

+

Types of interaction modes

+

text

+

Textual driver that is used only for one column transformation, thus you cannot provide here more than one column. +The value encodes into string laterally. For example, 2023-01-03 01:00:00.0+03.

+

json

+

JSON line driver. It has two formats that can be passed through driver.json_data_format: [text|bytes]. Use +the bytes format for binary datatypes. Use the text format for non-binary datatypes and for those that can be +represented as string literals. The default json_data_format is text.

+
+
+
+
{
+  "column1": {
+    "d": "some_value1",
+    "n": false,
+  },
+  "column2": {
+    "d": "some_value2",
+    "n": false,
+  }
+}
+
+
+
+
{
+  "column1": {
+    "d": "aGVsbG8gd29ybHNeODcxMjE5MCUlJSUlJQ==",
+    "n": false,
+  },
+  "column2": {
+    "d": "aGVsbG8gd29ybHNeODcxMjE5MCUlJSUlJQ==",
+    "n": false,
+  }
+}
+
+
+
+
+

where:

+
    +
  • Each line is a JSON line with a map of attribute numbers to their values
  • +
  • d — the raw data represented as base64 encoding for the bytes format or Unicode text for the text format. The base64 + encoding is needed because data can be binary.
  • +
  • n — indicates if NULL is present
  • +
+

csv

+

CSV driver (comma-separated). The number of attributes is the same as the number of table columns, but the +columns that were not mentioned in the columns list are empty. The NULL value is represented as \N. Each attribute +is escaped by a quote ("). For example, if the transformed table has attributes id, title, and created_at, and +only id and created_at require transformation, then the CSV line will look as follows:

+
csv line example
"123","","2023-01-03 01:00:00.0+03"
+
+

Column object attributes

+
    +
  • name — the name of the column. This value is required. Depending on the attributes that follows further, this column + may be used just as a value and is not affected in any way.
  • +
  • not_affected — indicates whether the column is affected in the transformation. This attribute is required for the + validation procedure when Greenmask is called with greenmask dump --validate. Setting not_affected=true can be + helpful when the command transformer transforms data depending on the value of another column. For example, if you + want to generate an updated_at column value depending on the created_at column value, you can set created_at + to not_affected=true. The default value is false.
  • +
  • skip_original_data — indicates whether the original data is required for the transformer. This attribute can be + helpful for decreasing the interaction time. One use case is when the command works as a generator and returns the + value without relying on the original data. The default value is false.
  • +
  • skip_on_null_input — specifies whether to skip transformation when the original value is null. This attribute + works in conjunction with the skip_on_behaviour parameter. For example, if you have two affected columns + with skip_on_null_input=true and one column is null, then, if skip_on_behaviour=any, the transformation will be + skipped, or, if skip_on_behaviour=and, the transformation will be performed. The default is false.
  • +
+

Example: Apply transformation performed by external command in TEXT format

+

In the following example, jobtitle columns is transformed via external command transformer.

+
External transformer in python example
#!/usr/bin/env python3
+import signal
+import sys
+
+signal.signal(signal.SIGTERM, lambda sig, frame: exit(0))
+
+
+# If we want to implement a simple generator, we need read the line from stdin and write any result to stdout
+for _ in sys.stdin:
+    # Writing the result to stdout with new line and flushing the buffer
+    sys.stdout.write("New Job Title")
+    sys.stdout.write("\n")
+    sys.stdout.flush()
+
+
Cmd transformer config example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "Cmd"
+      params:
+        driver:
+          name: "text"
+        expected_exit_code: -1
+        skip_on_null_input: true
+        validate: true
+        skip_on_behaviour: "any"
+        timeout: 60s
+        executable: "/var/lib/playground/test.py"
+        columns:
+          - name: "jobtitle"
+            skip_original_data: true
+            skip_on_null_input: true 
+
+

Example: Apply transformation performed by external command in JSON format

+

In the following example, jobtitle and loginid columns are transformed via external command +transformer.

+
External transformer in python example
#!/usr/bin/env python3
+import json
+import signal
+import sys
+
+signal.signal(signal.SIGTERM, lambda sig, frame: exit(0))
+
+for line in sys.stdin:
+    res = json.loads(line)
+    # Setting dummy values
+    res["jobtitle"] = {"d": "New Job Title", "n": False}
+    res["loginid"]["d"] = "123"
+
+    # Writing the result to stdout with new line and flushing the buffer
+    sys.stdout.write(json.dumps(res))
+    sys.stdout.write("\n")
+    sys.stdout.flush()
+
+
Cmd transformer config example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "Cmd"
+      params:
+        driver:
+          name: "json" # (1)
+          json_data_format: "text" # (4)
+        expected_exit_code: -1
+        skip_on_null_input: true
+        validate: true
+        skip_on_behaviour: "any" # (2)
+        timeout: 60s
+        executable: "/var/lib/playground/test.py"
+        columns:
+          - name: "jobtitle"
+            skip_original_data: true
+            skip_on_null_input: true # (3)
+          - name: "loginid"
+            skip_original_data: false # (5)
+            skip_on_null_input: true # (3)
+
+

{ .annotate }

+
    +
  1. Validate the received data via decode procedure using the PostgreSQL driver. Note that this may cause an error if the + type is not supported in the PostgreSQL driver.
  2. +
  3. Skip transformation (keep the values) if one of the affected columns (not_affected=false) has a null value.
  4. +
  5. If a column has a null value, then skip it. This works in conjunction with skip_on_behaviour. Since it has the + value any, if one of the columns (jobtitle or loginid) has a null value, then skip the + transformation call.
  6. +
  7. The format of JSON can be either text or bytes. The default value is text.
  8. +
  9. The skip_original_data attribute is set to true the date will not be transfered to the command. This column + will contain the empty original data
  10. +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/dict/index.html b/v0.2.5/built_in_transformers/standard_transformers/dict/index.html new file mode 100644 index 00000000..0bf35942 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/dict/index.html @@ -0,0 +1,3388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dict - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Dict

+ +

Replace values matched by dictionary keys.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesany
valuesValue replace mapping as in: {"string": "string"}. The string with value "\N" is considered NULL.No-
defaultShown if no value has been matched with dict. The string with value "\N" is considered NULL. By default is empty.No-
fail_not_matchedWhen no value is matched with the dict, fails the replacement process if set to true, or keeps the current value, if set to false.trueNo-
validatePerforms the encode-decode procedure using column type to ensure that values have correct typetrueNo-
+

Description

+

The Dict transformer uses a user-provided key-value dictionary to replace values based on matches specified in +the values parameter mapping. These provided values must align with the PostgreSQL type format. To validate the values +format before application, you can utilize the validate parameter, triggering a decoding procedure via the PostgreSQL +driver.

+

If there are no matches by key, an error will be raised according to a default fail_not_matched: true parameter. You +can change this behaviour by providing the default parameter, value from which will be shown in case of a missing +match.

+

In certain cases where the driver type does not support the validation operation, an error may occur. For setting or +matching a NULL value, use a string with the \N sequence.

+

Example: Replace marital status

+

The following example replaces marital status from S to M or from M to S and raises an error if there is no +match:

+
Dict transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "Dict"
+      params:
+        column: "maritalstatus"
+        values:
+          "S": "M"
+          "M": "S"
+        validate: true
+        fail_not_matched: true
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
maritalstatusSM
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/hash/index.html b/v0.2.5/built_in_transformers/standard_transformers/hash/index.html new file mode 100644 index 00000000..ac50c61c --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/hash/index.html @@ -0,0 +1,3347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Hash - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Hash

+ +

Generate a hash of the text value using the Scrypt hash function under the hood. NULL values are kept.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
saltHex encoded salt string. This value may be provided via environment variable GREENMASK_GLOBAL_SALTYestext, varchar
functionHash algorithm to anonymize data. Can be any of md5, sha1, sha256, sha512, sha3-224, sha3-254, sha3-384, sha3-512.sha1No-
max_lengthIndicates whether to truncate the hash tail and specifies at what length. Can be any integer number, where 0 means "no truncation".0No-
+

Example: Generate hash from job title

+

The following example generates a hash from the jobtitle into sha1 and truncates the results after the 10th character.

+

We can set the salt via the environment variable GREENMASK_GLOBAL_SALT:

+
export GREENMASK_GLOBAL_SALT="12343567baaa"
+
+
Hash transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "Hash"
+      params:
+        column: "jobtitle"
+        function: "sha1"
+        max_length: 10
+
+
Expected result
| column name | original value                   | transformed |
+|-------------|----------------------------------|-------------|
+| jobtitle    | Research and Development Manager | 3a456da5c5  |
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/index.html b/v0.2.5/built_in_transformers/standard_transformers/index.html new file mode 100644 index 00000000..1d7d45b7 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/index.html @@ -0,0 +1,3256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Standard transformers - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Standard transformers

+

Standard transformers are ready-to-use methods that require no customization and perform with just as little as parameters input. Below you can find an index of all standard transformers currently available in Greenmask.

+
    +
  1. Cmd — transforms data via external program using stdin and stdout interaction.
  2. +
  3. Dict — replaces values matched by dictionary keys.
  4. +
  5. Hash — generates a hash of the text value.
  6. +
  7. Masking — masks a value using one of the masking behaviors depending on your domain.
  8. +
  9. NoiseDate — randomly adds or subtracts a duration within the provided ratio interval to the original date value.
  10. +
  11. NoiseFloat — adds or subtracts a random fraction to the original float value.terval to the original date value.
  12. +
  13. NoiseNumeric — adds or subtracts a random fraction to the original numeric value.
  14. +
  15. NoiseInt — adds or subtracts a random fraction to the original integer value.
  16. +
  17. RandomBool — generates random boolean values.
  18. +
  19. RandomChoice — replaces values randomly chosen from a provided list.
  20. +
  21. RandomDate — generates a random date in a specified interval.
  22. +
  23. RandomFloat — generates a random float within the provided interval.
  24. +
  25. RandomInt — generates a random integer within the provided interval.
  26. +
  27. RandomString — generates a random string using the provided characters within the specified length range.
  28. +
  29. RandomUuid — generates a random unique user ID.
  30. +
  31. RandomLatitude — generates a random latitude value.
  32. +
  33. RandomLongitude — generates a random longitude value.
  34. +
  35. RandomUnixTimestamp — generates a random Unix timestamp.
  36. +
  37. RandomDayOfWeek — generates a random day of the week.
  38. +
  39. RandomDayOfMonth — generates a random day of the month.
  40. +
  41. RandomMonthName — generates the name of a random month.
  42. +
  43. RandomYearString — generates a random year as a string.
  44. +
  45. RandomCentury — generates a random century.
  46. +
  47. RandomTimezone — generates a random timezone.
  48. +
  49. RandomEmail — generates a random email address.
  50. +
  51. RandomUsername — generates a random username.
  52. +
  53. RandomPassword — generates a random password.
  54. +
  55. RandomDomainName — generates a random domain name.
  56. +
  57. RandomURL — generates a random URL.
  58. +
  59. RandomMac — generates a random MAC addresses.
  60. +
  61. RandomIP — generates a random IPv4 or IPv6 addresses.
  62. +
  63. RandomWord — generates a random word.
  64. +
  65. RandomSentence — generates a random sentence.
  66. +
  67. RandomParagraph — generates a random paragraph.
  68. +
  69. RandomCCType — generates a random credit card type.
  70. +
  71. RandomCCNumber — generates a random credit card number.
  72. +
  73. RandomCurrency — generates a random currency code.
  74. +
  75. RandomAmountWithCurrency — generates a random monetary amount with currency.
  76. +
  77. RandomPerson — generates a random person data (first name, last name, etc.)
  78. +
  79. RandomPhoneNumber — generates a random phone number.
  80. +
  81. RandomTollFreePhoneNumber — generates a random toll-free phone number.
  82. +
  83. RandomE164PhoneNumber — generates a random phone number in E.164 format.
  84. +
  85. RealAddress — generates a real address.
  86. +
  87. RegexpReplace — replaces a string using a regular expression.
  88. +
  89. Replace — replaces an original value by the provided one.
  90. +
  91. SetNull — sets NULL value to the column.
  92. +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/masking/index.html b/v0.2.5/built_in_transformers/standard_transformers/masking/index.html new file mode 100644 index 00000000..92524751 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/masking/index.html @@ -0,0 +1,3401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Masking - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Masking

+ +

Mask a value using one of the masking rules depending on your domain. NULL values are kept.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
typeData type of attribute (default, password, name, addr, email, mobile, tel, id, credit, url)defaultNo-
+

Description

+

The Masking transformer replaces characters with asterisk * symbols depending on the provided data type. If the +value is NULL, it is kept unchanged. It is based on ggwhite/go-masker and +supports the following masking rules:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
defaultReturns * symbols with the same length, e.g. input: test1234 output: ********
nameMasks the second letter the third letter in a word, e. g. input: ABCD output: A**D
passwordAlways returns ************
addressKeeps first 6 letters, masks the rest, e. g. input: Larnaca, makarios st output: Larnac*************
emailKeeps a domain and the first 3 letters, masks the rest, e. g. input: ggw.chang@gmail.com output: ggw****@gmail.com
mobileMasks 3 digits starting from the 4th digit, e. g. input: 0987654321 output: 0987***321
telephoneRemoves (, ), , - chart, and masks last 4 digits of telephone number, then formats it to (??)????-????, e. g. input: 0227993078 output: (02)2799-****
idMasks last 4 digits of ID number, e. g. input: A123456789 output: A12345****
credit_cartMasks 6 digits starting from the 7th digit, e. g. input 1234567890123456 output 123456******3456
urlMasks the password part of the URL, if applicable, e. g. http://admin:mysecretpassword@localhost:1234/uri output: http://admin:xxxxx@localhost:1234/uri
+

Example: Masking employee national ID number

+

In the following example, the national ID number of an employee is masked.

+
Masking transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "Masking"
+      params:
+        column: "nationalidnumber"
+        type: "id"
+
+
Expected result
| column name      | original value | transformed |
+|------------------|----------------|-------------|
+| nationalidnumber | 295847284      | 295847****  |
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/noise_date/index.html b/v0.2.5/built_in_transformers/standard_transformers/noise_date/index.html new file mode 100644 index 00000000..116cffe4 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/noise_date/index.html @@ -0,0 +1,3481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + NoiseDate - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

NoiseDate

+ +

Randomly add or subtract a duration within the provided ratio interval to the original date value.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesdate, timestamp, timestamptz
min_ratioThe minimum random value for noise. The value must be in PostgreSQL interval format, e. g. 1 year 2 mons 3 day 04:05:06.075% from max_ration parameterNo-
max_ratioThe maximum random value for noise. The value must be in PostgreSQL interval format, e. g. 1 year 2 mons 3 day 04:05:06.07Yes-
minMin threshold date (and/or time) of value. The value has the same format as column parameterNo-
maxMax threshold date (and/or time) of value. The value has the same format as column parameterNo-
truncateTruncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default.No-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
mindate, timestamp, timestamptz
maxdate, timestamp, timestamptz
+

Description

+

The NoiseDate transformer randomly generates duration between min_ratio and max_ratio parameter and adds it to or +subtracts it from the original date value. The min_ratio or max_ratio parameters must be written in the +PostgreSQL interval format. +You can also truncate the resulted date up to a specified part by setting the truncate parameter.

+

In case you have constraints on the date range, you can set the min and max parameters to specify the threshold +values. The values for min and max must have the same format as the column parameter. Parameters min and max +support dynamic mode.

+
+

Info

+

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value +is lower than the min threshold, the transformer will set the value to min.

+
+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Adding noise to the modified date

+

In the following example, the original timestamp value of modifieddate will be noised up +to 1 year 2 months 3 days 4 hours 5 minutes 6 seconds and 7 milliseconds with truncation up to the month part.

+
NoiseDate transformer example
- schema: "humanresources"
+  name: "jobcandidate"
+  transformers:
+    - name: "NoiseDate"
+      params:
+        column: "hiredate"
+        max_ratio: "1 year 2 mons 3 day 04:05:06.07"
+        truncate: "month"
+        max: "2020-01-01 00:00:00"
+
+

Example: Adding noise to the modified date with dynamic min parameter with hash engine

+

In the following example, the original timestamp value of hiredate will be noised up +to 1 year 2 months 3 days 4 hours 5 minutes 6 seconds and 7 milliseconds with truncation up to the month part. +The max threshold is set to 2020-01-01 00:00:00, and the min threshold is set to the birthdate column. If the +birthdate column is NULL, the default value 1990-01-01 will be used. The hash engine is used for deterministic +generation - the same input will always produce the same output.

+
NoiseDate transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "NoiseDate"
+      params:
+        column: "hiredate"
+        max_ratio: "1 year 2 mons 3 day 04:05:06.07"
+        truncate: "month"
+        max: "2020-01-01 00:00:00"
+        engine: "hash"
+      dynamic_params:
+        min:
+          column: "birthdate"
+          default: "1990-01-01"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
hiredate2009-01-142010-08-01
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/noise_float/index.html b/v0.2.5/built_in_transformers/standard_transformers/noise_float/index.html new file mode 100644 index 00000000..86b43b50 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/noise_float/index.html @@ -0,0 +1,3450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + NoiseFloat - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

NoiseFloat

+ +

Add or subtract a random fraction to the original float value.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesfloat4, float8
decimalThe decimal of the noised float value (number of digits after the decimal point)4No-
min_ratioThe minimum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"0.05No-
max_ratioThe maximum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"Yes-
minMin threshold of noised valueNo-
maxMax threshold of noised valueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minfloat4, float8, int2, int4, int8
maxfloat4, float8, int2, int4, int8
+

Description

+

The NoiseFloat transformer multiplies the original float value by randomly generated value that is not higher than +the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from the original +value. Additionally, you can specify the number of decimal digits by using the decimal parameter.

+

In case you have constraints on the float range, you can set the min and max parameters to specify the threshold +values. The values for min and max must have the same format as the column parameter. Parameters min and max +support dynamic mode. Engine parameter allows you to choose between random and hash engines for generating values. Read +more about the engines

+
+

Info

+

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value +is lower than the min threshold, the transformer will set the value to min.

+
+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Adding noise to the purchase price

+

In this example, the original value of standardprice will be noised up to 50% and rounded up to 2 decimals.

+
NoiseFloat transformer example
- schema: "purchasing"
+  name: "productvendor"
+  columns_type_override: # (1)
+    lastreceiptcost: "float8"
+    standardprice: "float8"
+  transformers:
+    - name: "NoiseFloat"
+      params:
+        column: "lastreceiptcost"
+        max_ratio: 0.15
+        decimal: 2
+      dynamic_params:
+        min:
+          column: "standardprice"
+
+
    +
  1. The type overrides applied for example because the playground database does not contain any tables with float + columns.
  2. +
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
lastreceiptcost50.263547.87
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/noise_int/index.html b/v0.2.5/built_in_transformers/standard_transformers/noise_int/index.html new file mode 100644 index 00000000..cf798c24 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/noise_int/index.html @@ -0,0 +1,3434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + NoiseInt - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

NoiseInt

+ +

Add or subtract a random fraction to the original integer value.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesint2, int4, int8
min_ratioThe minimum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"0.05No-
max_ratioThe maximum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"Yes-
minMin threshold of noised valueNo-
maxMin threshold of noised valueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minint2, int4, int8
maxint2, int4, int8
+

Description

+

The NoiseInt transformer multiplies the original integer value by randomly generated value that is not higher than +the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from the original +value.

+

In case you have constraints on the integer range, you can set the min and max parameters to specify the +threshold values. The values for min and max must have the same format as the column parameter. Parameters min and +max support dynamic mode.

+
+

Info

+

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value +is lower than the min threshold, the transformer will set the value to min.

+
+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Noise vacation hours of an employee

+

In the following example, the original value of vacationhours will be noised up to 40%. The transformer will set the +value to 10 if the noised value is lower than 10 and to 1000 if the noised value exceeds 1000.

+
NoiseInt transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "NoiseInt"
+      params:
+        column: "vacationhours"
+        max_ratio: 0.4
+        min: 10
+        max: 1000
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
vacationhours9969
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/noise_numeric/index.html b/v0.2.5/built_in_transformers/standard_transformers/noise_numeric/index.html new file mode 100644 index 00000000..b32c2f90 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/noise_numeric/index.html @@ -0,0 +1,3450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + NoiseNumeric - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

NoiseNumeric

+ +

Add or subtract a random fraction to the original numeric value.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesnumeric, decimal
decimalThe decimal of the noised float value (number of digits after the decimal point)4No-
min_ratioThe minimum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"0.05No-
max_ratioThe maximum random percentage for noise, from 0 to 1, e. g. 0.1 means "add noise up to 10%"Yes-
minMin threshold of noised valueNo-
maxMax threshold of noised valueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minnumeric, decimal, float4, float8, int2, int4, int8
maxnumeric, decimal, float4, float8, int2, int4, int8
+

Description

+

The NoiseNumeric transformer multiplies the original numeric (or decimal) value by randomly generated value that is +not higher than the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from +the original value. Additionally, you can specify the number of decimal digits by using the decimal parameter.

+

In case you have constraints on the numeric range, you can set the min and max parameters to specify the threshold +values. The values for min and max must have the same format as the column parameter. Parameters min and max +support dynamic mode. Engine parameter allows you to choose between random and hash engines for generating values. Read +more about the engines

+
+

Info

+

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value +is lower than the min threshold, the transformer will set the value to min.

+
+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+
+

Warning

+

Greenmask cannot parse the numeric type sitteng. For instance NUMERIC(10, 2). You should set min and max treshholds +manually as well as allowed decimal. This behaviour will be changed in the later versions. Grenmask will be able +to determine the decimal and scale of the column and set the min and max treshholds automatically if were not set.

+
+

Example: Adding noise to the purchase price

+

In this example, the original value of standardprice will be noised up to 50% and rounded up to 2 decimals.

+
NoiseNumeric transformer example
- schema: "purchasing"
+  name: "productvendor"
+  transformers:
+    - name: "NoiseNumeric"
+      params:
+        column: "lastreceiptcost"
+        max_ratio: 0.15
+        decimal: 2
+        max: 10000
+      dynamic_params:
+        min:
+          column: "standardprice"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
lastreceiptcost50.263557.33
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_amount_with_currency/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_amount_with_currency/index.html new file mode 100644 index 00000000..bac30183 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_amount_with_currency/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomAmountWithCurrency - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + +

RandomAmountWithCurrency

+ +

The RandomAmountWithCurrency transformer is specifically designed to populate specified database columns with random financial amounts accompanied by currency codes. Ideal for applications requiring the simulation of financial transactions, this utility enhances the realism of financial datasets by introducing variability in amounts and currencies.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

This transformer automatically generates random financial amounts along with corresponding global currency codes (e. g., 250.00 USD, 300.00 EUR), injecting them into the designated database column. It provides a straightforward solution for populating financial records with varied and realistic data, suitable for testing payment systems, data anonymization, and simulation of economic models.

+

Example: Populate the payments table with random amounts and currencies

+

This example shows how to configure the RandomAmountWithCurrency transformer to populate the payment_details column in the payments table with random amounts and currencies. It is an effective approach to simulating a diverse range of payment transactions.

+
RandomAmountWithCurrency transformer example
- schema: "public"
+  name: "payments"
+  transformers:
+    - name: "RandomAmountWithCurrency"
+      params:
+        column: "payment_details"
+        keep_null: false
+
+

In this setup, the payment_details column will be updated with random financial amounts and currency codes for each entry, replacing any existing non-NULL values. The keep_null parameter, when set to true, ensures that existing NULL values in the column remain unchanged, preserving the integrity of records without specified payment details.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_bool/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_bool/index.html new file mode 100644 index 00000000..2a2b38a7 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_bool/index.html @@ -0,0 +1,3363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomBool - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomBool

+ +

Generate random boolean values.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesbool
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomBool transformer generates a random boolean value. The behaviour for NULL values can be +configured using the keep_null parameter. The engine parameter allows you to choose between random and hash engines +for generating values. Read more about the engines in the Transformation engines +section.

+

Example: Generate a random boolean for a column

+

In the following example, the RandomBool transformer generates a random boolean value for the salariedflag column.

+
RandomBool transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "RandomBool"
+      params:
+        column: "salariedflag"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
salariedflagtf
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_cc_number/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_cc_number/index.html new file mode 100644 index 00000000..991466b8 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_cc_number/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomCCNumber - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

RandomCCNumber

+ +

The RandomCCNumber transformer is specifically designed to populate specified database columns with random credit card numbers. This utility is crucial for applications that involve simulating financial data, testing payment systems, or anonymizing real credit card numbers in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

By leveraging algorithms capable of generating plausible credit card numbers that adhere to standard credit card validation rules (such as the Luhn algorithm), the RandomCCNumber transformer injects random credit card numbers into the designated database column. This approach ensures the generation of credit card numbers that are realistic for testing and development purposes, without compromising real-world applicability and security.

+

Example: Populate random credit card numbers for the payment_information table

+

This example demonstrates configuring the RandomCCNumber transformer to populate the cc_number column in the payment_information table with random credit card numbers. It is an effective strategy for creating a realistic set of payment data for application testing or data anonymization.

+
RandomCCNumber transformer example
- schema: "public"
+  name: "payment_information"
+  transformers:
+    - name: "RandomCCNumber"
+      params:
+        column: "cc_number"
+        keep_null: false
+
+

With this setup, the cc_number column will be updated with random credit card numbers for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, it will ensure that existing NULL values in the column are preserved, maintaining the integrity of records where credit card information is not applicable or available.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_cc_type/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_cc_type/index.html new file mode 100644 index 00000000..d3616319 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_cc_type/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomCCType - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomCCType

+ +

The RandomCCType transformer is designed to populate specified database columns with random credit card types. This tool is essential for applications that require the simulation of financial transaction data, testing payment processing systems, or anonymizing credit card type information in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing a predefined list of credit card types (e.g., VISA, MasterCard, American Express, Discover), the RandomCCType transformer injects random credit card type names into the designated database column. This feature allows for the creation of realistic and varied financial transaction datasets by simulating a range of credit card types without using real card data.

+

Example: Populate random credit card types for the transactions table

+

This example shows how to configure the RandomCCType transformer to populate the card_type column in the transactions table with random credit card types. It is a straightforward method for simulating diverse payment methods across transactions.

+
RandomCCType transformer example
- schema: "public"
+  name: "transactions"
+  transformers:
+    - name: "RandomCCType"
+      params:
+        column: "card_type"
+        keep_null: false
+
+

In this configuration, the card_type column will be updated with random credit card types for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, maintaining the integrity of records where card type information is not applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_century/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_century/index.html new file mode 100644 index 00000000..360dcdf1 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_century/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomCentury - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomCentury

+ +

The RandomCentury transformer is crafted to populate specified database columns with random century values. It is ideal for applications that require historical data simulation, such as generating random years within specific centuries for historical databases, testing datasets with temporal dimensions, or anonymizing dates in historical research data.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomCentury transformer utilizes an algorithm or a library function (hypothetical in this context) to generate random century values. Each value represents a century (e.g., 19th, 20th, 21st), providing a broad temporal range that can be used to enhance datasets requiring a distribution across different historical periods without the need for precise date information.

+

Example: Populate random centuries for the historical_artifacts table

+

This example shows how to configure the RandomCentury transformer to populate the century column in a historical_artifacts table with random century values, adding an element of variability and historical context to the dataset.

+
RandomCentury transformer example
- schema: "public"
+  name: "historical_artifacts"
+  transformers:
+    - name: "RandomCentury"
+      params:
+        column: "century"
+        keep_null: false
+
+

In this setup, the century column will be filled with random century values, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values in the column will remain untouched, preserving the original dataset's integrity where no temporal data is available.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_choice/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_choice/index.html new file mode 100644 index 00000000..b70828f5 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_choice/index.html @@ -0,0 +1,3384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomChoice - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomChoice

+ +

Replace values randomly chosen from a provided list.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesany
valuesA list of values in any format. The string with value \N is considered NULL.Yes-
validatePerforms a decoding procedure via the PostgreSQL driver using the column type to ensure that values have correct typetrueNo
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomChoice transformer replaces one randomly chosen value from the list provided in the values parameter. You +can use the validate parameter to ensure that values are correct before applying the transformation. The behaviour for +NULL values can be configured using the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Choosing randomly from provided dates

+

In this example, the provided values undergo validation through PostgreSQL driver decoding, and one value is randomly +chosen from the list.

+
RandomChoice transformer example
- schema: "humanresources"
+  name: "jobcandidate"
+  transformers:
+    - name: "RandomChoice"
+      params:
+        column: "modifieddate"
+        validate: true
+        engine: hash
+        values:
+          - "2023-12-21 07:41:06.891"
+          - "2023-12-21 07:41:06.896"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
modifieddate2007-06-23 00:00:002023-12-21 07:41:06.891
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_currency/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_currency/index.html new file mode 100644 index 00000000..59c5dd4e --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_currency/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomCurrency - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomCurrency

+ +

The RandomCurrency transformer is tailored to populate specified database columns with random currency codes. This tool is highly beneficial for applications involving the simulation of international financial data, testing currency conversion features, or anonymizing currency information in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing a comprehensive list of global currency codes (e.g., USD, EUR, JPY), the RandomCurrency transformer injects random currency codes into the designated database column. This feature allows for the creation of diverse and realistic financial transaction datasets by simulating a variety of currencies without relying on actual financial data.

+

Example: Populate random currency codes for the transactions table

+

This example outlines configuring the RandomCurrency transformer to populate the currency_code column in a transactions table with random currency codes. It is an effective way to simulate international transactions across multiple currencies.

+
RandomCurrency transformer example
- schema: "public"
+  name: "transactions"
+  transformers:
+    - name: "RandomCurrency"
+      params:
+        column: "currency_code"
+        keep_null: false
+
+

In this configuration, the currency_code column will be updated with random currency codes for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where currency data may not be applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_date/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_date/index.html new file mode 100644 index 00000000..9302d7be --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_date/index.html @@ -0,0 +1,3491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomDate - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomDate

+ +

Generate a random date in a specified interval.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnName of the column to be affectedYesdate, timestamp, timestamptz
minThe minimum threshold date for the random value. The format depends on the column type.Yes-
maxThe maximum threshold date for the random value. The format depends on the column type.Yes-
truncateTruncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default.No-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
mindate, timestamp, timestamptz
maxdate, timestamp, timestamptz
+

Description

+

The RandomDate transformer generates a random date within the provided interval, starting from min to max. It +can also perform date truncation up to the specified part of the date. The format of dates in the min and max +parameters must adhere to PostgreSQL types, including DATE, TIMESTAMP WITHOUT TIMEZONE, +or TIMESTAMP WITH TIMEZONE.

+
+

Note

+

The value of min and max parameters depends on the column type. For example, for the date column, the value +should be in the format YYYY-MM-DD, while for the timestamp column, the value should be in the format +YYYY-MM-DD HH:MM:SS or YYYY-MM-DD HH:MM:SS.SSSSSS. The timestamptz column requires the value to be in the +format YYYY-MM-DD HH:MM:SS.SSSSSS+HH:MM. Read more about date/time formats in +the PostgreSQL documentation.

+
+

The behaviour for NULL values can be configured using the keep_null parameter. The engine parameter allows you to +choose between random and hash engines for generating values. Read more about the engines in +the Transformation engines section.

+

Example: Generate modifieddate

+

In the following example, a random timestamp without timezone is generated for the modifieddate column within the +range from 2011-05-31 00:00:00 to 2013-05-31 00:00:00, and the part of the random value after day is truncated.

+
RandomDate transformer example
- schema: "sales"
+  name: "salesorderdetail"
+  transformers:
+    - name: "RandomDate"
+      params:
+        column: "modifieddate"
+        keep_null: false
+        min: "2011-05-31 00:00:00"
+        max: "2013-05-31 00:00:00"
+        truncate: "day"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
modifieddate2014-06-30 00:00:002012-07-27 00:00:00
+ +

Example: Generate hiredate based on birthdate using two transformations

+

In this example, the RandomDate transformer generates a random date for the birthdate column within the +range now - 50 years to now - 18 years. The hire date is generated based on the birthdate, ensuring that the +employee is at least 18 years old when hired.

+
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "RandomDate"
+      params:
+        column: "birthdate"
+        min: '{{ now | tsModify "-50 years" | .EncodeValue }}' # 1994
+        max: '{{ now | tsModify "-18 years" | .EncodeValue }}' # 2006
+
+    - name: "RandomDate"
+      params:
+        column: "hiredate"
+        truncate: "month"
+        max: "{{ now | .EncodeValue }}"
+      dynamic_params:
+        min:
+          column: "birthdate"
+          template: '{{ .GetValue | tsModify "18 years" | .EncodeValue }}' # min age 18 years
+
+

Result:

+ + + + + + + + + + +
ColumnOriginalValueTransformedValue
birthdate1969-01-291985-10-29
hiredate2009-01-142023-01-01
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_day_of_month/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_day_of_month/index.html new file mode 100644 index 00000000..0f71539a --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_day_of_month/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomDayOfMonth - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomDayOfMonth

+ +

The RandomDayOfMonth transformer is designed to populate specified database columns with random day-of-the-month values. It is particularly useful for scenarios requiring the simulation of dates, such as generating random event dates, user sign-up dates, or any situation where the specific day of the month is needed without reference to the actual month or year.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar, int2, int4, int8, numeric
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing the faker library, the RandomDayOfMonth transformer generates random numerical values representing days of the month, ranging from 1 to 31. This allows for the easy insertion of random but plausible day-of-the-month data into a database, enhancing realism or anonymizing actual dates.

+

Example: Populate random days of the month for the events table

+

This example illustrates how to configure the RandomDayOfMonth transformer to fill the event_day column in the events table with random day-of-the-month values, facilitating the simulation of varied event scheduling.

+
RandomDayOfMonth transformer example
- schema: "public"
+  name: "events"
+  transformers:
+    - name: "RandomDayOfMonth"
+      params:
+        column: "event_day"
+        keep_null: false
+
+

With this setup, the event_day column will be updated with random day-of-the-month values, replacing any existing non-NULL values. Setting keep_null to true ensures that NULL values in the column are left unchanged, maintaining any existing gaps in the data.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_day_of_week/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_day_of_week/index.html new file mode 100644 index 00000000..3260df56 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_day_of_week/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomDayOfWeek - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomDayOfWeek

+ +

The RandomDayOfWeek transformer is specifically designed to fill specified database columns with random day-of-the-week names. It is particularly useful for applications that require simulated weekly schedules, random event planning, or any scenario where the day of the week is relevant but the specific date is not.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing the faker library, the RandomDayOfWeek transformer generates names of days (e. g., Monday, Tuesday) at random. This transformer can be applied to any text or varchar column in a database, introducing variability and realism into data sets that need to represent days of the week in a non-specific manner.

+

Example: Populate random days of the week for the work_schedule table

+

This example demonstrates configuring the RandomDayOfWeek transformer to populate the work_day column in the work_schedule table with random days of the week. This setup can help simulate a diverse range of work schedules without tying them to specific dates.

+
RandomDayOfWeek transformer example
- schema: "public"
+  name: "work_schedule"
+  transformers:
+    - name: "RandomDayOfWeek"
+      params:
+        column: "work_day"
+        keep_null: false
+
+

In this configuration, every entry in the work_day column will be updated with a random day of the week, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values within the column will remain unchanged.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_domain_name/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_domain_name/index.html new file mode 100644 index 00000000..f95332f9 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_domain_name/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomDomainName - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomDomainName

+ +

The RandomDomainName transformer is designed to populate specified database columns with random domain names. This tool is invaluable for simulating web data, testing applications that interact with domain names, or anonymizing real domain information in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

By leveraging an algorithm or library capable of generating believable domain names, the RandomDomainName transformer introduces random domain names into the specified database column. Each generated domain name includes a second-level domain (SLD) and a top-level domain (TLD), such as "example.com" or "website.org," providing a wide range of plausible web addresses for database enrichment.

+

Example: Populate random domain names for the websites table

+

This example demonstrates configuring the RandomDomainName transformer to populate the domain column in the websites table with random domain names. This approach facilitates the creation of a diverse and realistic set of web addresses for testing, simulation, or data anonymization purposes.

+
RandomDomainName transformer example
- schema: "public"
+  name: "websites"
+  transformers:
+    - name: "RandomDomainName"
+      params:
+        column: "domain"
+        keep_null: false
+
+

In this setup, the domain column will be updated with random domain names for each entry, replacing any existing non-NULL values. If keep_null is set to true, the transformer will preserve existing NULL values in the column, maintaining the integrity of data where domain information is not applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_e164_phone_number/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_e164_phone_number/index.html new file mode 100644 index 00000000..58865bfc --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_e164_phone_number/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomE164PhoneNumber - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

RandomE164PhoneNumber

+ +

The RandomE164PhoneNumber transformer is developed to populate specified database columns with random E.164 phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets while focusing on E.164 numbers.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomE164PhoneNumber transformer utilizes algorithms capable of generating random E.164 phone numbers with the standard international format and injects them into the designated database column. This feature allows for the creation of diverse and realistic contact information in datasets for development, testing, or data anonymization purposes.

+

Example: Populate random E.164 phone numbers for the contact_information table

+

This example demonstrates configuring the RandomE164PhoneNumber transformer to populate the phone_number column in the contact_information table with random E.164 phone numbers. It is an effective method for simulating a variety of contact information entries with E.164 numbers.

+
RandomE164PhoneNumber transformer example
- schema: "public"
+  name: "contact_information"
+  transformers:
+    - name: "RandomE164PhoneNumber"
+      params:
+        column: "phone_number"
+        keep_null: false
+
+

In this configuration, the phone_number column will be updated with random E.164 phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where E.164 phone number information is not applicable or provided.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_email/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_email/index.html new file mode 100644 index 00000000..ff83707d --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_email/index.html @@ -0,0 +1,3495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomEmail - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomEmail

+ +

Generate email addresses for a specified column.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_original_domainKeep original of the original addressfalseNo-
local_part_templateThe template for local part of emailNo-
domain_part_templateThe template for domain part of emailNo-
domainsList of domains for new email["gmail.com", "yahoo.com", "outlook.com", "hotmail.com", "aol.com", "icloud.com", "mail.com", "zoho.com", "yandex.com", "protonmail.com", "gmx.com", "fastmail.com"]No-
validateValidate generated email if using templatefalseNo-
max_random_lengthMax length of randomly generated part of the email32No-
keep_nullIndicates whether NULL values should be preservedfalseNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomEmail transformer generates random email addresses for the specified database column. By default, the +transformer generates random email addresses with a maximum length of 32 characters. The keep_original_domain +parameter allows you to preserve the original domain part of the email address. The local_part_template +and domain_part_template parameters enable you to specify templates for the local and domain parts of the email +address, respectively. If the validate parameter is set to true, the transformer will validate the generated email +addresses against the specified templates. The keep_null parameter allows you to preserve existing NULL values in the +column.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Templates parameters

+

In each template you have access to the columns of the table by using the {{ .column_name }} syntax. Note that +all values are strings. For example, you can use for assembling the email address by accessing to first_name and +last_name columns {{ .first_name | lower }}.{{ .last_name | lower }}.

+

The transformer always generates random sequences for the email, and you can use it by accessing +the {{ .random_string }} variable. For example, we can add random string in the end of local part +{{ .first_name | lower }}.{{ .last_name | lower }}.{{ .random_string }}.

+

Read more about template function Template functions.

+

Random email generation using first name and last name

+

In this example, the RandomEmail transformer generates random email addresses for the email column in the account +table. The transformer generates email addresses using the first_name and last_name columns as the local part +of the email address and adds a random string to the end of the local part with length 10 characters. The original +domain part of the email address is preserved.

+
CREATE TABLE account
+(
+    id         SERIAL PRIMARY KEY,
+    gender     VARCHAR(1) NOT NULL,
+    email      TEXT       NOT NULL NOT NULL UNIQUE,
+    first_name TEXT       NOT NULL,
+    last_name  TEXT       NOT NULL,
+    birth_date DATE,
+    created_at TIMESTAMP  NOT NULL DEFAULT NOW()
+);
+
+INSERT INTO account (first_name, gender, last_name, birth_date, email)
+VALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');
+
+
RandomEmail transformer example
- schema: "public"
+  name: "account"
+  transformers:
+    - name: "RandomEmail"
+      params:
+        column: "email"
+        engine: "hash"
+        keep_original_domain: true
+        local_part_template: "{{ first_name | lower }}.{{ last_name | lower }}.{{ .random_string | trunc 10 }}"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
emailjohn.smith@gmail.comjohn.smith.a075d99e2d@gmail.com
+ +

Simple random email generation

+

In this example, the RandomEmail transformer generates random email addresses for the email column in the account +table. The transformer generates random email addresses with a maximum length of 10 characters.

+
RandomEmail transformer example
- schema: "public"
+  name: "account"
+  transformers:
+    - name: "RandomEmail"
+      params:
+        column: "email"
+        max_random_length: 10
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
emailjohn.smith@gmail.comjohn.smith.a075d99e2d@gmail.com
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_float/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_float/index.html new file mode 100644 index 00000000..fdb10604 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_float/index.html @@ -0,0 +1,3432 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomFloat - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomFloat

+ +

Generate a random float within the provided interval.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesfloat4, float8
minThe minimum threshold for the random value. The value range depends on the column type.Yes-
maxThe maximum threshold for the random value. The value range depends on the column type.Yes-
decimalThe decimal of the random float value (number of digits after the decimal point)4No-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minfloat4, float8
maxfloat4, float8
+

Description

+

The RandomFloat transformer generates a random float value within the provided interval, starting from min to +max, with the option to specify the number of decimal digits by using the decimal parameter. The behaviour for +NULL values can be configured using the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate random price

+

In this example, the RandomFloat transformer generates random prices in the range from 0.1 to 7000 while +maintaining a decimal of up to 2 digits.

+
RandomFloat transformer example
- schema: "sales"
+  name: "salesorderdetail"
+  columns_type_override:  # (1)
+    "unitprice": "float8"
+  transformers:
+    - name: "RandomFloat"
+      params:
+        column: "unitprice"
+        min: 0.1
+        max: 7000
+        decimal: 2
+
+
    +
  1. The type overrides applied for example because the playground database does not contain any tables with float + columns.
  2. +
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
unitprice2024.9944449.7
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_int/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_int/index.html new file mode 100644 index 00000000..0cc44cc4 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_int/index.html @@ -0,0 +1,3461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomInt - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomInt

+ +

Generate a random integer within the provided interval.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesint2, int4, int8
minThe minimum threshold for the random valueYes-
maxThe maximum threshold for the random valueYes-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minint2, int4, int8
maxint2, int4, int8
+

Description

+

The RandomInt transformer generates a random integer within the specified min and max thresholds. The behaviour +for NULL values can be configured using the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate random item quantity

+

In the following example, the RandomInt transformer generates a random value in the range from 1 to 30 and assigns +it to +the orderqty column.

+
generate random orderqty in the range from 1 to 30
- schema: "sales"
+  name: "salesorderdetail"
+  transformers:
+    - name: "RandomInt"
+      params:
+        column: "orderqty"
+        min: 1
+        max: 30
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
orderqty129
+ +

Example: Generate random sick leave hours based on vacation hours

+

In the following example, the RandomInt transformer generates a random value in the range from 1 to the value of the +vacationhours column and assigns it to the sickleavehours column. This configuration allows for the simulation of +sick leave hours based on the number of vacation hours.

+
RandomInt transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "RandomInt"
+      params:
+        column: "sickleavehours"
+        max: 100
+      dynamic_params:
+        min:
+          column: "vacationhours"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
sickleavehours6999
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_ip/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_ip/index.html new file mode 100644 index 00000000..86d05c52 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_ip/index.html @@ -0,0 +1,3456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomIP - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomIP

+ +

The RandomIp transformer is designed to populate specified database columns with random IP v4 or V6 addresses. +This utility is essential for applications requiring the simulation of network data, testing systems that utilize IP +addresses, or anonymizing real IP addresses in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar, inet
subnetSubnet for generating random ip in V4 or V6 formatYes-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + +
NameSupported types
subnetcidr, text, varchar
+

Description

+

Utilizing a robust algorithm or library for generating IP addresses, the RandomIp transformer injects random IPv4 +or IPv6 addresses into the designated database column, depending on the provided subnet. The transformer automatically +detects whether to generate an IPv4 or IPv6 address based on the subnet version specified.

+

Example: Generate a Random IPv4 Address for a 192.168.1.0/24 Subnet

+

This example demonstrates how to configure the RandomIp transformer to inject a random IPv4 address into the +ip_address column for entries in the 192.168.1.0/24 subnet:

+
Create table ip_networks and insert data
CREATE TABLE ip_networks
+(
+    id         SERIAL PRIMARY KEY,
+    ip_address INET,
+    network    CIDR
+);
+
+INSERT INTO ip_networks (ip_address, network)
+VALUES ('192.168.1.10', '192.168.1.0/24'),
+       ('10.0.0.5', '10.0.0.0/16'),
+       ('172.16.254.3', '172.16.0.0/12'),
+       ('192.168.100.14', '192.168.100.0/24'),
+       ('2001:0db8:85a3:0000:0000:8a2e:0370:7334', '2001:0db8:85a3::/64'); -- An IPv6 address and network
+
+
RandomPerson transformer example
- schema: public
+  name: ip_networks
+  transformers:
+    - name: "RandomIp"
+      params:
+        subnet: "192.168.1.0/24"
+        column: "ip_address"
+        engine: "random"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
ip_address192.168.1.10192.168.1.28
+ +

Example: Generate a Random IP Based on the Dynamic Subnet Parameter

+

This configuration illustrates how to use the RandomIp transformer dynamically, where it reads the subnet information +from the network column of the database and generates a corresponding random IP address:

+
RandomPerson transformer example with dynamic mode
- schema: public
+  name: ip_networks
+  transformers:
+    - name: "RandomIp"
+      params:
+        column: "ip_address"
+        engine: "random"
+      dynamic_params:
+        subnet:
+          column: "network"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
ip_address192.168.1.10192.168.1.111
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_latitude/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_latitude/index.html new file mode 100644 index 00000000..c3889805 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_latitude/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomLatitude - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomLatitude

+ +

The RandomLatitude transformer generates random latitude values for specified database columns. It is designed to support geographical data enhancements, particularly useful for applications requiring randomized but plausible geographical coordinates.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesfloat4, float8, numeric
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomLatitude transformer utilizes the faker library to produce random latitude values within the range of -90 to +90 degrees. This transformer can be applied to columns designated to store geographical latitude information, enhancing data sets with randomized latitude coordinates.

+

Example: Populate random latitude for the locations table

+

This example demonstrates configuring the RandomLatitude transformer to populate the latitude column in the locations table with random latitude values.

+
RandomLatitude transformer example
- schema: "public"
+  name: "locations"
+  transformers:
+    - name: "RandomLatitude"
+      params:
+        column: "latitude"
+        keep_null: false
+
+

With this configuration, the latitude column will be filled with random latitude values, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values will be preserved.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_longitude/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_longitude/index.html new file mode 100644 index 00000000..86688cea --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_longitude/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomLongitude - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomLongitude

+ +

The RandomLongitude transformer is designed to generate random longitude values for specified database columns, enhancing datasets with realistic geographic coordinates suitable for a wide range of applications, from testing location-based services to anonymizing real geographic data.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesfloat4, float8, numeric
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomLongitude transformer leverages the faker library to produce random longitude values within the globally accepted range of -180 to +180 degrees. This flexibility allows the transformer to be applied to any column intended for storing longitude data, providing a simple yet powerful tool for introducing randomized longitude coordinates into a database.

+

Example: Populate random longitude for the locations table

+

This example shows how to use the RandomLongitude transformer to fill the longitude column in the locations table with random longitude values.

+
RandomLongitude transformer example
- schema: "public"
+  name: "locations"
+  transformers:
+    - name: "RandomLongitude"
+      params:
+        column: "longitude"
+        keep_null: false
+
+

This setup ensures that all entries in the longitude column receive a random longitude value, replacing any existing non-NULL values. If keep_null is set to true, then existing NULL values in the column will remain unchanged.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_mac/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_mac/index.html new file mode 100644 index 00000000..a954e138 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_mac/index.html @@ -0,0 +1,3398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomMac - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomMac

+ +

The RandomMac transformer is designed to populate specified database columns with random MAC addresses.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar, macaddr
keep_original_vendorShould the Individual/Group (I/G) and Universal/Local (U/L) bits be preserved from the original MAC address.falseNo-
cast_typeParam which allow to set Individual/Group (I/G) bit in MAC Address. Allowed values [any, individual, group]. If this value is individual, the address is meant for a single device (unicast). If it is group, the address is for a group of devices, which can include multicast and broadcast addresses.anyNo
management_typeParam which allow to set Universal/Local (U/L) bit in MAC Address. Allowed values [any, universal, local]. If this bit is universal, the address is universally administered (globally unique). If it is local, the address is locally administered (such as when set manually or programmatically on a network device).anyNo
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomMac transformer generates a random MAC address and injects it into the specified database column. The +transformer can be configured to preserve the Individual/Group (I/G) and Universal/Local (U/L) bits from the original +MAC address. You can also keep the original vendor bits in the generated MAC address by setting +the keep_original_vendor parameter to true.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate a Random MAC Address

+

This example demonstrates how to configure the RandomMac transformer to inject a random MAC address into the +mac_address column:

+
Create table mac_addresses and insert data
CREATE TABLE mac_addresses
+(
+    id          SERIAL PRIMARY KEY,
+    device_name VARCHAR(50),
+    mac_address MACADDR,
+    description TEXT
+);
+
+INSERT INTO mac_addresses (device_name, mac_address, description)
+VALUES ('Device A', '00:1A:2B:3C:4D:5E', 'Description for Device A'),
+       ('Device B', '01:2B:3C:4D:5E:6F', 'Description for Device B'),
+       ('Device C', '02:3C:4D:5E:6F:70', 'Description for Device C'),
+       ('Device D', '03:4D:5E:6F:70:71', 'Description for Device D'),
+       ('Device E', '04:5E:6F:70:71:72', 'Description for Device E');
+
+
RandomPerson transformer example
- schema: public
+  name: mac_addresses
+  transformers:
+    - name: "RandomMac"
+      params:
+        column: "mac_address"
+        engine: "random"
+        cast_type: "any"
+        management_type: "any"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
mac_address00:1a:2b:3c:4d:5eac:7f:a8:11:4e:0d
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_month_name/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_month_name/index.html new file mode 100644 index 00000000..047ab741 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_month_name/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomMonthName - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomMonthName

+ +

The RandomMonthName transformer is crafted to populate specified database columns with random month names. This transformer is especially useful for scenarios requiring the simulation of time-related data, such as user birth months or event months, without relying on specific date values.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomMonthName transformer utilizes the faker library to generate the names of months at random. It can be applied to any textual column in a database to introduce variety and realism into data sets that require representations of months without the need for specific calendar dates.

+

Example: Populate random month names for the user_profiles table

+

This example demonstrates how to configure the RandomMonthName transformer to fill the birth_month column in the user_profiles table with random month names, adding a layer of diversity to user data without using actual birthdates.

+
RandomMonthName transformer example
- schema: "public"
+  name: "user_profiles"
+  transformers:
+    - name: "RandomMonthName"
+      params:
+        column: "birth_month"
+        keep_null: false
+
+

With this setup, the birth_month column will be updated with random month names, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values within the column will remain untouched.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_numeric/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_numeric/index.html new file mode 100644 index 00000000..e4b51dc5 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_numeric/index.html @@ -0,0 +1,3430 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomNumeric - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomNumeric

+ +

Generate a random numeric within the provided interval.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesnumeric, decimal
minThe minimum threshold for the random value. The value range depends on the column type.Yes-
maxThe maximum threshold for the random value. The value range depends on the column type.Yes-
decimalThe decimal of the random numeric value (number of digits after the decimal point)4No-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Dynamic parameters

+ + + + + + + + + + + + + + + + + +
ParameterSupported types
minint2, int4, int8, float4, float8, numeric, decimal
maxint2, int4, int8, float4, float8, numeric, decimal
+

Description

+

The RandomNumeric transformer generates a random numeric value within the provided interval, starting from min to +max, with the option to specify the number of decimal digits by using the decimal parameter. The behaviour for +NULL values can be configured using the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate random price

+

In this example, the RandomNumeric transformer generates random prices in the range from 0.1 to 7000 while +maintaining a decimal of up to 2 digits.

+
RandomNumeric transformer example
- schema: "sales"
+  name: "salesorderdetail"
+  transformers:
+    - name: "RandomNumeric"
+      params:
+        column: "unitprice"
+        min: 0.1
+        max: 7000
+        decimal: 2
+
+
    +
  1. The type overrides applied for example because the playground database does not contain any tables with numeric + columns.
  2. +
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
unitprice2024.9944449.7
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_paragraph/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_paragraph/index.html new file mode 100644 index 00000000..d2ee2104 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_paragraph/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomParagraph - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomParagraph

+ +

The RandomParagraph transformer is crafted to populate specified database columns with random paragraphs. This utility is indispensable for applications that require the generation of extensive textual content, such as simulating articles, enhancing textual datasets for NLP systems, or anonymizing textual content in databases.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Employing sophisticated text generation algorithms or libraries, the RandomParagraph transformer generates random paragraphs, injecting them into the designated database column. This transformer is designed to create varied and plausible paragraphs that simulate real-world textual content, providing a valuable tool for database enrichment, testing, and anonymization.

+

Example: Populate random paragraphs for the articles table

+

This example illustrates configuring the RandomParagraph transformer to populate the body column in an articles table with random paragraphs. It is an effective way to simulate diverse article content for development, testing, or demonstration purposes.

+
RandomParagraph transformer example
- schema: "public"
+  name: "articles"
+  transformers:
+    - name: "RandomParagraph"
+      params:
+        column: "body"
+        keep_null: false
+
+

With this setup, the body column will receive random paragraphs for each entry, replacing any existing non-NULL values. Setting the keep_null parameter to true allows for the preservation of existing NULL values within the column, maintaining the integrity of records where article content is not applicable or provided.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_password/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_password/index.html new file mode 100644 index 00000000..a0e87076 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_password/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomPassword - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomPassword

+ +

The RandomPassword transformer is designed to populate specified database columns with random passwords. This utility is vital for applications that require the simulation of secure user data, testing systems with authentication mechanisms, or anonymizing real passwords in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Employing sophisticated password generation algorithms or libraries, the RandomPassword transformer injects random passwords into the designated database column. This feature is particularly useful for creating realistic and secure user password datasets for development, testing, or demonstration purposes.

+

Example: Populate random passwords for the user_accounts table

+

This example demonstrates how to configure the RandomPassword transformer to populate the password column in the user_accounts table with random passwords.

+
RandomPassword transformer example
- schema: "public"
+  name: "user_accounts"
+  transformers:
+    - name: "RandomPassword"
+      params:
+        column: "password"
+        keep_null: false
+
+

In this configuration, every entry in the password column will be updated with a random password. Setting the keep_null parameter to true will preserve existing NULL values in the column, accommodating scenarios where password data may not be applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_person/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_person/index.html new file mode 100644 index 00000000..94babd07 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_person/index.html @@ -0,0 +1,3557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomPerson - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomPerson

+ +

The RandomPerson transformer is designed to populate specified database columns with personal attributes such as +first name, last name, title and gender.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnsThe name of the column to be affectedYestext, varchar
genderset specific gender (possible values: Male, Female, Any)AnyNo-
gender_mappingSpecify gender name to possible values when using dynamic mode in "gender" parameterAnyNo-
fallback_genderSpecify fallback gender if not mapped when using dynamic mode in "gender" parameterAnyNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomPerson transformer utilizes a comprehensive list of first names to inject random first names into the +designated database column. This feature allows for the creation of diverse and realistic user profiles by +simulating a variety of first names without using real user data.

+

column object attributes

+
    +
  • name — the name of the column where the personal attributes will be stored. This value is required.
  • +
  • +

    template - the template for the column value. + You can use the next attributes: .FirstName, .LastName or .Title. For example, if you want to generate a full + name, you can use the next template: + "{{ .FirstName }} {{ .LastName }}"

    +
  • +
  • +

    hashing - the bool value. Indicates whether the column value must be passed through the hashing function. + The default value is false. If all column has hashing set to false (by default), then all columns will be + hashed.

    +
  • +
  • keep_null - the bool value. Indicates whether NULL values should be preserved. The default value is true
  • +
+

gender_mapping object attributes

+

gender_mapping - a dictionary that maps the gender value when gender parameters works in dynamic mode. +The default value is:

+
{
+  "Male": [
+    "male",
+    "M",
+    "m",
+    "man",
+    "Man"
+  ],
+  "Female": [
+    "female",
+    "F",
+    "f",
+    "w",
+    "woman",
+    "Woman"
+  ]
+}
+
+

fallback_gender

+

Gender that will be used if gender_mapping was not found. This parameter is optional +and required only for gender parameter in dynamic mode. The default value is Any.

+

Example: Populate random first name and last name for table user_profiles in static mode

+

This example demonstrates how to use the RandomPerson transformer to populate the name and surname columns in +the user_profiles table with random first names, last name, respectively.

+
Create table user_profiles and insert data
CREATE TABLE personal_data
+(
+    id      SERIAL PRIMARY KEY,
+    name    VARCHAR(100),
+    surname VARCHAR(100),
+    sex     CHAR(1) CHECK (sex IN ('M', 'F'))
+);
+
+-- Insert sample data into the table
+INSERT INTO personal_data (name, surname, sex)
+VALUES ('John', 'Doe', 'M'),
+       ('Jane', 'Smith', 'F'),
+       ('Alice', 'Johnson', 'F'),
+       ('Bob', 'Lee', 'M');
+
+
RandomPerson transformer example
- schema: public
+  name: personal_data
+  transformers:
+    - name: "RandomPerson"
+      params:
+        gender: "Any"
+        columns:
+          - name: "name"
+            template: "{{ .FirstName }}"
+          - name: "surname"
+            template: "{{ .LastName }}"
+        engine: "hash"
+
+

Result

+ + + + + + + + + + +
ColumnOriginalValueTransformedValue
nameJohnZane
surnameDoeMcCullough
+ +

Example: Populate random first name and last name for table user_profiles in dynamic mode

+

This example demonstrates how to use the RandomPerson transformer to populate the name, surname using dynamic +gender

+
RandomPerson transformer example with dynamic mode
- schema: public
+  name: personal_data
+  transformers:
+    - name: "RandomPerson"
+      params:
+        columns:
+          - name: "name"
+            template: "{{ .FirstName }}"
+          - name: "surname"
+            template: "{{ .LastName }}"
+        engine: "random"
+      dynamic_params:
+        gender:
+          column: sex
+
+

Result:

+ + + + + + + + + + +
ColumnOriginalValueTransformedValue
nameJohnMartin
surnameDoeMueller
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_phone_number/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_phone_number/index.html new file mode 100644 index 00000000..3d7dd32a --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_phone_number/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomPhoneNumber - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + +

RandomPhoneNumber

+ +

The RandomPhoneNumber transformer is developed to populate specified database columns with random phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomPhoneNumber transformer utilizes algorithms capable of generating random phone numbers with various formats and injects them into the designated database column. This feature allows for the creation of diverse and realistic contact information in datasets for development, testing, or data anonymization purposes.

+

Example: Populate random phone numbers for the contact_information table

+

This example demonstrates configuring the RandomPhoneNumber transformer to populate the phone_number column in the contact_information table with random phone numbers. It is an effective method for simulating a variety of contact information entries.

+
RandomPhoneNumber transformer example
- schema: "public"
+  name: "contact_information"
+  transformers:
+    - name: "RandomPhoneNumber"
+      params:
+        column: "phone_number"
+        keep_null: false
+
+

In this configuration, the phone_number column will be updated with random phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where phone number information is not applicable or provided.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_sentence/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_sentence/index.html new file mode 100644 index 00000000..c359d255 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_sentence/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomSentence - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomSentence

+ +

The RandomSentence transformer is designed to populate specified database columns with random sentences. Ideal for simulating natural language text for user comments, testing NLP systems, or anonymizing textual data in databases.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomSentence transformer employs complex text generation algorithms or libraries to generate random sentences, injecting them into a designated database column without the need for specifying sentence length. This flexibility ensures the creation of varied and plausible text for a wide range of applications.

+

Example: Populate random sentences for the comments table

+

This example shows how to configure the RandomSentence transformer to populate the comment column in the comments table with random sentences. It is a straightforward method for simulating diverse user-generated content.

+
RandomSentence transformer example
- schema: "public"
+  name: "comments"
+  transformers:
+    - name: "RandomSentence"
+      params:
+        column: "comment"
+        keep_null: false
+
+

In this configuration, the comment column will be updated with random sentences for each entry, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values in the column will be preserved, maintaining the integrity of records where comments are not applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_string/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_string/index.html new file mode 100644 index 00000000..f87fcdd1 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_string/index.html @@ -0,0 +1,3390 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomString - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomString

+ +

Generate a random string using the provided characters within the specified length range.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
min_lengthThe minimum length of the generated stringYes-
max_lengthThe maximum length of the generated stringYes-
symbolsThe range of characters that can be used in the random stringabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZNo-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomString transformer generates a random string with a length between min_length and max_length using the +characters specified in the symbols string as the possible set of characters. The behaviour for NULL values can be +configured using the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate a random string for accountnumber

+

In the following example, a random string is generated for the accountnumber column with a length range from 9 +to 12. The +character set used for generation includes 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.

+
RandomString transformer example
- schema: "purchasing"
+  name: "vendor"
+  transformers:
+    - name: "RandomString"
+      params:
+        column: "accountnumber"
+        min_length: 9
+        max_length: 12
+        symbols: "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
accountnumberAUSTRALI00014VUI6P2OZ
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_timezone/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_timezone/index.html new file mode 100644 index 00000000..6efc8a65 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_timezone/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomTimezone - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomTimezone

+ +

The RandomTimezone transformer is designed to populate specified database columns with random timezone strings. This transformer is particularly useful for applications that require the simulation of global user data, testing of timezone-related functionalities, or anonymizing real user timezone information in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing a comprehensive library or algorithm for generating timezone data, the RandomTimezone transformer provides random timezone strings (e. g., "America/New_York", "Europe/London") for database columns. This feature enables the creation of diverse and realistic datasets by simulating timezone information for user profiles, event timings, or any other data requiring timezone context.

+

Example: Populate random timezone strings for the user_accounts table

+

This example demonstrates how to configure the RandomTimezone transformer to populate the timezone column in the user_accounts table with random timezone strings, enhancing the dataset with varied global user representations.

+
RandomTimezone transformer example
- schema: "public"
+  name: "user_accounts"
+  transformers:
+    - name: "RandomTimezone"
+      params:
+        column: "timezone"
+        keep_null: false
+
+

With this configuration, every entry in the timezone column will be updated with a random timezone string, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values within the column will remain unchanged, preserving the integrity of rows without specified timezone data.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_toll_free_phone_number/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_toll_free_phone_number/index.html new file mode 100644 index 00000000..31d3f5e8 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_toll_free_phone_number/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomTollFreePhoneNumber - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomTollFreePhoneNumber

+ +

The RandomTollFreePhoneNumber transformer is designed to populate specified database columns with random toll-free phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets while focusing on toll-free numbers.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomTollFreePhoneNumber transformer utilizes algorithms capable of generating random toll-free phone numbers with various formats and injects them into the designated database column. This feature allows for the creation of diverse and realistic toll-free contact information in datasets for development, testing, or data anonymization purposes.

+

Example: Populate random toll-free phone numbers for the contact_information table

+

This example demonstrates configuring the RandomTollFreePhoneNumber transformer to populate the phone_number column in the contact_information table with random toll-free phone numbers. It is an effective method for simulating a variety of contact information entries with toll-free numbers.

+
RandomTollFreePhoneNumber transformer example
- schema: "public"
+  name: "contact_information"
+  transformers:
+    - name: "RandomTollFreePhoneNumber"
+      params:
+        column: "phone_number"
+        keep_null: false
+
+

In this configuration, the phone_number column will be updated with random toll-free phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where toll-free phone number information is not applicable or provided.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_unix_timestamp/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_unix_timestamp/index.html new file mode 100644 index 00000000..49aad3ed --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_unix_timestamp/index.html @@ -0,0 +1,3481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomUnixTimestamp - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

RandomUnixTimestamp

+ +

The RandomUnixTimestamp transformer generates random Unix time values (timestamps) for specified database columns. It +is +particularly useful for populating columns with timestamp data, simulating time-related data, or anonymizing actual +timestamps in a dataset.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesint2, int4, int8
minThe minimum threshold date for the random value in unix timestamp format (integer) with sec unit by defaultYes-
maxThe maximum threshold date for the random value in unix timestamp format (integer) with sec unit by defaultYes-
unitGenerated unix timestamp value unit. Possible values [second, millisecond, microsecond, nanosecond]secondYes-
min_unitMin unix timestamp threshold date unit. Possible values [second, millisecond, microsecond, nanosecond]secondYes-
max_unitMin unix timestamp threshold date unit. Possible values [second, millisecond, microsecond, nanosecond]secondYes-
keep_nullIndicates whether NULL values should be preservedfalseNo-
truncateTruncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default.No-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomUnixTimestamp transformer generates random Unix timestamps within the provided interval, starting from min +to max. The min and max parameters are expected to be in Unix timestamp format. The min_unit and max_unit +parameters specify the unit of the Unix timestamp threshold date. The truncate parameter allows you to truncate the +date to the specified part of the date. The keep_null parameter allows you to specify whether NULL values should be +preserved or replaced with transformed values.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Generate random Unix timestamps with dynamic parameters

+

In this example, the RandomUnixTimestamp transformer generates random Unix timestamps using dynamic parameters. The +min parameter is set to the created_at column, which is converted to Unix seconds using the TimestampToUnixSec. +The max parameter is set to a fixed value. The paid_at column is populated with random Unix timestamps in the +range from created_at to 1715934239 (Unix timestamp for 2024-05-17 12:03:59). The unit parameter is set to +millisecond because the paid_at column stores timestamps in milliseconds.

+
CREATE TABLE transactions
+(
+    id         SERIAL PRIMARY KEY,
+    kind       VARCHAR(255),
+    total      DECIMAL(10, 2),
+    created_at TIMESTAMP,
+    paid_at    BIGINT -- stores milliseconds since the epoch
+);
+
+-- Inserting data with milliseconds timestamp
+INSERT INTO transactions (kind, total, created_at, paid_at)
+VALUES ('Sale', 199.99, '2023-05-17 12:00:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-17 12:05:00') * 1000)),
+       ('Refund', 50.00, '2023-05-18 15:00:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-18 15:10:00') * 1000)),
+       ('Sale', 129.99, '2023-05-19 10:30:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-19 10:35:00') * 1000));
+
+
RandomUnixTimestamp transformer example
- schema: "public"
+  name: "transactions"
+  transformers:
+    - name: "RandomUnixTimestamp"
+      params:
+        column: "paid_at"
+        max: 1715934239
+        unit: "millisecond"
+        min_unit: "second"
+        max_unit: "second"
+      dynamic_params:
+        min:
+          column: "created_at"
+          cast_to: "TimestampToUnixSec"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
paid_at16843251000001708919030732
+ +

Example: Generate simple random Unix timestamps

+

In this example, the RandomUnixTimestamp transformer generates random Unix timestamps for the paid_at column in the +range from 1615934239 (Unix timestamp for 2021-03-16 12:03:59) to 1715934239 (Unix timestamp +for 2024-05-17 12:03:59). The unit parameter is set to millisecond because the paid_at column stores timestamps +in milliseconds.

+
- schema: "public"
+  name: "transactions"
+  transformers:
+    - name: "RandomUnixTimestamp"
+      params:
+        column: "paid_at"
+        min: 1615934239
+        max: 1715934239
+        unit: "millisecond"
+
+

Result:

+ + + + + + + +
ColumnOriginalValueTransformedValue
paid_at16843251000001655768292548
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_url/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_url/index.html new file mode 100644 index 00000000..a0637a2f --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_url/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomURL - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomURL

+ +

The RandomURL transformer is designed to populate specified database columns with random URL (Uniform Resource Locator) addresses. This tool is highly beneficial for simulating web content, testing applications that require URL input, or anonymizing real web addresses in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

Utilizing advanced algorithms or libraries for generating URL strings, the RandomURL transformer injects random, plausible URLs into the designated database column. Each generated URL is structured to include the protocol (e. g., "http://", "https://"), domain name, and path, offering a realistic range of web addresses for various applications.

+

Example: Populate random URLs for the webpages table

+

This example illustrates how to configure the RandomURL transformer to populate the page_url column in a webpages table with random URLs, providing a broad spectrum of web addresses for testing or data simulation purposes.

+
RandomURL transformer example
- schema: "public"
+  name: "webpages"
+  transformers:
+    - name: "RandomURL"
+      params:
+        column: "page_url"
+        keep_null: false
+
+

With this configuration, the page_url column will be filled with random URLs for each entry, replacing any existing non-NULL values. Setting the keep_null parameter to true allows for the preservation of existing NULL values within the column, accommodating scenarios where URL data may be intentionally omitted.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_username/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_username/index.html new file mode 100644 index 00000000..65549ec3 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_username/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomUsername - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomUsername

+ +

The RandomUsername transformer is crafted to populate specified database columns with random usernames. This utility is crucial for applications that require the simulation of user data, testing systems with user login functionality, or anonymizing real usernames in datasets.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

By employing sophisticated algorithms or libraries capable of generating believable usernames, the RandomUsername transformer introduces random usernames into the specified database column. Each generated username is designed to be unique and plausible, incorporating a mix of letters, numbers, and possibly special characters, depending on the generation logic used.

+

Example: Populate random usernames for the user_accounts table

+

This example demonstrates configuring the RandomUsername transformer to populate the username column in a user_accounts table with random usernames. This setup is ideal for creating a diverse and realistic user base for development, testing, or demonstration purposes.

+
RandomUsername transformer example
- schema: "public"
+  name: "user_accounts"
+  transformers:
+    - name: "RandomUsername"
+      params:
+        column: "username"
+        keep_null: false
+
+

In this configuration, every entry in the username column will be updated with a random username, replacing any existing non-NULL values. If the keep_null parameter is set to true, then the transformer will preserve existing NULL values within the column, maintaining data integrity where usernames are not applicable or available.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_uuid/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_uuid/index.html new file mode 100644 index 00000000..a06958d6 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_uuid/index.html @@ -0,0 +1,3364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomUuid - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomUuid

+ +

Generate random unique user ID using version 4.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar, uuid
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
engineThe engine used for generating the values [random, hash]. Use hash for deterministic generationrandomNo-
+

Description

+

The RandomUuid transformer generates a random UUID. The behaviour for NULL values can be configured using +the keep_null parameter.

+

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the +engines in the Transformation engines section.

+

Example: Updating the rowguid column

+

The following example replaces original UUID values of the rowguid column to randomly generated ones.

+
RandomUuid transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+  - name: "RandomUuid"
+    params:
+      column: "rowguid"
+      keep_null: false
+
+

Result

+ + + + + + + +
ColumnOriginalValueTransformedValue
rowguidf01251e5-96a3-448d-981e-0f99d789110d8ed8c4b2-7e7a-1e8d-f0f0-768e0e8ed0d0
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_word/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_word/index.html new file mode 100644 index 00000000..7dbecbf7 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_word/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomWord - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomWord

+ +

The RandomWord transformer populates specified database columns with random words. Ideal for simulating textual content, enhancing linguistic datasets, or anonymizing text in databases.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomWord transformer employs a mechanism to inject random words into a designated database column, supporting the generation of linguistically plausible and contextually diverse text. This transformer is particularly beneficial for creating rich text datasets for development, testing, or educational purposes without specifying the language, focusing on versatility and ease of use.

+

Example: Populate random words for the content table

+

This example demonstrates configuring the RandomWord transformer to populate the tag column in the content table with random words. It is a straightforward approach to adding varied textual data for tagging or content categorization.

+
RandomWord transformer example
- schema: "public"
+  name: "content"
+  transformers:
+    - name: "RandomWord"
+      params:
+        column: "tag"
+        keep_null: false
+
+

In this setup, the tag column will be updated with random words for each entry, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values in the column will remain unchanged, maintaining data integrity for records where textual data is not applicable.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/random_year_string/index.html b/v0.2.5/built_in_transformers/standard_transformers/random_year_string/index.html new file mode 100644 index 00000000..2de5fe82 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/random_year_string/index.html @@ -0,0 +1,3346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RandomYearString - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RandomYearString

+ +

The RandomYearString transformer is designed to populate specified database columns with random year strings. It is ideal for scenarios that require the representation of years without specific dates, such as manufacturing years of products, birth years of users, or any other context where only the year is relevant.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar, int2, int4, int8, numeric
keep_nullIndicates whether NULL values should be preservedfalseNo-
+

Description

+

The RandomYearString transformer leverages the faker library to generate strings representing random years. This allows for the easy generation of year data in a string format, adding versatility and realism to datasets that need to simulate or anonymize year-related information.

+

Example: Populate random year strings for the products table

+

This example shows how to use the RandomYearString transformer to fill the manufacturing_year column in the products table with random year strings, simulating the diversity of manufacturing dates.

+
RandomYearString transformer example
- schema: "public"
+  name: "products"
+  transformers:
+    - name: "RandomYearString"
+      params:
+        column: "manufacturing_year"
+        keep_null: false
+
+

In this configuration, the manufacturing_year column will be populated with random year strings, replacing any existing non-NULL values. If keep_null is set to true, then existing NULL values in the column will be preserved.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/real_address/index.html b/v0.2.5/built_in_transformers/standard_transformers/real_address/index.html new file mode 100644 index 00000000..e2a1f7a6 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/real_address/index.html @@ -0,0 +1,3408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RealAddress - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RealAddress

+ +

Generates real addresses for specified database columns using the faker library. It supports customization of the generated address format through Go templates.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NamePropertiesDescriptionDefaultRequiredSupported DB types
columnsSpecifies the affected column names along with additional properties for each columnYesVarious
nameThe name of the column to be affectedYesstring
templateA Go template string for formatting real address attributesYesstring
keep_nullIndicates whether NULL values should be preservedNobool
+

Template value descriptions

+

The template parameter allows for the injection of real address attributes into a customizable template. The following values can be included in your template:

+
    +
  • {{.Address}} — street address or equivalent
  • +
  • {{.City}} — city name
  • +
  • {{.State}} — state, province, or equivalent region name
  • +
  • {{.PostalCode}} — postal or ZIP code
  • +
  • {{.Latitude}} — geographic latitude
  • +
  • {{.Longitude}} — geographic longitude
  • +
+

These placeholders can be combined and formatted as desired within the template string to generate custom address formats.

+

Description

+

The RealAddress transformer uses the faker library to generate realistic addresses, which can then be formatted according to a specified template and applied to selected columns in a database. It allows for the generated addresses to replace existing values or to preserve NULL values, based on the transformer's configuration.

+

Example: Generate Real addresses for the employee table

+

This example shows how to configure the RealAddress transformer to generate real addresses for the address column in the employee table, using a custom format.

+
RealAddress transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+    - name: "RealAddress"
+      params:
+        columns:
+          - name: "address"
+            template: "{{.Address}}, {{.City}}, {{.State}} {{.PostalCode}}"
+            keep_null: false
+
+

This configuration will generate real addresses with the format "Street address, city, state postal code" and apply them to the address column, replacing any existing non-NULL values.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/regexp_replace/index.html b/v0.2.5/built_in_transformers/standard_transformers/regexp_replace/index.html new file mode 100644 index 00000000..020a22bd --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/regexp_replace/index.html @@ -0,0 +1,3364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + RegexpReplace - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

RegexpReplace

+ +

Replace a string using a regular expression.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYestext, varchar
regexpThe regular expression pattern to search for in the column's valueYes-
replaceThe replacement value. This value may be replaced with a captured group from the regexp parameter.Yes-
+

Description

+

The RegexpReplace transformer replaces a string according to the applied regular expression. The valid regular expressions syntax is the same as the general syntax used by Perl, Python, and other languages. To be precise, it is the syntax accepted by RE2 and described in the Golang documentation, except for \C.

+

Example: Removing leading prefix from loginid column value

+

In the following example, the original values from loginid matching the adventure-works\{{ id_name }} format are replaced with {{ id_name }}.

+
RegexpReplace transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+  - name: "RegexpReplace"
+    params:
+      column: "loginid"
+      regexp: "adventure-works\\\\(.*)"
+      replace: "$1"
+
+
Expected result
| column name | original value       | transformed |
+|-------------|----------------------|-------------|
+| loginid     | adventure-works\ken0 | ken0        |
+
+
+

Note

+

YAML has control symbols, and using them without escaping may result in an error. In the example above, the prefix +of id is separated by the \ symbol. Since this symbol is a control symbol, we must escape it using \\. +However, the '\' symbol is also a control symbol for regular expressions, which is why we need to +double-escape it as \\\\.

+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/replace/index.html b/v0.2.5/built_in_transformers/standard_transformers/replace/index.html new file mode 100644 index 00000000..474d2169 --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/replace/index.html @@ -0,0 +1,3367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Replace - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Replace

+ +

Replace an original value by the provided one.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesany
replaceThe value to replaceYes-
keep_nullIndicates whether NULL values should be replaced with transformed values or nottrueNo-
validatePerforms a decoding procedure via the PostgreSQL driver using the column type to ensure that values have correct typetrueNo-
+

Description

+

The Replace transformer replace an original value from the specified column with the provided one. It can optionally run a validation check with the validate parameter to ensure that the values are of a correct type before starting transformation. The behaviour for NULL values can be configured using the keep_null parameter.

+

Example: Updating the jobtitle column

+

In the following example, the provided value: "programmer" is first validated through driver decoding. If the current value of the +jobtitle column is not NULL, it will be replaced with programmer. If the current value is NULL, it will +remain NULL.

+
Replace transformer example
- schema: "humanresources"
+  name: "employee"
+  transformers:
+  - name: "Replace"
+    params:
+      column: "jobtitle"
+      value: "programmer"
+      keep_null: false
+      validate: true
+
+
Expected result
| column name | original value          | transformed |
+|-------------|-------------------------|-------------|
+| jobtitle    | Chief Executive Officer | programmer  |
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/standard_transformers/set_null/index.html b/v0.2.5/built_in_transformers/standard_transformers/set_null/index.html new file mode 100644 index 00000000..cf00cfde --- /dev/null +++ b/v0.2.5/built_in_transformers/standard_transformers/set_null/index.html @@ -0,0 +1,3354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + SetNull - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

SetNull

+ +

Set NULL value to a column.

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultRequiredSupported DB types
columnThe name of the column to be affectedYesany
+

Description

+

The SetNull transformer assigns NULL value to a column. This transformer generates warning if the affected column has NOT NULL constraint.

+
NULL constraint violation warning
{
+  "hash": "5a229ee964a4ba674a41a4d63dab5a8c",
+  "meta": {
+    "ColumnName": "jobtitle",
+    "ConstraintType": "NotNull",
+    "ParameterName": "column",
+    "SchemaName": "humanresources",
+    "TableName": "employee",
+    "TransformerName": "SetNull"
+  },
+  "msg": "transformer may produce NULL values but column has NOT NULL constraint",
+  "severity": "warning"
+}
+
+

Example: Set NULL value to updated_at column

+
SetNull transformer example
- schema: "humanresources"
+  name: "employee"
+  transformation:
+    - name: "SetNull"
+      params:
+        column: "jobtitle"
+
+
Expected result
| column name | original value          | transformed |
+|-------------|-------------------------|-------------|
+| jobtitle    | Chief Executive Officer | NULL        |
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/transformation_condition/index.html b/v0.2.5/built_in_transformers/transformation_condition/index.html new file mode 100644 index 00000000..38be1283 --- /dev/null +++ b/v0.2.5/built_in_transformers/transformation_condition/index.html @@ -0,0 +1,3538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Transformation conditions - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Transformation Condition

+

Description

+

The transformation condition feature allows you to execute a defined transformation only if a specified condition is +met. +The condition must be defined as a boolean expression that evaluates to true or false. Greenmask uses +expr-lang/expr under the hood. You can use all functions and syntax provided by the +expr library.

+

You can use the same functions that are described in +the built-in transformers

+

The transformers are executed one by one - this helps you create complex transformation pipelines. For instance +depending on value chosen in the previous transformer, you can decide to execute the next transformer or not.

+

Record descriptors

+

To improve the user experience, Greenmask offers special namespaces for accessing values in different formats: either +the driver-encoded value in its real type or as a raw string.

+
    +
  • record: This namespace provides the record value in its actual type.
  • +
  • raw_record: This namespace provides the record value as a string.
  • +
+

You can access a specific column’s value using record.column_name for the real type or raw_record.column_name for +the raw string value.

+
+

Warning

+

A record may always be modified by previous transformers before the condition is evaluated. This means Greenmask does +not retain the original record value and instead provides the current modified value for condition evaluation.

+
+

Null values condition

+

To check if the value is null, you can use null value for the comparisson. This operation works compatibly +with SQL operator IS NULL or IS NOT NULL.

+
Is null cond example
record.accountnumber == null && record.date > now()
+
+
Is not null cond example
record.accountnumber != null && record.date <= now()
+
+

Expression scope

+

Expression scope can be on table or specific transformer. If you define the condition on the table scope, then the +condition will be evaluated before any transformer is executed. If you define the condition on the transformer scope, +then the condition will be evaluated before the specified transformer is executed.

+
Table scope
- schema: "purchasing"
+  name: "vendor"
+  when: 'record.accountnumber == null || record.accountnumber == "ALLENSON0001"'
+  transformers:
+    - name: "RandomString"
+      params:
+        column: "accountnumber"
+        min_length: 9
+        max_length: 12
+        symbols: "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+
Transformer scope
- schema: "purchasing"
+  name: "vendor"
+  transformers:
+    - name: "RandomString"
+      when: 'record.accountnumber != null || record.accountnumber == "ALLENSON0001"'
+      params:
+        column: "accountnumber"
+        min_length: 9
+        max_length: 12
+        symbols: "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+

Int and float value definition

+

It is important to create the integer or float value in the correct format. If you want to define the integer value you +must write a number without dot (1, 2, etc.). If you want to define the float value you must write a number with +dot (1.0, 2.0, etc.).

+
+

Warning

+

You may see a wrong comparison result if you compare int and float, for example 1 == 1.0 will return false.

+
+

Architecture

+

Greenmask encodes the way only when evaluating the condition - this allows to optimize the performance of the +transformation if you have a lot of conditions that uses or (||) or and (&&) operators.

+

Example: Chose random value and execute one of

+

In the following example, the RandomChoice transformer is used to choose a random value from the list of values. +Depending on the chosen value, the Replace transformer is executed to set the activeflag column to true or +false.

+

In this case the condition scope is on the transformer level.

+
- schema: "purchasing"
+  name: "vendor"
+  transformers:
+    - name: "RandomChoice"
+      params:
+        column: "name"
+        values:
+          - "test1"
+          - "test2"
+
+    - name: "Replace"
+      when: 'record.name == "test1"'
+      params:
+        column: "activeflag"
+        value: "false"
+
+    - name: "Replace"
+      when: 'record.name == "test2"'
+      params:
+        column: "activeflag"
+        value: "true"
+
+

Example: Do not transform specific columns

+

In the following example, the RandomString transformer is executed only if the businessentityid column value is not +equal to 1492 or 1.

+
  - schema: "purchasing"
+    name: "vendor"
+    when: '!(record.businessentityid | has([1492, 1]))'
+    transformers:
+      - name: "RandomString"
+        params:
+          column: "accountnumber"
+          min_length: 9
+          max_length: 12
+          symbols: "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+

Example: Check the json attribute value

+

In the following example, the RandomString transformer is executed only if the a attribute in the json_data column +is equal to 1.

+
- schema: "public"
+  name: "jsondata"
+  when: 'raw_record.json_data | jsonGet("a") == 1'
+  transformers:
+    - name: "RandomString"
+      params:
+        column: "accountnumber"
+        min_length: 9
+        max_length: 12
+        symbols: "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/transformation_engines/index.html b/v0.2.5/built_in_transformers/transformation_engines/index.html new file mode 100644 index 00000000..47b9ffc7 --- /dev/null +++ b/v0.2.5/built_in_transformers/transformation_engines/index.html @@ -0,0 +1,3471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Transformation engines - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Transformation engine

+

The greenmask provides two engines random and hash. Most of the transformers has engine parameters that +by default is set to random. Use hash engine when you need to generate deterministic data - the same input +will always produce the same output.

+
+

Info

+

Greenmask employs the SHA-3 algorithm to hash input values. While this function is cryptographically secure, it does +exhibit lower performance. We plan to introduce additional hash functions in the future to offer a balance between +security and performance. For example, SipHash, which provides a good trade-off between security and performance, is +currently in development and is expected to be included in the stable v0.2 release of Greenmask.

+
+
+

Warning

+

The hash engine does not guarantee the uniqueness of generated values. Although transformers such as Hash, +RandomEmail, and RandomUuid typically have a low probability of producing duplicate values The feature to +ensure uniqueness is currently under development at Greenmask and is expected to be released in future updates. +For the latest status, please visit the Greenmask roadmap.

+
+

Details

+

Example schema

+

The next examples will be run on the following schema and sample data:

+
CREATE TABLE account
+(
+    id         SERIAL PRIMARY KEY,
+    gender     VARCHAR(1) NOT NULL,
+    email      TEXT       NOT NULL NOT NULL UNIQUE,
+    first_name TEXT       NOT NULL,
+    last_name  TEXT       NOT NULL,
+    birth_date DATE,
+    created_at TIMESTAMP  NOT NULL DEFAULT NOW()
+);
+
+INSERT INTO account (first_name, gender, last_name, birth_date, email)
+VALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');
+
+CREATE TABLE orders
+(
+    id          SERIAL PRIMARY KEY,
+    account_id  INTEGER REFERENCES account (id),
+    total_price NUMERIC(10, 2),
+    created_at  TIMESTAMP NOT NULL DEFAULT NOW(),
+    paid_at     TIMESTAMP
+);
+
+INSERT INTO orders (account_id, total_price, created_at, paid_at)
+VALUES (1, 100.50, '2024-05-01', '2024-05-02'),
+       (1, 200.75, '2024-05-03', NULL);
+
+

Random engine

+

The random engine serves as the default engine for the greenmask. It operates using a pseudo-random number generator, +which is initialized with a random seed sourced from a cryptographically secure random number generator. Employ the +random engine when you need to generate random data and do not require reproducibility of the same transformation +results with the same input.

+

The following example demonstrates how to configure the RandomDate transformer to generate random.

+
- schema: "public"
+  name: "account"
+  transformers:
+    - name: "RandomDate"
+      params:
+        column: "birth_date"
+        engine: "random" # (1)
+        min: '1970-01-01'
+        max: '2000-01-01'
+
+
    +
  1. random engine is explicitly specified, although it is the default value.
  2. +
+

Results:

+ + + + + + + +
ColumnOriginalValueTransformedValue
birth_date1980-01-011970-02-23
+ +

Keep in mind that the random engine is always generates different values for the same input. For instance in we run +the previous example multiple times we will get different results.

+

Hash engine

+

The hash engine is designed to generate deterministic data. It uses the SHA-3 algorithm to hash the input value. The +hash engine is particularly useful when you need to generate the same output for the same input. For example, when you +want to transform values that are used as primary or foreign keys in a database.

+

For secure reason it is suggested set global greenmask salt via GREENMASK_GLOBAL_SALT environment variable. The salt +is added to the hash input to prevent the possibility of reverse engineering the original value from the hashed output. +The value is hex encoded with variadic length. For example, GREENMASK_GLOBAL_SALT=a5eddc84e762e810. +Generate a strong random salt and keep it secret.

+

The following example demonstrates how to configure the RandomInt transformer to generate deterministic data using the +hash engine. The public.account.id and public.orders.account_id columns will have the same values.

+
- schema: "public"
+  name: "account"
+  transformers:
+
+    - name: "RandomInt"
+      params:
+        column: "id"
+        engine: hash
+        min: 1
+        max: 2147483647
+
+- schema: "public"
+  name: "orders"
+  transformers:
+
+    - name: "RandomInt"
+      params:
+        column: "account_id"
+        engine: hash
+        min: 1
+        max: 2147483647
+
+

Result:

+
    +
  • public.account
  • +
+ + + + + + + +
ColumnOriginalValueTransformedValue
id1130162079
+ +
    +
  • public.orders
  • +
+ + + + + + + +
ColumnOriginalValueTransformedValue
account_id1130162079
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/built_in_transformers/transformation_inheritance/index.html b/v0.2.5/built_in_transformers/transformation_inheritance/index.html new file mode 100644 index 00000000..5f4402e1 --- /dev/null +++ b/v0.2.5/built_in_transformers/transformation_inheritance/index.html @@ -0,0 +1,3714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Transformation inheritance - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Transformation Inheritance

+

Description

+

If you have partitioned tables or want to apply a transformation to a primary key and propagate it to all tables +referencing that column, you can do so with Greenmask.

+

Apply for inherited

+

Using apply_for_inherited, you can apply transformations to all partitions of a partitioned table, including any +subpartitions.

+

Configuration conflicts

+

When a partition has a transformation defined manually via config, and apply_for_inherited is set on the parent table, +Greenmask will merge both the inherited and manually defined configurations. The manually defined transformation will +execute last, giving it higher priority.

+

If this situation occurs, you will see the following information in the log:

+
{
+  "level": "info",
+  "ParentTableSchema": "public",
+  "ParentTableName": "sales",
+  "ChildTableSchema": "public",
+  "ChildTableName": "sales_2022_feb",
+  "ChildTableConfig": [
+    {
+      "name": "RandomDate",
+      "params": {
+        "column": "sale_date",
+        "engine": "random",
+        "max": "2005-01-01",
+        "min": "2001-01-01"
+      }
+    }
+  ],
+  "time": "2024-11-03T22:14:01+02:00",
+  "message": "config will be merged: found manually defined transformers on the partitioned table"
+}
+
+

Apply for references

+

Using apply_for_references, you can apply transformations to columns involved in a primary key or in tables with a +foreign key that references that column. This simplifies the transformation process by requiring you to define the +transformation only on the primary key column, which will then be applied to all tables referencing that column.

+

The transformer must be deterministic or support hash engine and the hash engin must be set in the +configuration file.

+

List of transformers that supports apply_for_references:

+
    +
  • Hash
  • +
  • NoiseDate
  • +
  • NoiseFloat
  • +
  • NoiseInt
  • +
  • NoiseNumeric
  • +
  • RandomBool
  • +
  • RandomDate
  • +
  • RandomEmail
  • +
  • RandomFloat
  • +
  • RandomInt
  • +
  • RandomIp
  • +
  • RandomMac
  • +
  • RandomNumeric
  • +
  • RandomString
  • +
  • RandomUuid
  • +
  • RandomUnixTimestamp
  • +
+

End-to-End Identifiers

+

End-to-end identifiers in databases are unique identifiers that are consistently used across multiple tables in a +relational database schema, allowing for a seamless chain of references from one table to another. These identifiers +typically serve as primary keys in one table and are propagated as foreign keys in other tables, creating a direct, +traceable link from one end of a data relationship to the other.

+

Greenmask can detect end-to-end identifiers and apply transformations across the entire sequence of tables. These +identifiers are detected when the following condition is met: the foreign key serves as both a primary key and a foreign +key in the referenced table.

+

Configuration conflicts

+

When on the referenced column a transformation is manually defined via config, and the apply_for_references is set on +parent table, the transformation defined will be chosen and the inherited transformation will be ignored. You will +receive a INFO message in the logs.

+
{
+  "level": "info",
+  "TransformerName": "RandomInt",
+  "ParentTableSchema": "public",
+  "ParentTableName": "tablea",
+  "ChildTableSchema": "public",
+  "ChildTableName": "tablec",
+  "ChildColumnName": "id2",
+  "TransformerConfig": {
+    "name": "RandomInt",
+    "apply_for_references": true
+  },
+  "time": "2024-11-03T21:28:10+02:00",
+  "message": "skipping apply transformer for reference: found manually configured transformer"
+}
+
+

Limitations

+
    +
  • The transformation must be deterministic.
  • +
  • The transformation condition will not be applied to the referenced column.
  • +
  • Not all transformers support apply_for_references
  • +
+
+

Warning

+

We do not recommend using apply_for_references with transformation conditions, as these conditions are not +inherited by transformers on the referenced columns. This may lead to inconsistencies in the data.

+
+

Example 1. Partitioned tables

+

In this example, we have a partitioned table sales that is partitioned by year and then by month. Each partition +contains a subset of data based on the year and month of the sale. The sales table has a primary key sale_id and is +partitioned by sale_date. The sale_date column is transformed using the RandomDate transformer.

+
CREATE TABLE sales
+(
+    sale_id   SERIAL         NOT NULL,
+    sale_date DATE           NOT NULL,
+    amount    NUMERIC(10, 2) NOT NULL
+) PARTITION BY RANGE (EXTRACT(YEAR FROM sale_date));
+
+-- Step 2: Create first-level partitions by year
+CREATE TABLE sales_2022 PARTITION OF sales
+    FOR VALUES FROM (2022) TO (2023)
+    PARTITION BY LIST (EXTRACT(MONTH FROM sale_date));
+
+CREATE TABLE sales_2023 PARTITION OF sales
+    FOR VALUES FROM (2023) TO (2024)
+    PARTITION BY LIST (EXTRACT(MONTH FROM sale_date));
+
+-- Step 3: Create second-level partitions by month for each year, adding PRIMARY KEY on each partition
+
+-- Monthly partitions for 2022
+CREATE TABLE sales_2022_jan PARTITION OF sales_2022 FOR VALUES IN (1)
+    WITH (fillfactor = 70);
+CREATE TABLE sales_2022_feb PARTITION OF sales_2022 FOR VALUES IN (2);
+CREATE TABLE sales_2022_mar PARTITION OF sales_2022 FOR VALUES IN (3);
+-- Continue adding monthly partitions for 2022...
+
+-- Monthly partitions for 2023
+CREATE TABLE sales_2023_jan PARTITION OF sales_2023 FOR VALUES IN (1);
+CREATE TABLE sales_2023_feb PARTITION OF sales_2023 FOR VALUES IN (2);
+CREATE TABLE sales_2023_mar PARTITION OF sales_2023 FOR VALUES IN (3);
+-- Continue adding monthly partitions for 2023...
+
+-- Step 4: Insert sample data
+INSERT INTO sales (sale_date, amount)
+VALUES ('2022-01-15', 100.00);
+INSERT INTO sales (sale_date, amount)
+VALUES ('2022-02-20', 150.00);
+INSERT INTO sales (sale_date, amount)
+VALUES ('2023-03-10', 200.00);
+
+

To transform the sale_date column in the sales table and all its partitions, you can use the following +configuration:

+
- schema: public
+  name: sales
+  apply_for_inherited: true
+  transformers:
+    - name: RandomDate
+      params:
+        min: "2022-01-01"
+        max: "2022-03-01"
+        column: "sale_date"
+        engine: "random"
+
+

Example 2. Simple table references

+

This is ordinary table references where the primary key of the users table is referenced in the orders table.

+
-- Enable the extension for UUID generation (if not enabled)
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
+
+CREATE TABLE users
+(
+    user_id  UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+    username VARCHAR(50) NOT NULL
+);
+
+CREATE TABLE orders
+(
+    order_id   UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+    user_id    UUID REFERENCES users (user_id),
+    order_date DATE NOT NULL
+);
+
+INSERT INTO users (username)
+VALUES ('john_doe');
+INSERT INTO users (username)
+VALUES ('jane_smith');
+
+INSERT INTO orders (user_id, order_date)
+VALUES ((SELECT user_id FROM users WHERE username = 'john_doe'), '2024-10-31'),
+       ((SELECT user_id FROM users WHERE username = 'jane_smith'), '2024-10-30');
+
+

To transform the username column in the users table, you can use the following configuration:

+
- schema: public
+  name: users
+  apply_for_inherited: true
+  transformers:
+    - name: RandomUuid
+      apply_for_references: true
+      params:
+        column: "user_id"
+        engine: "hash"
+
+

This will apply the RandomUuid transformation to the user_id column in the orders table automatically.

+

Example 3. References on tables with end-to-end identifiers

+

In this example, we have three tables: tablea, tableb, and tablec. All tables have a composite primary key. +In the tables tableb and tablec, the primary key is also a foreign key that references the primary key of tablea. +This means that all PKs are end-to-end identifiers.

+
CREATE TABLE tablea
+(
+    id1  INT,
+    id2  INT,
+    data VARCHAR(50),
+    PRIMARY KEY (id1, id2)
+);
+
+CREATE TABLE tableb
+(
+    id1    INT,
+    id2    INT,
+    detail VARCHAR(50),
+    PRIMARY KEY (id1, id2),
+    FOREIGN KEY (id1, id2) REFERENCES tablea (id1, id2) ON DELETE CASCADE
+);
+
+CREATE TABLE tablec
+(
+    id1         INT,
+    id2         INT,
+    description VARCHAR(50),
+    PRIMARY KEY (id1, id2),
+    FOREIGN KEY (id1, id2) REFERENCES tableb (id1, id2) ON DELETE CASCADE
+);
+
+INSERT INTO tablea (id1, id2, data)
+VALUES (1, 1, 'Data A1'),
+       (2, 1, 'Data A2'),
+       (3, 1, 'Data A3');
+
+INSERT INTO tableb (id1, id2, detail)
+VALUES (1, 1, 'Detail B1'),
+       (2, 1, 'Detail B2'),
+       (3, 1, 'Detail B3');
+
+INSERT INTO tablec (id1, id2, description)
+VALUES (1, 1, 'Description C1'),
+       (2, 1, 'Description C2'),
+       (3, 1, 'Description C3');
+
+

To transform the data column in tablea, you can use the following configuration:

+
- schema: public
+  name: "tablea"
+  apply_for_inherited: true
+  transformers:
+    - name: RandomInt
+      apply_for_references: true
+      params:
+        min: 0
+        max: 100
+        column: "id1"
+        engine: "hash"
+    - name: RandomInt
+      apply_for_references: true
+      params:
+        min: 0
+        max: 100
+        column: "id2"
+        engine: "hash"
+
+

This will apply the RandomInt transformation to the id1 and id2 columns in tableb and tablec automatically.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/delete/index.html b/v0.2.5/commands/delete/index.html new file mode 100644 index 00000000..2102df49 --- /dev/null +++ b/v0.2.5/commands/delete/index.html @@ -0,0 +1,3239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + delete - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

delete command

+

Delete dump from the storage with a specific ID

+
Supported flags
Usage:
+  greenmask delete [flags] [dumpId]
+
+Flags:
+      --before-date string   delete dumps older than the specified date in RFC3339Nano format: 2021-01-01T00:00.0:00Z
+      --dry-run              do not delete anything, just show what would be deleted
+      --prune-failed         prune failed dumps
+      --prune-unsafe         prune dumps with "unknown-or-failed" statuses. Works only with --prune-failed
+      --retain-for string    retain dumps for the specified duration in format: 1w2d3h4m5s6ms7us8ns
+      --retain-recent int    retain the most recent N completed dumps (default -1)
+
+
delete dump by id
greenmask --config config.yml delete 1723643249862
+
+
delete dumps older than the specified date
greenmask --config config.yml delete --before-date 2021-01-01T00:00.0:00Z --dry-run 
+
+
prune failed dumps
greenmask --config config.yml delete --prune-failed --dry-run 
+
+
prune dumps with 'unknown-or-failed' statuses
greenmask --config config.yml delete --prune-failed --prune-unsafe --dry-run
+
+
retain dumps for the specified duration
greenmask --config config.yml delete --retain-for 1w5d --dry-run
+
+
retain the most recent N completed dumps
greenmask --config config.yml delete --retain-recent 5 --dry-run
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/dump/index.html b/v0.2.5/commands/dump/index.html new file mode 100644 index 00000000..3e5d2e34 --- /dev/null +++ b/v0.2.5/commands/dump/index.html @@ -0,0 +1,3362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + dump - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

dump

+ +

dump command

+

The dump command operates in the following way:

+
    +
  1. Dumps the data from the source database.
  2. +
  3. Validates the data for potential issues.
  4. +
  5. Applies the defined transformations.
  6. +
  7. Stores the transformed data in the specified storage location.
  8. +
+

Note that the dump command shares the same parameters and environment variables as pg_dump, +allowing you to configure the restoration process as needed.

+

Mostly it supports the same flags as the pg_dump utility, with some extra flags for Greenmask-specific features.

+
Supported flags
  -b, --blobs                           include large objects in dump
+  -c, --clean                           clean (drop) database objects before recreating
+  -Z, --compress int                    compression level for compressed formats (default -1)
+  -C, --create                          include commands to create database in dump
+  -a, --data-only                       dump only the data, not the schema
+  -d, --dbname string                   database to dump (default "postgres")
+      --disable-dollar-quoting          disable dollar quoting, use SQL standard quoting
+      --disable-triggers                disable triggers during data-only restore
+      --enable-row-security             enable row security (dump only content user has access to)
+  -E, --encoding string                 dump the data in encoding ENCODING
+  -N, --exclude-schema strings          dump the specified schema(s) only
+  -T, --exclude-table strings           do NOT dump the specified table(s)
+      --exclude-table-data strings      do NOT dump data for the specified table(s)
+  -e, --extension strings               dump the specified extension(s) only
+      --extra-float-digits string       override default setting for extra_float_digits
+  -f, --file string                     output file or directory name
+  -h, --host string                     database server host or socket directory (default "/var/run/postgres")
+      --if-exists                       use IF EXISTS when dropping objects
+      --include-foreign-data strings    use IF EXISTS when dropping objects
+  -j, --jobs int                        use this many parallel jobs to dump (default 1)
+      --load-via-partition-root         load partitions via the root table
+      --lock-wait-timeout int           fail after waiting TIMEOUT for a table lock (default -1)
+  -B, --no-blobs                        exclude large objects in dump
+      --no-comments                     do not dump comments
+  -O, --no-owner string                 skip restoration of object ownership in plain-text format
+  -X, --no-privileges                   do not dump privileges (grant/revoke)
+      --no-publications                 do not dump publications
+      --no-security-labels              do not dump security label assignments
+      --no-subscriptions                do not dump subscriptions
+      --no-sync                         do not wait for changes to be written safely to dis
+      --no-synchronized-snapshots       do not use synchronized snapshots in parallel jobs
+      --no-tablespaces                  do not dump tablespace assignments
+      --no-toast-compression            do not dump TOAST compression methods
+      --no-unlogged-table-data          do not dump unlogged table data
+      --pgzip                           use pgzip compression instead of gzip
+  -p, --port int                        database server port number (default 5432)
+      --quote-all-identifiers           quote all identifiers, even if not key words
+  -n, --schema strings                  dump the specified schema(s) only
+  -s, --schema-only string              dump only the schema, no data
+      --section string                  dump named section (pre-data, data, or post-data)
+      --serializable-deferrable         wait until the dump can run without anomalies
+      --snapshot string                 use given snapshot for the dump
+      --strict-names                    require table and/or schema include patterns to match at least one entity each
+  -S, --superuser string                superuser user name to use in plain-text format
+  -t, --table strings                   dump the specified table(s) only
+      --test string                     connect as specified database user (default "postgres")
+      --use-set-session-authorization   use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership
+  -U, --username string                 connect as specified database user (default "postgres")
+  -v, --verbose string                  verbose mode
+
+

Pgzip compression

+

By default, Greenmask uses gzip compression to restore data. In mist cases it is quite slow and does not utilize all +available resources and is a bootleneck for IO operations. To speed up the restoration process, you can use +the --pgzip flag to use pgzip compression instead of gzip. This method splits the data into blocks, which are +compressed in parallel, making it ideal for handling large volumes of data. The output remains a standard gzip file.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/index.html b/v0.2.5/commands/index.html new file mode 100644 index 00000000..a973b891 --- /dev/null +++ b/v0.2.5/commands/index.html @@ -0,0 +1,3253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Commands - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Commands

+

Introduction

+
Greenmask available commands
greenmask \
+--log-format=[json|text] \
+--log-level=[debug|info|error] \
+--config=config.yml \
+[dump|list-dumps|delete|list-transformers|show-transformer|restore|show-dump]`
+
+

You can use the following commands within Greenmask:

+
    +
  • list-transformers — displays a list of available transformers along with their documentation
  • +
  • show-transformer — displays information about the specified transformer
  • +
  • validate - performs a validation procedure by testing config, comparing transformed data, identifying +potential issues, and checking for schema changes.
  • +
  • dump — initiates the data dumping process
  • +
  • restore — restores data to the target database either by specifying a dumpId or using the latest available dump
  • +
  • list-dumps — lists all available dumps stored in the system
  • +
  • show-dump — provides metadata information about a particular dump, offering insights into its structure and + attributes
  • +
  • delete — deletes a specific dump from the storage
  • +
+

For any of the commands mentioned above, you can include the following common flags:

+
    +
  • --log-format — specifies the desired format for log output, which can be either json or text. This parameter is +optional, with the default format set to text.
  • +
  • --log-level — sets the desired level for log output, which can be one of debug, info, or error. This parameter +is optional, with the default log level being info.
  • +
  • --config — requires the specification of a configuration file in YAML format. This configuration file is mandatory +for Greenmask to operate correctly.
  • +
  • --help — displays comprehensive help information for Greenmask, providing guidance on its usage and available +commands.
  • +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/list-dumps/index.html b/v0.2.5/commands/list-dumps/index.html new file mode 100644 index 00000000..df6420ce --- /dev/null +++ b/v0.2.5/commands/list-dumps/index.html @@ -0,0 +1,3295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + list-dumps - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

list-dumps

+ +

list-dumps command

+

The list-dumps command provides a list of all dumps stored in the storage. The list includes the following attributes:

+
    +
  • ID — the unique identifier of the dump, used for operations like restore, delete, and show-dump
  • +
  • DATE — the date when the snapshot was created
  • +
  • DATABASE — the name of the database associated with the dump
  • +
  • SIZE — the original size of the dump
  • +
  • COMPRESSED SIZE — the size of the dump after compression
  • +
  • DURATION — the duration of the dump procedure
  • +
  • TRANSFORMED — indicates whether the dump has been transformed
  • +
  • STATUS — the status of the dump, which can be one of the following:
      +
    • done — the dump was completed successfully
    • +
    • in progress — the dump is currently being created
    • +
    • failed — the dump creation process failed
    • +
    • unknown or failed — the deprecated status of the dump that is used for failed dumps or dumps in progress for + version v0.1.14 and earlier
    • +
    +
  • +
+

Example of list-dumps output: +list_dumps_screen.png

+
+

Info

+

Greenmask uses a heartbeat mechanism to determine the status of a dump. +A dump is considered failed if it lacks a "done" heartbeat or if the last heartbeat timestamp exceeds 30 minutes. +Heartbeats are recorded every 15 minutes by the dump command while it is in progress. If greenmask fails unexpectedly, +the heartbeat stops being updated, and after 30 minutes (twice the interval), the dump is classified as failed. +The in progress status indicates that a dump is still ongoing.

+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/list-transformers/index.html b/v0.2.5/commands/list-transformers/index.html new file mode 100644 index 00000000..e2670492 --- /dev/null +++ b/v0.2.5/commands/list-transformers/index.html @@ -0,0 +1,3315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + list-transformers - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

list-transformers

+ +

list-transformers command

+

The list-transformers command provides a list of all the allowed transformers, including both standard and advanced +transformers. This list can be helpful for searching for an appropriate transformer for your data transformation needs.

+

To show a list of available transformers, use the following command:

+
greenmask --config=config.yml list-transformers
+
+

Supported flags:

+
    +
  • --format — allows to select the output format. There are two options available: text or json. The + default setting is text.
  • +
+

Example of list-transformers output:

+

list_transformers_screen.png

+

When using the list-transformers command, you receive a list of available transformers with essential information +about each of them. Below are the key parameters for each transformer:

+
    +
  • NAME — the name of the transformer
  • +
  • DESCRIPTION — a brief description of what the transformer does
  • +
  • COLUMN PARAMETER NAME — name of a column or columns affected by transformation
  • +
  • SUPPORTED TYPES — list the supported value types
  • +
+

The JSON call greenmask --config=config.yml list-transformers --format=json has the same attributes:

+
JSON format output
[
+  {
+    "name": "Cmd",
+    "description": "Transform data via external program using stdin and stdout interaction",
+    "parameters": [
+      {
+        "name": "columns",
+        "supported_types": [
+          "any"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "Dict",
+    "description": "Replace values matched by dictionary keys",
+    "parameters": [
+      {
+        "name": "column",
+        "supported_types": [
+          "any"
+        ]
+      }
+    ]
+  }
+]
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/restore/index.html b/v0.2.5/commands/restore/index.html new file mode 100644 index 00000000..ee5f95ad --- /dev/null +++ b/v0.2.5/commands/restore/index.html @@ -0,0 +1,3493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + restore - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

restore

+ +

restore command

+

The restore command is used to restore a database from a previously created dump. You can specify the dump to restore +by providing the dump ID or use the latest keyword to restore the latest completed dump.

+
greenmask --config=config.yml restore DUMP_ID
+
+

Alternatively, to restore the latest completed dump, use the following command:

+
greenmask --config=config.yml restore latest
+
+

Note that the restore command shares the same parameters and environment variables as pg_restore, +allowing you to configure the restoration process as needed.

+

Mostly it supports the same flags as the pg_restore utility, with some extra flags for Greenmask-specific features.

+
Supported flags
      --batch-size int                  the number of rows to insert in a single batch during the COPY command (0 - all rows will be inserted in a single batch)
+  -c, --clean                           clean (drop) database objects before recreating
+  -C, --create                          create the target database
+  -a, --data-only                       restore only the data, no schema
+  -d, --dbname string                   connect to database name (default "postgres")
+      --disable-triggers                disable triggers during data-only restore
+      --enable-row-security             enable row security
+  -N, --exclude-schema strings          do not restore objects in this schema
+  -e, --exit-on-error                   exit on error, default is to continue
+  -f, --file string                     output file name (- for stdout)
+  -P, --function strings                restore named function
+  -h, --host string                     database server host or socket directory (default "/var/run/postgres")
+      --if-exists                       use IF EXISTS when dropping objects
+  -i, --index strings                   restore named index
+      --inserts                         restore data as INSERT commands, rather than COPY
+  -j, --jobs int                        use this many parallel jobs to restore (default 1)
+      --list-format string              use table of contents in format of text, json or yaml (default "text")
+      --no-comments                     do not restore comments
+      --no-data-for-failed-tables       do not restore data of tables that could not be created
+  -O, --no-owner string                 skip restoration of object ownership
+  -X, --no-privileges                   skip restoration of access privileges (grant/revoke)
+      --no-publications                 do not restore publications
+      --no-security-labels              do not restore security labels
+      --no-subscriptions                ddo not restore subscriptions
+      --no-table-access-method          do not restore table access methods
+      --no-tablespaces                  do not restore tablespace assignments
+      --on-conflict-do-nothing          add ON CONFLICT DO NOTHING to INSERT commands
+      --overriding-system-value         use OVERRIDING SYSTEM VALUE clause for INSERTs
+      --pgzip                           use pgzip decompression instead of gzip
+  -p, --port int                        database server port number (default 5432)
+      --restore-in-order                restore tables in topological order, ensuring that dependent tables are not restored until the tables they depend on have been restored
+  -n, --schema strings                  restore only objects in this schema
+  -s, --schema-only                     restore only the schema, no data
+      --section string                  restore named section (pre-data, data, or post-data)
+  -1, --single-transaction              restore as a single transaction
+      --strict-names                    restore named section (pre-data, data, or post-data) match at least one entity each
+  -S, --superuser string                superuser user name to use for disabling triggers
+  -t, --table strings                   restore named relation (table, view, etc.)
+  -T, --trigger strings                 restore named trigger
+  -L, --use-list string                 use table of contents from this file for selecting/ordering output
+      --use-set-session-authorization   use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership
+  -U, --username string                 connect as specified database user (default "postgres")
+  -v, --verbose string                  verbose mode
+
+

Extra features

+

Inserts and error handling

+
+

Warning

+

Insert commands are a lot slower than COPY commands. Use this feature only when necessary.

+
+

By default, Greenmask restores data using the COPY command. If you prefer to restore data using INSERT commands, you +can +use the --inserts flag. This flag allows you to manage errors that occur during the execution of INSERT commands. By +configuring an error and constraint exclusion list in the config, +you can skip certain errors and continue inserting subsequent rows from the dump.

+

This can be useful when adding new records to an existing dump, but you don't want the process to stop if some records +already exist in the database or violate certain constraints.

+

By adding the --on-conflict-do-nothing flag, it generates INSERT statements with the ON CONFLICT DO NOTHING +clause, similar to the original pg_dump option. However, this approach only works for unique or exclusion constraints. +If a foreign key is missing in the referenced table or any other constraint is violated, the insertion will still fail. +To handle these issues, you can define +anexclusion list in the config.

+
example with inserts and error handling
```shell title="example with inserts and on conflict do nothing"
+greenmask --config=config.yml restore DUMP_ID --inserts --on-conflict-do-nothing
+
+

By adding the --overriding-system-value flag, it generates INSERT statements with the OVERRIDING SYSTEM VALUE +clause, which allows you to insert data into identity columns.

+
example of GENERATED ALWAYS AS IDENTITY column
CREATE TABLE people (
+    id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
+    generated text GENERATED ALWAYS AS (id || first_name) STORED,
+    first_name text
+);
+
+
example with inserts
greenmask --config=config.yml restore DUMP_ID --inserts --overriding-system-value
+
+

Restoration in topological order

+

By default, Greenmask restores tables in the order they are listed in the dump file. To restore tables in topological +order, use the --restore-in-order flag. This flag ensures that dependent tables are not restored until the tables they +depend on have been restored.

+

This is useful when you have the schema already created with foreign keys and other constraints, and you want to insert +data into the tables in the correct order or catch-up the target database with the new data.

+
+

Warning

+

Greenmask cannot guarantee restoration in topological order when the schema contains cycles. The only way to restore +tables with cyclic dependencies is to temporarily remove the foreign key constraint (to break the cycle), restore the +data, and then re-add the foreign key constraint once the data restoration is complete.

+
+

If your database has cyclic dependencies you will be notified about it but the restoration will continue.

+
2024-08-16T21:39:50+03:00 WRN cycle between tables is detected: cannot guarantee the order of restoration within cycle cycle=["public.employees","public.departments","public.projects","public.employees"]
+
+

Pgzip decompression

+

By default, Greenmask uses gzip decompression to restore data. In mist cases it is quite slow and does not utilize all +available resources and is a bootleneck for IO operations. To speed up the restoration process, you can use +the --pgzip flag to use pgzip decompression instead of gzip. This method splits the data into blocks, which are +decompressed in parallel, making it ideal for handling large volumes of data.

+
example with pgzip decompression
greenmask --config=config.yml restore latest --pgzip
+
+

Restore data batching

+

The COPY command returns the error only on transaction commit. This means that if you have a large dump and an error +occurs, you will have to wait until the end of the transaction to see the error message. To avoid this, you can use the +--batch-size flag to specify the number of rows to insert in a single batch during the COPY command. If an error +occurs during the batch insertion, the error message will be displayed immediately. The data will be committed only +if all batches are inserted successfully.

+

This is useful when you want to be notified of errors as immediately as possible without waiting for the entire +table to be restored.

+
+

Warning

+

The batch size should be chosen carefully. If the batch size is too small, the restoration process will be slow. If +the batch size is too large, you may not be able to identify the error row.

+
+

In the example below, the batch size is set to 1000 rows. This means that 1000 rows will be inserted in a single batch, +so you will be notified of any errors immediately after each batch is inserted.

+
example with batch size
greenmask --config=config.yml restore latest --batch-size 1000
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/show-dump/index.html b/v0.2.5/commands/show-dump/index.html new file mode 100644 index 00000000..2243360d --- /dev/null +++ b/v0.2.5/commands/show-dump/index.html @@ -0,0 +1,3874 @@ + + + + + + + + + + + + + + + + + + + + + + + + + show-dump - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

show-dump

+ +

show-dump command

+

This command provides details about all objects and data that can be restored, similar to the pg_restore -l command in +PostgreSQL. It helps you inspect the contents of the dump before performing the actual restoration.

+

Parameters:

+
    +
  • --format — format of printing. Can be text or json.
  • +
+

To display metadata information about a dump, use the following command:

+
greenmask --config=config.yml show-dump dumpID
+
+
+
+
+
+
+
;
+; Archive created at 2023-10-30 12:52:38 UTC
+; dbname: demo
+; TOC Entries: 17
+; Compression: -1
+; Dump Version: 15.4
+; Format: DIRECTORY
+; Integer: 4 bytes
+; Offset: 8 bytes
+; Dumped from database version: 15.4
+; Dumped by pg_dump version: 15.4
+;
+;
+; Selected TOC Entries:
+;
+3444; 0 0 ENCODING - ENCODING
+3445; 0 0 STDSTRINGS - STDSTRINGS
+3446; 0 0 SEARCHPATH - SEARCHPATH
+3447; 1262 24970 DATABASE - demo postgres
+3448; 0 0 DATABASE PROPERTIES - demo postgres
+222; 1259 24999 TABLE bookings flights postgres
+223; 1259 25005 SEQUENCE bookings flights_flight_id_seq postgres
+3460; 0 0 SEQUENCE OWNED BY bookings flights_flight_id_seq postgres
+3281; 2604 25030 DEFAULT bookings flights flight_id postgres
+3462; 0 24999 TABLE DATA bookings flights postgres
+3289; 2606 25044 CONSTRAINT bookings flights flights_flight_no_scheduled_departure_key postgres
+3291; 2606 25046 CONSTRAINT bookings flights flights_pkey postgres
+3287; 1259 42848 INDEX bookings flights_aircraft_code_status_idx postgres
+3292; 1259 42847 INDEX bookings flights_status_aircraft_code_idx postgres
+3293; 2606 25058 FK CONSTRAINT bookings flights flights_aircraft_code_fkey postgres
+3294; 2606 25063 FK CONSTRAINT bookings flights flights_arrival_airport_fkey postgres
+3295; 2606 25068 FK CONSTRAINT bookings flights flights_departure_airport_fkey postgres
+
+
+
+
+

  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
{
+  "startedAt": "2023-10-29T20:50:19.948017+02:00", // (1)
+  "completedAt": "2023-10-29T20:50:22.19333+02:00", // (2)
+  "originalSize": 4053842, // (3)
+  "compressedSize": 686557, // (4)
+  "transformers": [ // (5)
+    {
+      "Schema": "bookings", // (6)
+      "Name": "flights", // (7)
+      "Query": "", // (8)
+      "Transformers": [ // (9)
+        {
+          "Name": "RandomDate", // (10)
+          "Params": { // (11)
+            "column": "c2NoZWR1bGVkX2RlcGFydHVyZQ==",
+            "max": "MjAyMy0wMS0wMiAwMDowMDowMC4wKzAz",
+            "min": "MjAyMy0wMS0wMSAwMDowMDowMC4wKzAz"
+          }
+        }
+      ],
+      "ColumnsTypeOverride": null // (12)
+    }
+  ],
+  "header": { // (13)
+    "creationDate": "2023-10-29T20:50:20+02:00",
+    "dbName": "demo",
+    "tocEntriesCount": 15,
+    "dumpVersion": "16.0 (Homebrew)",
+    "format": "TAR",
+    "integer": 4,
+    "offset": 8,
+    "dumpedFrom": "16.0 (Debian 16.0-1.pgdg120+1)",
+    "dumpedBy": "16.0 (Homebrew)",
+    "tocFileSize": 8090,
+    "compression": 0
+  },
+  "entries": [ // (14)
+    {
+      "dumpId": 3416,
+      "databaseOid": 0,
+      "objectOid": 0,
+      "objectType": "ENCODING",
+      "schema": "",
+      "name": "ENCODING",
+      "owner": "",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 3417,
+      "databaseOid": 0,
+      "objectOid": 0,
+      "objectType": "STDSTRINGS",
+      "schema": "",
+      "name": "STDSTRINGS",
+      "owner": "",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 3418,
+      "databaseOid": 0,
+      "objectOid": 0,
+      "objectType": "SEARCHPATH",
+      "schema": "",
+      "name": "SEARCHPATH",
+      "owner": "",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 3419,
+      "databaseOid": 16384,
+      "objectOid": 1262,
+      "objectType": "DATABASE",
+      "schema": "",
+      "name": "demo",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 3420,
+      "databaseOid": 0,
+      "objectOid": 0,
+      "objectType": "DATABASE PROPERTIES",
+      "schema": "",
+      "name": "demo",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 222,
+      "databaseOid": 16414,
+      "objectOid": 1259,
+      "objectType": "TABLE",
+      "schema": "bookings",
+      "name": "flights",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": null
+    },
+    {
+      "dumpId": 223,
+      "databaseOid": 16420,
+      "objectOid": 1259,
+      "objectType": "SEQUENCE",
+      "schema": "bookings",
+      "name": "flights_flight_id_seq",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222
+      ]
+    },
+    {
+      "dumpId": 3432,
+      "databaseOid": 0,
+      "objectOid": 0,
+      "objectType": "SEQUENCE OWNED BY",
+      "schema": "bookings",
+      "name": "flights_flight_id_seq",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        223
+      ]
+    },
+    {
+      "dumpId": 3254,
+      "databaseOid": 16445,
+      "objectOid": 2604,
+      "objectType": "DEFAULT",
+      "schema": "bookings",
+      "name": "flights flight_id",
+      "owner": "postgres",
+      "section": "PreData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        223,
+        222
+      ]
+    },
+    {
+      "dumpId": 3434,
+      "databaseOid": 16414,
+      "objectOid": 0,
+      "objectType": "TABLE DATA",
+      "schema": "\"bookings\"",
+      "name": "\"flights\"",
+      "owner": "\"postgres\"",
+      "section": "Data",
+      "originalSize": 4045752,
+      "compressedSize": 678467,
+      "fileName": "3434.dat.gz",
+      "dependencies": []
+    },
+    {
+      "dumpId": 3261,
+      "databaseOid": 16461,
+      "objectOid": 2606,
+      "objectType": "CONSTRAINT",
+      "schema": "bookings",
+      "name": "flights flights_flight_no_scheduled_departure_key",
+      "owner": "postgres",
+      "section": "PostData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222,
+        222
+      ]
+    },
+    {
+      "dumpId": 3263,
+      "databaseOid": 16463,
+      "objectOid": 2606,
+      "objectType": "CONSTRAINT",
+      "schema": "bookings",
+      "name": "flights flights_pkey",
+      "owner": "postgres",
+      "section": "PostData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222
+      ]
+    },
+    {
+      "dumpId": 3264,
+      "databaseOid": 16477,
+      "objectOid": 2606,
+      "objectType": "FK CONSTRAINT",
+      "schema": "bookings",
+      "name": "flights flights_aircraft_code_fkey",
+      "owner": "postgres",
+      "section": "PostData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222
+      ]
+    },
+    {
+      "dumpId": 3265,
+      "databaseOid": 16482,
+      "objectOid": 2606,
+      "objectType": "FK CONSTRAINT",
+      "schema": "bookings",
+      "name": "flights flights_arrival_airport_fkey",
+      "owner": "postgres",
+      "section": "PostData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222
+      ]
+    },
+    {
+      "dumpId": 3266,
+      "databaseOid": 16487,
+      "objectOid": 2606,
+      "objectType": "FK CONSTRAINT",
+      "schema": "bookings",
+      "name": "flights flights_departure_airport_fkey",
+      "owner": "postgres",
+      "section": "PostData",
+      "originalSize": 0,
+      "compressedSize": 0,
+      "fileName": "",
+      "dependencies": [
+        222
+      ]
+    }
+  ]
+}
+

+
    +
  1. The date when the backup has been initiated, also indicating the snapshot date.
  2. +
  3. The date when the backup process was successfully completed.
  4. +
  5. The original size of the backup in bytes.
  6. +
  7. The size of the backup after compression in bytes.
  8. +
  9. A list of tables that underwent transformation during the backup.
  10. +
  11. The schema name of the table.
  12. +
  13. The name of the table.
  14. +
  15. Custom query override, if applicable.
  16. +
  17. A list of transformers that were applied during the backup.
  18. +
  19. The name of the transformer.
  20. +
  21. The parameters provided for the transformer.
  22. +
  23. A mapping of overridden column types.
  24. +
  25. The header information in the table of contents file. This provides the same details as the --format=text output in the previous snippet.
  26. +
  27. The list of restoration entries. This offers the same information as the --format=text output in the previous snippet.
  28. +
+
+
+
+
+

Note

+

The json format provides more detailed information compared to the text format. The text format is primarily used for backward compatibility and for generating a restoration list that can be used with pg_restore -L listfile. On the other hand, the json format provides comprehensive metadata about the dump, including information about the applied transformers and their parameters. The json format is especially useful for detailed dump introspection.

+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/show-transformer/index.html b/v0.2.5/commands/show-transformer/index.html new file mode 100644 index 00000000..b8a247c3 --- /dev/null +++ b/v0.2.5/commands/show-transformer/index.html @@ -0,0 +1,3362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + show-transformer - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

show-transformer

+ +

show-transformer command

+

This command prints out detailed information about a transformer by a provided name, including specific attributes to +help you understand and configure the transformer effectively.

+

To show detailed information about a transformer, use the following command:

+
greenmask --config=config.yml show-transformer TRANSFORMER_NAME
+
+

Supported flags:

+
    +
  • --format — allows to select the output format. There are two options available: text or json. The + default setting is text.
  • +
+

Example of show-transformer output:

+

show_transformer.png

+

When using the show-transformer command, you receive detailed information about the transformer and its parameters and +their possible attributes. Below are the key parameters for each transformer:

+
    +
  • Name — the name of the transformer
  • +
  • Description — a brief description of what the transformer does
  • +
  • +

    Parameters — a list of transformer parameters, each with its own set of attributes. Possible attributes include:

    +
      +
    • description — a brief description of the parameter's purpose
    • +
    • required — a flag indicating whether the parameter is required when configuring the transformer
    • +
    • link_parameter — specifies whether the value of the parameter will be encoded using a specific parameter type + encoder. For example, if a parameter named column is linked to another parameter start, the start + parameter's value will be encoded according to the column type when the transformer is initialized.
    • +
    • cast_db_type — indicates that the value should be encoded according to the database type. For example, when + dealing with the INTERVAL data type, you must provide the interval value in PostgreSQL format.
    • +
    • default_value — the default value assigned to the parameter if it's not provided during configuration.
    • +
    • column_properties — if a parameter represents the name of a column, it may contain additional properties, + including:
        +
      • nullable — indicates whether the transformer may produce NULL values, potentially violating the NOT NULL + constraint
      • +
      • unique — specifies whether the transformer guarantees unique values for each call. If set to true, it + means that the transformer cannot produce duplicate values, ensuring compliance with the UNIQUE constraint.
      • +
      • affected — indicates whether the column is affected during the transformation process. If not affected, the + column's value might still be required for transforming another column.
      • +
      • allowed_types — a list of data types that are compatible with this parameter
      • +
      • skip_original_data — specifies whether the original value of the column, before transformation, is relevant + for the transformation process
      • +
      • skip_on_null — indicates whether the transformer should skip the transformation when the input column value + is NULL. If the column value is NULL, interaction with the transformer is unnecessary.
      • +
      +
    • +
    +
  • +
+
+

Warning

+

The default value in JSON format is base64 encoded. This might be changed in later version of Greenmask.

+
+
JSON output example
[
+  {
+    "properties": {
+      "name": "NoiseFloat",
+      "description": "Make noise float for int",
+      "is_custom": false
+    },
+    "parameters": [
+      {
+        "name": "column",
+        "description": "column name",
+        "required": true,
+        "is_column": true,
+        "is_column_container": false,
+        "column_properties": {
+          "max_length": -1,
+          "affected": true,
+          "allowed_types": [
+            "float4",
+            "float8",
+            "numeric"
+          ],
+          "skip_on_null": true
+        }
+      },
+      {
+        "name": "ratio",
+        "description": "max random percentage for noise",
+        "required": false,
+        "is_column": false,
+        "is_column_container": false,
+        "default_value": "MC4x"
+      },
+      {
+        "name": "decimal",
+        "description": "decimal of noised float value (number of digits after coma)",
+        "required": false,
+        "is_column": false,
+        "is_column_container": false,
+        "default_value": "NA=="
+      }
+    ]
+  }
+]
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/commands/validate/index.html b/v0.2.5/commands/validate/index.html new file mode 100644 index 00000000..2ec0cfd2 --- /dev/null +++ b/v0.2.5/commands/validate/index.html @@ -0,0 +1,3447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + validate - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

validate command

+

The validate command allows you to perform a validation procedure and compare transformed data.

+

Below is a list of all supported flags for the validate command:

+
Supported flags
Usage:
+  greenmask validate [flags]
+
+Flags:
+      --data                  Perform test dump for --rows-limit rows and print it pretty
+      --diff                  Find difference between original and transformed data
+      --format string         Format of output. possible values [text|json] (default "text")
+      --rows-limit uint       Check tables dump only for specific tables (default 10)
+      --schema                Make a schema diff between previous dump and the current state
+      --table strings         Check tables dump only for specific tables
+      --table-format string   Format of table output (only for --format=text). Possible values [vertical|horizontal] (default "vertical")
+      --transformed-only      Print only transformed column and primary key
+      --warnings              Print warnings
+
+

Validate command can exit with non-zero code when:

+
    +
  • Any error occurred
  • +
  • Validate was called with --warnings flag and there are warnings
  • +
  • Validate was called with --schema flag and there are schema differences
  • +
+

All of those cases may be used for CI/CD pipelines to stop the process when something went wrong. This is especially +useful when --schema flag is used - this allows to avoid data leakage when schema changed.

+

You can use the --table flag multiple times to specify the tables you want to check. Tables can be written with +or without schema names (e. g., public.table_name or table_name). If you specify multiple tables from different +schemas, an error will be thrown.

+

To start validation, use the following command:

+
greenmask --config=config.yml validate \
+  --warnings \
+  --data \
+  --diff \
+  --schema \
+  --format=text \
+  --table-format=vertical \
+  --transformed-only \
+  --rows-limit=1
+
+
Validation output example
2024-03-15T19:46:12+02:00 WRN ValidationWarning={"hash":"aa808fb574a1359c6606e464833feceb","meta":{"ColumnName":"birthdate","ConstraintDef":"CHECK (birthdate \u003e= '1930-01-01'::date AND birthdate \u003c= (now() - '18 years'::interval))","ConstraintName":"humanresources","ConstraintSchema":"humanresources","ConstraintType":"Check","ParameterName":"column","SchemaName":"humanresources","TableName":"employee","TransformerName":"NoiseDate"},"msg":"possible constraint violation: column has Check constraint","severity":"warning"}
+
+

The validation output will provide detailed information about potential constraint violations and schema issues. Each +line contains nested JSON data under the ValidationWarning key, offering insights into the affected part of the +configuration and potential constraint violations.

+

Pretty formatted validation warning
{ 
+  "hash": "aa808fb574a1359c6606e464833feceb", // (13)
+  "meta": { // (1)
+    "ColumnName": "birthdate", // (2)
+    "ConstraintDef": "CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))", // (3)
+    "ConstraintName": "humanresources", // (4)
+    "ConstraintSchema": "humanresources", // (5)
+    "ConstraintType": "Check", // (6)
+    "ParameterName": "column", // (7)
+    "SchemaName": "humanresources", // (8)
+    "TableName": "employee", // (9)
+    "TransformerName": "NoiseDate" // (10)
+  },
+  "msg": "possible constraint violation: column has Check constraint", // (11)
+  "severity": "warning" // (12)
+}
+

+
    +
  1. Detailed metadata. The validation output provides comprehensive metadata to pinpoint the source of problems.
  2. +
  3. Column name indicates the name of the affected column.
  4. +
  5. Constraint definition specifies the definition of the constraint that may be violated.
  6. +
  7. Constraint name identifies the name of the constraint that is potentially violated.
  8. +
  9. Constraint schema name indicates the schema in which the constraint is defined.
  10. +
  11. Type of constraint represents the type of constraint and can be one of the following: +
    * ForeignKey
    +* Check
    +* NotNull
    +* PrimaryKey
    +* PrimaryKeyReferences
    +* Unique
    +* Length
    +* Exclusion
    +* TriggerConstraint
    +
  12. +
  13. Table schema name specifies the schema name of the affected table.
  14. +
  15. Table name identifies the name of the table where the problem occurs.
  16. +
  17. Transformer name indicates the name of the transformer responsible for the transformation.
  18. +
  19. Name of affected parameter typically, this is the name of the column parameter that is relevant to the + validation warning.
  20. +
  21. Validation warning description provides a detailed description of the validation warning and the reason behind + it.
  22. +
  23. Severity of validation warning indicates the severity level of the validation warning and can be one of the + following: +
    * error
    +* warning
    +* info
    +* debug
    +
  24. +
  25. Hash is a unique identifier of the validation warning. It is used to resolve the warning in the config file
  26. +
+
+

Note

+

A validation warning with a severity level of "error" is considered critical and must be addressed before the dump operation can proceed. Failure to resolve such warnings will prevent the dump operation from being executed.

+
+
Schema diff changed output example
2024-03-15T19:46:12+02:00 WRN Database schema has been changed Hint="Check schema changes before making new dump" PreviousDumpId=1710520855501
+2024-03-15T19:46:12+02:00 WRN Column renamed Event=ColumnRenamed Signature={"CurrentColumnName":"id1","PreviousColumnName":"id","TableName":"test","TableSchema":"public"}
+2024-03-15T19:46:12+02:00 WRN Column type changed Event=ColumnTypeChanged Signature={"ColumnName":"id","CurrentColumnType":"bigint","CurrentColumnTypeOid":"20","PreviousColumnType":"integer","PreviousColumnTypeOid":"23","TableName":"test","TableSchema":"public"}
+2024-03-15T19:46:12+02:00 WRN Column created Event=ColumnCreated Signature={"ColumnName":"name","ColumnType":"text","TableName":"test","TableSchema":"public"}
+2024-03-15T19:46:12+02:00 WRN Table created Event=TableCreated Signature={"SchemaName":"public","TableName":"test1","TableOid":"20563"}
+
+

Example of validation diff:

+

img.png

+

The validation diff is presented in a neatly formatted table. In this table:

+
    +
  • Columns that are affected by the transformation are highlighted with a red background.
  • +
  • The pre-transformation values are displayed in green.
  • +
  • The post-transformation values are shown in red.
  • +
  • The result in --format=text can be displayed in either horizontal (--table-format=horizontal) or + vertical (--table-format=vertical) format, making it easy to visualize and understand the + differences between the original and transformed data.
  • +
+

The whole validate command may be run in json format including logging making easy to parse the structure.

+
greenmask --config=config.yml validate \
+  --warnings \
+  --data \
+  --diff \
+  --schema \
+  --format=json \
+  --table-format=vertical \
+  --transformed-only \
+  --rows-limit=1 \
+  --log-format=json
+
+

The json object result

+
+
+
+
{
+  "level": "warn",
+  "ValidationWarning": {
+    "msg": "possible constraint violation: column has Check constraint",
+    "severity": "warning",
+    "meta": {
+      "ColumnName": "birthdate",
+      "ConstraintDef": "CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))",
+      "ConstraintName": "humanresources",
+      "ConstraintSchema": "humanresources",
+      "ConstraintType": "Check",
+      "ParameterName": "column",
+      "SchemaName": "humanresources",
+      "TableName": "employee",
+      "TransformerName": "NoiseDate"
+    },
+    "hash": "aa808fb574a1359c6606e464833feceb"
+  },
+  "time": "2024-03-15T20:01:51+02:00"
+}
+
+
+
+
{
+  "level": "warn",
+  "PreviousDumpId": "1710520855501",
+  "Diff": [
+    {
+      "event": "ColumnRenamed",
+      "signature": {
+        "CurrentColumnName": "id1",
+        "PreviousColumnName": "id",
+        "TableName": "test",
+        "TableSchema": "public"
+      }
+    },
+    {
+      "event": "ColumnTypeChanged",
+      "signature": {
+        "ColumnName": "id",
+        "CurrentColumnType": "bigint",
+        "CurrentColumnTypeOid": "20",
+        "PreviousColumnType": "integer",
+        "PreviousColumnTypeOid": "23",
+        "TableName": "test",
+        "TableSchema": "public"
+      }
+    },
+    {
+      "event": "ColumnCreated",
+      "signature": {
+        "ColumnName": "name",
+        "ColumnType": "text",
+        "TableName": "test",
+        "TableSchema": "public"
+      }
+    },
+    {
+      "event": "TableCreated",
+      "signature": {
+        "SchemaName": "public",
+        "TableName": "test1",
+        "TableOid": "20563"
+      }
+    }
+  ],
+  "Hint": "Check schema changes before making new dump",
+  "time": "2024-03-15T20:01:51+02:00",
+  "message": "Database schema has been changed"
+}
+
+
+
+
{
+  "schema": "humanresources",
+  "name": "employee",
+  "primary_key_columns": [
+    "businessentityid"
+  ],
+  "with_diff": true,
+  "transformed_only": true,
+  "records": [
+    {
+      "birthdate": {
+        "original": "1969-01-29",
+        "transformed": "1964-10-20",
+        "equal": false,
+        "implicit": true
+      },
+      "businessentityid": {
+        "original": "1",
+        "transformed": "1",
+        "equal": true,
+        "implicit": true
+      }
+    }
+  ]
+}
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/configuration/index.html b/v0.2.5/configuration/index.html new file mode 100644 index 00000000..0b7844f5 --- /dev/null +++ b/v0.2.5/configuration/index.html @@ -0,0 +1,3821 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Configuration - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Configuration

+ +
# Configuration
+
+

The configuration is organized into six sections:

+
    +
  • common — settings that can be used for both the dump and restore commands
  • +
  • log — settings for the logging subsystem
  • +
  • storage — settings for the storage locations where dumps are stored
  • +
  • dump — settings for the dump command. This section includes pg_dump options and transformation parameters.
  • +
  • restore — settings for the restore command. It contains pg_restore options and additional restoration + scripts.
  • +
  • custom_transformers — definitions of the custom transformers that interact through stdin and stdout. Once a custom transformer is configured, it becomes accessible via the greenmask list-transformers command.
  • +
+

common section

+

In the common section of the configuration, you can specify the following settings:

+
    +
  • pg_bin_path — path to the PostgreSQL binaries. Note that the PostgreSQL server version must match the provided binaries.
  • +
  • tmp_dir — temporary directory for storing the table of contents files. Default value is /tmp
  • +
+
+

Note

+

Greenmask exclusively manages data dumping and data restoration processes, delegating schema dumping to the pg_dumputility and schema restoration to the pg_restore utility. Both pg_dump and pg_restore rely on a toc.dat file located in a specific directory, which contains metadata and object definitions. Therefore, the tmp_dir parameter is essential for storing the toc.dat file during the dumping or restoration procedure. It is important to note that all artifacts in this directory will be automatically deleted once the Greenmask command is completed.

+
+

log section

+

In the log section of the configuration, you can specify the following settings:

+
    +
  • level — specifies the level of logging, which can be one of the following: debug, info, or error. The default level is info.
  • +
  • format — defines the logging format, which can be either json or text. The default format is text.
  • +
+

storage section

+

In the storage section, you can configure the storage driver for storing the dumped data. Currently, +two storage type options are supported: directory and s3.

+
+
+
+

The directory storage option refers to a filesystem directory where the dump data will be stored.

+

Parameters include path which specifies the path to the directory in the filesystem where the dumps will be stored.

+
directory storage config example
storage:
+  type: "directory"
+  directory:
+    path: "/home/user_name/storage_dir" # (1)
+
+
+
+

By choosing the s3 storage option, you can store dump data in an S3-like remote storage service, +such as Amazon S3 or Azure Blob Storage. Here are the parameters you can configure for S3 storage:

+
    +
  • endpoint — overrides the default AWS endpoint to a custom one for making requests
  • +
  • bucket — the name of the bucket where the dump data will be stored
  • +
  • prefix — a prefix for objects in the bucket, specified in path format
  • +
  • region — the S3 service region
  • +
  • storage_class — the storage class for performing object requests
  • +
  • no_verify_ssl — disable SSL certificate verification
  • +
  • access_key_id — access key for authentication
  • +
  • secret_access_key — secret access key for authentication
  • +
  • session_token — session token for authentication
  • +
  • role_arn — Amazon resource name for role-based authentication
  • +
  • session_name — role session name to uniquely identify a session
  • +
  • max_retries — the number of retries on request failures
  • +
  • cert_file — the path to the SSL certificate for making requests
  • +
  • max_part_size — the maximum part length for one request
  • +
  • concurrency — the number of goroutines to use in parallel for each upload call when sending parts
  • +
  • use_list_objects_v1 — use the old v1 ListObjects request instead of v2 one
  • +
  • force_path_style — force the request to use path-style addressing (e. g., http://s3.amazonaws.com/BUCKET/KEY) instead of virtual hosted bucket addressing (e. g., http://BUCKET.s3.amazonaws.com/KEY)
  • +
  • use_accelerate — enable S3 Accelerate feature
  • +
+
s3 storage config example for Minio running in Docker
storage:  
+  type: "s3"
+  s3:
+    endpoint: "http://localhost:9000"
+    bucket: "testbucket"
+    region: "us-east-1"
+    access_key_id: "Q3AM3UQ867SPQQA43P2F"
+    secret_access_key: "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
+
+
+
+
+

dump section

+

In the dump section of the configuration, you configure the greenmask dump command. It includes the following parameters:

+
    +
  • pg_dump_options — a map of pg_dump options to configure the behavior of the command itself. You can refer to the list of supported pg_dump options in the Greenmask dump command documentation.
  • +
  • +

    transformation — this section contains configuration for applying transformations to table columns during the dump operation. It includes the following sub-parameters:

    +
      +
    • schema — the schema name of the table
    • +
    • name — the name of the table
    • +
    • subset_conds - list of the conditions to filter the rows to be dumped. The conditions are combined with AND operator. For details read Database subset
    • +
    • +

      query — an optional parameter for specifying a custom query to be used in the COPY command. By default, the entire table is dumped, but you can use this parameter to set a custom query.

      +
      +

      Warning

      +

      Be cautious when using the query parameter, as it may lead to constraint violation errors during restoration, and Greenmask currently cannot handle query validation.

      +
      +
    • +
    • +

      columns_type_override — allows you to override the column types explicitly. You can associate a column with another type that is supported by your transformer. This is useful when the transformer works strictly with specific types of columns. For example, if a column named post_code is of the TEXT type, but the RandomInt transformer works only with INT family types, you can override it as shown in the example provided. +

      column type overridden example
        columns_type_override:
      +    post_code: "int4"  # (1)
      +

      +
        +
      1. Change the data type of the post_code column to INT4 (INTEGER)
      2. +
      +
    • +
    • +

      apply_for_inherited — an optional parameter to apply the same transformation to all partitions if the table is partitioned. This can save you from defining the transformation for each partition manually.

      +
      +

      Warning

      +

      It is recommended to use the --load-via-partition-root parameter when dealing with partitioned tables, as the partition key value might change.

      +
      +
    • +
    • +

      transformers — a list of transformers to apply to the table, along with their parameters. Each transformation item includes the following sub-parameters:

      +
        +
      • name — the name of the transformer
      • +
      • params — a map of the provided transformer parameters
      • +
      +
      transformers config example
         transformers:
      +    - name: "RandomDate"
      +      params:
      +        min: "2023-01-01 00:00:00.0+03"
      +        max: "2023-01-02 00:00:00.0+03"
      +        column: "scheduled_departure"
      +
      +    - name: "NoiseDate"
      +      params:
      +        ratio: "01:00:00"
      +        column: "scheduled_arrival"
      +
      +
    • +
    +
  • +
+

Here is an example configuration for the dump section:

+

dump section config example
dump:
+  pg_dump_options:
+    dbname: "host=/run/postgresql user=postgres dbname=demo"
+    jobs: 10
+    exclude-schema: "(\"teSt\"*|test*)"
+    table: "bookings.flights"
+    load-via-partition-root: true
+
+  transformation:
+    - schema: "bookings"
+      name: "flights"
+      query: "select * from bookings.flights3 limit 1000000"
+      columns_type_override:
+        post_code: "int4" # (1)
+      transformers:
+        - name: "RandomDate"
+          params:
+            min: "2023-01-01 00:00:00.0+03"
+            max: "2023-01-02 00:00:00.0+03"
+            column: "scheduled_departure"
+
+        - name: "NoiseDate"
+          params:
+            ratio: "01:00:00"
+            column: "scheduled_arrival"
+
+        - name: "RegexpReplace"
+          params:
+            column: "status"
+            regexp: "On Time"
+            replace: "Delayed"
+
+        - name: "RandomInt" # (2)
+          params:
+            column: "post_code"
+            min: "11"
+            max: "99"
+
+    - schema: "bookings"
+      name: "aircrafts_data"
+      subset_conds: # (3)
+        - "bookings.aircrafts_data.model = 'Boeing 777-300-2023'"
+      transformers:
+        - name: "Json"
+          params:
+            column: "model"
+            operations:
+              - operation: "set"
+                path: "en"
+                value: "Boeing 777-300-2023"
+              - operation: "set"
+                path: "crewSize"
+                value: 10
+
+        - name: "NoiseInt"
+          params:
+            ratio: 0.9
+            column: "range"
+

+
    +
  1. Override the post_code column type to int4 (INTEGER). This is necessary because the post_code column + originally has a TEXT type, but it contains values that resemble integers. By explicitly overriding the type to int4, we ensure compatibility with transformers that work with integer types, such as RandomInt.
  2. +
  3. After the type is overridden, we can apply a compatible transformer.
  4. +
  5. Database subset condition applied to the aircrafts_data table. The subset condition filters the data based on the model column.
  6. +
+

validate section

+

In the validate section of the configuration, you can specify parameters for the greenmask validate +command. Here is an example of the validate section configuration:

+

validate section config example
validate:
+  tables: # (1)
+    - "orders"
+    - "public.cart"
+  data: true # (2)
+  diff: true # (3)
+  rows_limit: 10 # (4)
+  resolved_warnings: # (5)
+    - "8d436fae67b2b82b36bd3afeb0c93f30"
+  table_format: "horizontal" # (7)
+  format: "text" # (6)
+  schema: true # (8)
+  transformed_only: true # (9)
+  warnings: true # (10)
+

+
    +
  1. A list of tables to validate. If this list is not empty, the validation operation will only be performed for the specified tables. Tables can be written with or without the schema name (e. g., "public.cart" or "orders").
  2. +
  3. Specifies whether to perform data transformation for a limited set of rows. If set to true, data transformation will be performed, and the number of rows transformed will be limited to the value specified in the rows_limit parameter (default is 10).
  4. +
  5. Specifies whether to perform diff operations for the transformed data. If set to true, the validation process will find the differences between the original and transformed data. See more details in the validate command documentation.
  6. +
  7. Limits the number of rows to be transformed during validation. The default limit is 10 rows, but you can change it by modifying this parameter.
  8. +
  9. A hash list of resolved warnings. These warnings have been addressed and resolved in a previous validation run.
  10. +
  11. Specifies the format of the transformation output. Possible values are [horizontal|vertical]. The default format is horizontal. You can choose the format that suits your needs. See more details in the validate command documentation.
  12. +
  13. The output format (json or text)
  14. +
  15. Specifies whether to validate the schema current schema with the previous and print the differences if any.
  16. +
  17. If set to true, transformation output will be only with the transformed columns and primary keys
  18. +
  19. If set to then all the warnings be printed
  20. +
+

restore section

+

In the restore section of the configuration, you can specify parameters for the greenmask restore command. It contains pg_restore settings and custom script execution settings. Below you can find the available parameters:

+
    +
  • pg_restore_options — a map of pg_restore options that are used to configure the behavior of + the pg_restore utility during the restoration process. You can refer to the list of supported pg_restore options in the Greenmask restore command documentation.
  • +
  • scripts — a map of custom scripts to be executed during different restoration stages. Each script is associated with a specific restoration stage and includes the following attributes:
      +
    • [pre-data|data|post-data] — the name of the restoration stage when the script should be executed; has the following parameters:
        +
      • name — the name of the script
      • +
      • when — specifies when to execute the script, which can be either "before" or "after" the + specified restoration stage
      • +
      • query — an SQL query string to be executed
      • +
      • query_file — the path to an SQL query file to be executed
      • +
      • command — a command with parameters to be executed. It is provided as a list, where the first item is the command name.
      • +
      +
    • +
    +
  • +
  • insert_error_exclusions — a list of error codes that should be ignored during the restoration process. This is +useful when you want to skip specific errors that are not critical for the restoration process.
  • +
+

As mentioned in the architecture, a backup contains three sections: pre-data, data, and post-data. The custom script execution allows you to customize and control the restoration process by executing scripts or commands at specific stages. The available restoration stages and their corresponding execution conditions are as follows:

+
    +
  • pre-data — scripts or commands can be executed before or after restoring the pre-data section
  • +
  • data — scripts or commands can be executed before or after restoring the data section
  • +
  • post-data — scripts or commands can be executed before or after restoring the post-data section
  • +
+

Each stage can have a "when" condition with one of the following possible values:

+
    +
  • before — execute the script or SQL command before the mentioned restoration stage
  • +
  • after — execute the script or SQL command after the mentioned restoration stage
  • +
+

Below you can find one of the possible versions for the scripts part of the restore section:

+

scripts definition example
scripts:
+  pre-data: # (1)
+    - name: "pre-data before script [1] with query"
+      when: "before"
+      query: "create table script_test(stage text)"
+    - name: "pre-data before script [2]"
+      when: "before"
+      query: "insert into script_test values('pre-data before')"
+    - name: "pre-data after test script [1]"
+      when: "after"
+      query: "insert into script_test values('pre-data after')"
+    - name: "pre-data after script with query_file [1]"
+      when: "after"
+      query_file: "pre-data-after.sql"
+  data: # (2)
+    - name: "data before script with command [1]"
+      when: "before"
+      command: # (4)
+        - "data-after.sh"
+        - "param1"
+        - "param2"
+    - name: "data after script [1]"
+      when: "after"
+      query_file: "data-after.sql"
+  post-data: # (3)
+    - name: "post-data before script [1]"
+      when: "before"
+      query: "insert into script_test values('post-data before')"
+    - name: "post-data after script with query_file [1]"
+      when: "after"
+      query_file: "post-data-after.sql"
+

+
    +
  1. List of pre-data stage scripts. This section contains scripts that are executed before or after the restoration of the pre-data section. The scripts include SQL queries and query files.
  2. +
  3. List of data stage scripts. This section contains scripts that are executed before or after the restoration of the data section. The scripts include shell commands with parameters and SQL query files.
  4. +
  5. List of post-data stage scripts. This section contains scripts that are executed before or after the restoration of the post-data section. The scripts include SQL queries and query files.
  6. +
  7. Command in the first argument and the parameters in the rest of the list. When specifying a command to be executed in the scripts section, you provide the command name as the first item in a list, followed by any parameters or arguments for that command. The command and its parameters are provided as a list within the script configuration.
  8. +
+

restoration error exclusion

+

You can configure which errors to ignore during the restoration process by setting the insert_error_exclusions +parameter. This parameter can be applied globally or per table. If both global and table-specific settings are defined, +the table-specific settings will take precedence. Below is an example of how to configure the insert_error_exclusions +parameter. You can specify constraint names from your database schema or the error codes returned by PostgreSQL. +codes in the PostgreSQL documentation.

+
parameter defintion
insert_error_exclusions:
+
+  global:
+    error_codes: ["23505"] # (1)
+    constraints: ["PK_ProductReview_ProductReviewID"] # (2)
+  tables: # (3)
+    - schema: "production"
+      name: "productreview"
+      constraints: ["PK_ProductReview_ProductReviewID"]
+      error_codes: ["23505"]
+
+
    +
  1. List of strings that contains postgresql error codes
  2. +
  3. List of strings that contains constraint names (globally)
  4. +
  5. List of tables with their schema, name, constraints, and error codes
  6. +
+

Here is an example configuration for the restore section:

+
restore:
+  scripts:
+      pre-data: # (1)
+        - name: "pre-data before script [1] with query"
+          when: "before"
+          query: "create table script_test(stage text)"
+
+  insert_error_exclusions:
+    tables:
+      - schema: "production"
+        name: "productreview"
+        constraints:
+          - "PK_ProductReview_ProductReviewID"
+        error_codes:
+          - "23505"
+    global:
+      error_codes:
+        - "23505"
+
+  pg_restore_options:
+    jobs: 10
+    exit-on-error: false
+    dbname: "postgresql://postgres:example@localhost:54316/transformed"
+    table: 
+      - "productreview"
+    pgzip: true
+    inserts: true
+    on-conflict-do-nothing: true
+    restore-in-order: true
+
+

Environment variable configuration

+

It's also possible to configure Greenmask through environment variables.

+

Greenmask will automatically parse any environment variable that matches the configuration in the config file by substituting the dot (.) separator for an underscore (_) and uppercasing it. As an example, the config file below would apply the same configuration as defining the LOG_LEVEL=debug environment variable

+
config.yaml
log:
+  level: debug
+
+

Global configuration variables

+
    +
  • GREENMASK_GLOBAL_SALT - global salt value hex encoded with variadic length, used for the hash engine. For details + read Transformation engines section.
  • +
+

Postgres connection variables

+

Additionaly, there are some environment variables exposed by the dump and restore commands to facilitate the connection configuration with a Postgres database

+
    +
  • PGHOST - host used to connect to the postgres database
  • +
  • PGPORT - port where postgres is exposed
  • +
  • PGDATABASE - name of the database to dump/restore
  • +
  • PGUSER - username used to connect to the postgres database
  • +
  • PGPASSWORD - password used to authenticate to the postgres database
  • +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/database_subset/index.html b/v0.2.5/database_subset/index.html new file mode 100644 index 00000000..2319f41e --- /dev/null +++ b/v0.2.5/database_subset/index.html @@ -0,0 +1,4101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Database subset - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Database subset

+

Greenmask allows you to define a subset condition for filtering data during the dump process. This feature is useful +when you need to dump only a part of the database, such as a specific table or a set of tables. It automatically +ensures data consistency by including all related data from other tables that are required to maintain the integrity of +the subset. The subset condition can be defined using subset_conds attribute that can be defined on the table in the +transformation section (see examples).

+
+

Info

+

Greenmask genrates queries for subset conditions based on the introspected schema using joins and recursive queries. +It cannot be responsible for query optimization. The subset quries might be slow due to the complexity of +the queries and/or lack of indexes. Circular are resolved using recursive queries.

+
+

Detail

+

The subset is a list of SQL conditions that are applied to table. The conditions are combined with AND operator. You +need to specify the schema, table and column name when pointing out the column to filter by to avoid +ambiguity. The subset condition must be a valid SQL condition.

+
Subset condition example
subset_conds:
+  - 'person.businessentity.businessentityid IN (274, 290, 721, 852)'
+
+

Use cases

+
    +
  • Database scale down - create anonymized dump but for the limited and consistent set of tables
  • +
  • Data migration - migrate only some records from one database to another
  • +
  • Data anonymization - dump and anonymize only a specific records in the database
  • +
  • Database catchup - catchup your another instance of database logically by adding a new records. In this case it + is recommended to restore tables in topological order using + --restore-in-order.
  • +
+

References with NULL values

+

For references that do not have NOT NULL constraints, Greenmask will automatically generate LEFT JOIN queries +with the appropriate conditions to ensure integrity checks. You can rely on Greenmask to handle such cases correctly—no +special configuration is needed, as it performs this automatically based on the introspected schema.

+

Circular reference

+

Greenmask supports circular references between tables. You can define a subset condition for any table, and +Greenmask will automatically generate the appropriate queries for the table subset using recursive queries. The subset +system ensures data consistency by validating all records found through the recursive queries. If a record does not meet +the subset condition, it will be excluded along with its parent records, preventing constraint violations.

+
+

Warning

+

Currently (v0.2b2), Greenmask can resolve multi-cylces in one strogly connected component, but only for one group +of vertexes. If you have SSC that contains 2 groups of vertexes, Greenmask will not be able to +resolve it. For instance we have 2 cycles with tables A, B, C (first group) and B, C, E (second group). +Greenmask will not be able to resolve it. But if you have only one group of vertexes one and more cycles in the +same group of tables (for instance A, B, C), Greenmask works with it. This will be fixed in the future. +See second example below. In practice this is quite rare situation and 99% of people will not face this issue.

+
+

You can read the Wikipedia article about Circular reference here.

+

Virtual references

+

During the development process, there are situations where foreign keys need to be removed. The reasons can +vary—from improving performance to simplifying the database structure. Additionally, some foreign keys may exist within +loosely structured data, such as JSON, where PostgreSQL cannot create foreign keys at all. These limitations could +significantly hinder the capabilities of a subset system. Greenmask offers a flexible solution to this problem by +allowing the declaration of virtual references in the configuration, enabling the preservation and management of logical +relationships between tables, even in the absence of explicit foreign keys. Virtual reference can be called virtual +foreign key as well.

+

The virtual_references can be defined in dump section. It contains the list of virtual references. First you set +the table where you want to define virtual reference. In the attribute references define the list of tables that are +referenced by the table. In the columns attribute define the list of columns that are used in the foreign key +reference. The not_null attribute is optional and defines if the FK has not null constraint. If true Greenmask will +generate INNER JOIN instead of LEFT JOIN by default it is false. The expression needs to be used when you +want to use some expression to get the value of the column in the referencing table. For instance, if you have JSONB +column in the audit_logs table that contains order_id field, you can use this field as FK reference.

+
+

Info

+

You do not need to define primry key of the referenced table. Greenmask will automatically resolve it and use it in +the join condition.

+
+
Virtual references example
dump:
+  virtual_references:
+    - schema: "public" # (1)
+      name: "orders" # (2)
+      references: # (3)
+        - schema: "public" # (4) 
+          name: "customers" # (5)
+          columns: # (6)
+            - name: "customer_id"
+          not_null: false # (7)
+
+    - schema: "public"
+      name: "audit_logs"
+      references:
+        - schema: "public"
+          name: "orders"
+          columns:
+            - expression: "(public.audit_logs.log_data ->> 'order_id')::INT" # (8)
+
+
    +
  1. The schema name of table that has foreign key reference (table that own FK reference)
  2. +
  3. The table name that has foreign key reference (table that own FK reference)
  4. +
  5. List of virtual references
  6. +
  7. The schema name of the table that has foreign key reference (referencing table)
  8. +
  9. The table name that has foreign key reference (referencing table)
  10. +
  11. +

    List of columns that are used in the foreign key reference. Each column has one of property defined at the same time:

    +
      +
    • name - column name in the referencing table
    • +
    • expression - expression that is used to get the value of the column in the referencing table
    • +
    +
  12. +
  13. +

    not_null - is FK has not null constraint. If true Default it is false

    +
  14. +
  15. expression - expression that is used to get the value of the column in the referencing table
  16. +
+

Polymorphic references

+

Greenmask supports polymorphic references. You can define a virtual reference for a table with polymorphic references +using polymorphic_exprs attribute. The polymorphic_exprs attribute is a list of expressions that are used to make +a polymorphic reference. For instance we might have a table comments that has polymorphic reference to posts and +videos. The table comments might have commentable_id and commentable_type columns. The commentable_type column +contains the type of the table that is referenced by the commentable_id column. The example of the config:

+
Polymorphic references example
dump:
+  virtual_references:
+    - schema: "public"
+      name: "comments"
+      references:
+        - schema: "public"
+          name: "videos"
+          polymorphic_exprs:
+            - "public.comments.commentable_type = 'video'"
+          columns:
+            - name: "commentable_id"
+        - schema: "public"
+          name: "posts"
+          polymorphic_exprs:
+            - "public.comments.commentable_type = 'post'"
+          columns:
+            - name: "commentable_id"
+
+
+

Warning

+

The plimorphic references cannot be non_null because the commentable_id column can be NULL if the +commentable_type is not set or different that the values defined in the polymorphic_exprs attribute.

+
+

Troubleshooting

+

Exclude the records that has NULL values in the referenced column

+

If you want to exclude records that have NULL values in the referenced column, you can manually add this condition to +the subset condition for the table. Greenmask does not automatically exclude records with NULL values because it applies +a LEFT OUTER JOIN on nullable foreign keys.

+

Some table is not filtered by the subset condition

+

Greenmask builds a table dependency graph based on the introspected schema and existing foreign keys. If a table is not +filtered by the subset condition, it means that the table either does not reference another table that is filtered by +the subset condition or the table itself does not have a subset condition applied.

+

If you have a table with a removed foreign key and want to filter it by the subset condition, you need to define a +virtual reference. For more information on virtual references, refer to the Virtual References +section.

+
+

Info

+

If you find any issues related to the code or greenmask is not working as expected, do not hesitate to contact us + directly or by creating an issue in the repository.

+
+

ERROR: column reference "id" is ambiguous

+

If you see the error message ERROR: column reference "{column name}" is ambiguous, you have specified the column name +without the table and/or schema name. To avoid ambiguity, always specify the schema and table name when pointing out the +column to filter by. For instance if you want to filter employees by employee_id column, you should +use public.employees.employee_id instead of employee_id.

+
Valid subset condition
public.employees.employee_id IN (1, 2, 3)
+
+

The subset condition is not working correctly. How can I verify it?

+

Run greenmask with --log-level=debug to see the generated SQL queries. You will find the generated SQL queries in the +log output. Validate this query in your database client to ensure that the subset condition is working as expected.

+

For example:

+
$ greenmask dump --config config.yaml --log-level=debug
+
+2024-08-29T19:06:18+03:00 DBG internal/db/postgres/context/context.go:202 > Debug query Schema=person Table=businessentitycontact pid=1638339
+2024-08-29T19:06:18+03:00 DBG internal/db/postgres/context/context.go:203 > SELECT "person"."businessentitycontact".* FROM "person"."businessentitycontact"  INNER JOIN "person"."businessentity" ON "person"."businessentitycontact"."businessentityid" = "person"."businessentity"."businessentityid" AND ( person.businessentity.businessentityid between 400 and 800 OR person.businessentity.businessentityid between 800 and 900 ) INNER JOIN "person"."person" ON "person"."businessentitycontact"."personid" = "person"."person"."businessentityid" WHERE TRUE AND (("person"."person"."businessentityid") IN (SELECT "person"."businessentity"."businessentityid" FROM "person"."businessentity"   WHERE ( ( person.businessentity.businessentityid between 400 and 800 OR person.businessentity.businessentityid between 800 and 900 ) )))
+ pid=1638339
+
+

Dump is too slow

+

If the dump process is too slow the generated query might be too complex. In this case you can:

+
    +
  • Check if the database has indexes on the columns used in the subset condition. Create them if possible.
  • +
  • Move database dumping on the replica to avoid the performance impact on the primary.
  • +
+

Example: Dump a subset of the database

+
+

Info

+

All examples based on playground database. Read more about the playground database in the +Playground section.

+
+

The following example demonstrates how to dump a subset of the person schema. The subset condition is applied to the +businessentity and password tables. The subset condition filters the data based on the businessentityid and +passwordsalt columns, respectively.

+
Subset configuration example
transformation:
+  - schema: "person"
+    name: "businessentity"
+    subset_conds:
+      - 'person.businessentity.businessentityid IN (274, 290, 721, 852)'
+    transformers:
+      - name: "RandomDate"
+        params:
+          column: "modifieddate"
+          min: "2020-01-01 00:00:00"
+          max: "2024-06-26 00:00:00"
+          truncate: "day"
+          keep_null: false
+
+  - schema: "person"
+    name: "password"
+    subset_conds:
+      - >
+        person.password.passwordsalt = '329eacbe-c883-4f48-b8b6-17aa4627efff'
+
+

Example: Dump a subset with circular reference

+
Create tables with multi cyles
-- Step 1: Create tables without foreign keys
+DROP TABLE IF EXISTS employees CASCADE;
+CREATE TABLE employees
+(
+    employee_id   SERIAL PRIMARY KEY,
+    name          VARCHAR(100) NOT NULL,
+    department_id INT -- Will reference departments(department_id)
+);
+
+DROP TABLE IF EXISTS departments CASCADE;
+CREATE TABLE departments
+(
+    department_id SERIAL PRIMARY KEY,
+    name          VARCHAR(100) NOT NULL,
+    project_id    INT -- Will reference projects(project_id)
+);
+
+DROP TABLE IF EXISTS projects CASCADE;
+CREATE TABLE projects
+(
+    project_id       SERIAL PRIMARY KEY,
+    name             VARCHAR(100) NOT NULL,
+    lead_employee_id INT, -- Will reference employees(employee_id)
+    head_employee_id INT  -- Will reference employees(employee_id)
+);
+
+-- Step 2: Alter tables to add foreign key constraints
+ALTER TABLE employees
+    ADD CONSTRAINT fk_department
+        FOREIGN KEY (department_id) REFERENCES departments (department_id);
+
+ALTER TABLE departments
+    ADD CONSTRAINT fk_project
+        FOREIGN KEY (project_id) REFERENCES projects (project_id);
+
+ALTER TABLE projects
+    ADD CONSTRAINT fk_lead_employee
+        FOREIGN KEY (lead_employee_id) REFERENCES employees (employee_id);
+
+ALTER TABLE projects
+    ADD CONSTRAINT fk_lead_employee2
+        FOREIGN KEY (head_employee_id) REFERENCES employees (employee_id);
+
+-- Insert projects
+INSERT INTO projects (name, lead_employee_id)
+SELECT 'Project ' || i, NULL
+FROM generate_series(1, 10) AS s(i);
+
+-- Insert departments
+INSERT INTO departments (name, project_id)
+SELECT 'Department ' || i, i
+FROM generate_series(1, 10) AS s(i);
+
+-- Insert employees and assign 10 of them as project leads
+INSERT INTO employees (name, department_id)
+SELECT 'Employee ' || i, (i / 10) + 1
+FROM generate_series(1, 99) AS s(i);
+
+-- Assign 10 employees as project leads
+UPDATE projects
+SET lead_employee_id = (SELECT employee_id
+                        FROM employees
+                        WHERE employees.department_id = projects.project_id
+                        LIMIT 1),
+    head_employee_id = 3
+WHERE project_id <= 10;
+
+

This schema has two cycles:

+
    +
  • employees (department_id) -> departments (project_id) -> projects (lead_employee_id) -> employees (employee_id)
  • +
  • employees (department_id) -> departments (project_id) -> projects (head_employee_id) -> employees (employee_id)
  • +
+

Greenmask can simply resolve it by generating a recursive query with integrity checks for subset and join conditions.

+

The example below will fetch the data for both 3 employees and related departments and projects.

+
Subset configuration example
transformation:
+  - schema: "public"
+    name: "employees"
+    subset_conds:
+      - "public.employees.employee_id in (1, 2, 3)"
+
+

But this will return empty result, because the subset condition is not met for all related tables because project with +project_id=1 has reference to employee with employee_id=3 that is invalid for subset condition.

+
Subset configuration example
transformation:
+  - schema: "public"
+    name: "employees"
+    subset_conds:
+      - "public.employees.employee_id in (1, 2)"
+
+

Example: Dump a subset with virtual references

+

In this example, we will create a subset of the tables with virtual references. The subset will include the +orders table and its related tables customers and audit_logs. The orders table has a virtual reference to the +customers table, and the audit_logs table has a virtual reference to the orders table.

+
Create tables with virtual references
-- Create customers table
+CREATE TABLE customers
+(
+    customer_id   SERIAL PRIMARY KEY,
+    customer_name VARCHAR(100)
+);
+
+-- Create orders table
+CREATE TABLE orders
+(
+    order_id    SERIAL PRIMARY KEY,
+    customer_id INT, -- This should reference customers.customer_id, but no FK constraint is defined
+    order_date  DATE
+);
+
+-- Create payments table
+CREATE TABLE payments
+(
+    payment_id     SERIAL PRIMARY KEY,
+    order_id       INT, -- This should reference orders.order_id, but no FK constraint is defined
+    payment_amount DECIMAL(10, 2),
+    payment_date   DATE
+);
+
+-- Insert test data into customers table
+INSERT INTO customers (customer_name)
+VALUES ('John Doe'),
+       ('Jane Smith'),
+       ('Alice Johnson');
+
+-- Insert test data into orders table
+INSERT INTO orders (customer_id, order_date)
+VALUES (1, '2023-08-01'), -- Related to customer John Doe
+       (2, '2023-08-05'), -- Related to customer Jane Smith
+       (3, '2023-08-07');
+-- Related to customer Alice Johnson
+
+-- Insert test data into payments table
+INSERT INTO payments (order_id, payment_amount, payment_date)
+VALUES (1, 100.00, '2023-08-02'), -- Related to order 1 (John Doe's order)
+       (2, 200.50, '2023-08-06'), -- Related to order 2 (Jane Smith's order)
+       (3, 300.75, '2023-08-08');
+-- Related to order 3 (Alice Johnson's order)
+
+
+-- Create a table with a multi-key reference (composite key reference)
+CREATE TABLE order_items
+(
+    order_id     INT,               -- Should logically reference orders.order_id
+    item_id      INT,               -- Composite part of the key
+    product_name VARCHAR(100),
+    quantity     INT,
+    PRIMARY KEY (order_id, item_id) -- Composite primary key
+);
+
+-- Create a table with a JSONB column that contains a reference value
+CREATE TABLE audit_logs
+(
+    log_id   SERIAL PRIMARY KEY,
+    log_data JSONB -- This JSONB field will contain references to other tables
+);
+
+-- Insert data into order_items table with multi-key reference
+INSERT INTO order_items (order_id, item_id, product_name, quantity)
+VALUES (1, 1, 'Product A', 3), -- Related to order_id = 1 from orders table
+       (1, 2, 'Product B', 5), -- Related to order_id = 1 from orders table
+       (2, 1, 'Product C', 2), -- Related to order_id = 2 from orders table
+       (3, 1, 'Product D', 1);
+-- Related to order_id = 3 from orders table
+
+-- Insert data into audit_logs table with JSONB reference value
+INSERT INTO audit_logs (log_data)
+VALUES ('{
+  "event": "order_created",
+  "order_id": 1,
+  "details": {
+    "customer_name": "John Doe",
+    "total": 100.00
+  }
+}'),
+       ('{
+         "event": "payment_received",
+         "order_id": 2,
+         "details": {
+           "payment_amount": 200.50,
+           "payment_date": "2023-08-06"
+         }
+       }'),
+       ('{
+         "event": "item_added",
+         "order_id": 1,
+         "item": {
+           "item_id": 2,
+           "product_name": "Product B",
+           "quantity": 5
+         }
+       }');
+
+

The following example demonstrates how to make a subset for keys that does not have FK constraints but a data +relationship exists.

+
    +
  • The orders table has a virtual reference to the customers table, and the audit_logs table + has a virtual reference to the orders table.
  • +
  • The payments table has a virtual reference to the orders table.
  • +
  • The order_items table has two keys that reference the orders and products tables.
  • +
  • The audit_logs table has a JSONB column that contains two references to the orders and order_items tables.
  • +
+
dump:
+  virtual_references:
+    - schema: "public"
+      name: "orders"
+      references:
+        - schema: "public"
+          name: "customers"
+          columns:
+            - name: "customer_id"
+          not_null: true
+
+    - schema: "public"
+      name: "payments"
+      references:
+        - schema: "public"
+          name: "orders"
+          columns:
+            - name: "order_id"
+          not_null: true
+
+    - schema: "public"
+      name: "order_items"
+      references:
+        - schema: "public"
+          name: "orders"
+          columns:
+            - name: "order_id"
+          not_null: true
+        - schema: "public"
+          name: "products"
+          columns:
+            - name: "product_id"
+          not_null: true
+
+    - schema: "public"
+      name: "audit_logs"
+      references:
+        - schema: "public"
+          name: "orders"
+          columns:
+            - expression: "(public.audit_logs.log_data ->> 'order_id')::INT"
+          not_null: false
+        - schema: "public"
+          name: "order_items"
+          columns:
+            - expression: "(public.audit_logs.log_data -> 'item' ->> 'item_id')::INT"
+            - expression: "(public.audit_logs.log_data ->> 'order_id')::INT"
+          not_null: false
+
+  transformation:
+
+    - schema: "public"
+      name: "customers"
+      subset_conds:
+        - "public.customers.customer_id in (1)"
+
+

As a result, the customers table will be dumped with the orders table and its related tables payments, +order_items, and audit_logs. The subset condition will be applied to the customers table, and the data will be +filtered based on the customer_id column.

+

Example: Dump a subset with polymorphic references

+

In this example, we will create a subset of the tables with polymorphic references. This example includes the +comments table and its related tables posts and videos.

+
Create tables with polymorphic references and insert data
-- Create the Posts table
+CREATE TABLE posts
+(
+    id      SERIAL PRIMARY KEY,
+    title   VARCHAR(255) NOT NULL,
+    content TEXT         NOT NULL
+);
+
+-- Create the Videos table
+CREATE TABLE videos
+(
+    id    SERIAL PRIMARY KEY,
+    title VARCHAR(255) NOT NULL,
+    url   VARCHAR(255) NOT NULL
+);
+
+-- Create the Comments table with a polymorphic reference
+CREATE TABLE comments
+(
+    id               SERIAL PRIMARY KEY,
+    commentable_id   INT         NOT NULL, -- Will refer to either posts.id or videos.id
+    commentable_type VARCHAR(50) NOT NULL, -- Will store the type of the associated record
+    body             TEXT        NOT NULL,
+    created_at       TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+);
+
+
+-- Insert data into the Posts table
+INSERT INTO posts (title, content)
+VALUES ('First Post', 'This is the content of the first post.'),
+       ('Second Post', 'This is the content of the second post.');
+
+-- Insert data into the Videos table
+INSERT INTO videos (title, url)
+VALUES ('First Video', 'https://example.com/video1'),
+       ('Second Video', 'https://example.com/video2');
+
+-- Insert data into the Comments table, associating some comments with posts and others with videos
+-- For posts:
+INSERT INTO comments (commentable_id, commentable_type, body)
+VALUES (1, 'post', 'This is a comment on the first post.'),
+       (2, 'post', 'This is a comment on the second post.');
+
+-- For videos:
+INSERT INTO comments (commentable_id, commentable_type, body)
+VALUES (1, 'video', 'This is a comment on the first video.'),
+       (2, 'video', 'This is a comment on the second video.');
+
+

The comments table has a polymorphic reference to the posts and videos tables. Depending on the value of the +commentable_type column, the commentable_id column will reference either the posts.id or videos.id column.

+

The following example demonstrates how to make a subset for tables with polymorphic references.

+
Subset configuration example
dump:
+  virtual_references:
+    - schema: "public"
+      name: "comments"
+      references:
+        - schema: "public"
+          name: "posts"
+          polymorphic_exprs:
+            - "public.comments.commentable_type = 'post'"
+          columns:
+            - name: "commentable_id"
+        - schema: "public"
+          name: "videos"
+          polymorphic_exprs:
+            - "public.comments.commentable_type = 'video'"
+          columns:
+            - name: "commentable_id"
+
+  transformation:
+    - schema: "public"
+      name: "posts"
+      subset_conds:
+        - "public.posts.id in (1)"
+
+

This example selects only the first post from the posts table and its related comments from the comments table. +The comments are associated with videos are included without filtering because the subset condition is applied only to +the posts table and related comments.

+

The resulted records will be:

+
transformed=# select * from comments;
+ id | commentable_id | commentable_type |                 body                  |         created_at         
+----+----------------+------------------+---------------------------------------+----------------------------
+  1 |              1 | post             | This is a comment on the first post.  | 2024-09-18 05:27:54.217405
+  2 |              2 | post             | This is a comment on the second post. | 2024-09-18 05:27:54.217405
+  3 |              1 | video            | This is a comment on the first video. | 2024-09-18 05:27:54.229794
+(3 rows)
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/index.html b/v0.2.5/index.html new file mode 100644 index 00000000..9a653be9 --- /dev/null +++ b/v0.2.5/index.html @@ -0,0 +1,3273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + About - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + + + +
+
+
+ + + + + + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

About Greenmask

+

Dump anonymization and synthetic data generation tool

+

Greenmask is a powerful open-source utility that is designed for logical database backup dumping, +anonymization, synthetic data generation and restoration. It has ported PostgreSQL libraries, making it reliable. +It is stateless and does not require any changes to your database schema. It is designed to be highly customizable and +backward-compatible with existing PostgreSQL utilities, fast and reliable.

+

Key features

+
    +
  • Deterministic transformers + — deterministic approach to data transformation based on the hash + functions. This ensures that the same input data will always produce the same output data. Almost each transformer + supports either random or hash engine making it universal for any use case.
  • +
  • Dynamic parameters — almost each + transformer supports dynamic parameters, allowing to parametrize the + transformer dynamically from the table column value. This is helpful for resolving the functional dependencies + between columns and satisfying the constraints.
  • +
  • Transformation validation and easy maintainable - During + configuration process, Greenmask provides validation + warnings, data transformation diff and schema diff features, allowing you to monitor and maintain transformations + effectively + throughout the software lifecycle. Schema diff helps to avoid data leakage when schema changed.
  • +
  • Partitioned tables transformation inheritance + — Define transformation configurations once and apply them to all + partitions within partitioned tables (using apply_for_inherited parameter), simplifying the anonymization process.
  • +
  • Stateless - Greenmask operates as a logical dump and does not impact your existing database schema.
  • +
  • Cross-platform - Can be easily built and executed on any platform, thanks to its Go-based architecture, + which eliminates platform dependencies.
  • +
  • Database type safe - Ensures data integrity by validating data and utilizing the database driver for + encoding and decoding operations. This approach guarantees the preservation of data formats.
  • +
  • Backward compatible - It fully supports the same features and protocols as existing vanilla PostgreSQL utilities. + Dumps created by Greenmask can be successfully restored using the pg_restore utility.
  • +
  • Extensible - Users have the flexibility + to implement domain-based transformations + in any programming language or + use predefined templates.
  • +
  • Integrable - Integrate seamlessly into your CI/CD system for automated database anonymization and + restoration.
  • +
  • Parallel execution - Take advantage of parallel dumping and restoration, significantly reducing the time required + to deliver results.
  • +
  • Provide variety of storages - offers a variety of storage options for local and remote data storage, + including directories and S3-like storage solutions.
  • +
  • Pgzip support for faster compression — by + setting --pgzip, it can speeds up the dump and restoration + processes through parallel compression.
  • +
+

Use cases

+

Greenmask is ideal for various scenarios, including:

+
    +
  • Backup and restoration. Use Greenmask for your daily routines involving logical backup dumping and restoration. It + seamlessly handles tasks like table restoration after truncation. Its functionality closely mirrors that of pg_dump + and pg_restore, making it a straightforward replacement.
  • +
  • Anonymization, transformation, and data masking. Employ Greenmask for anonymizing, transforming, and masking + backups, especially when setting up a staging environment or for analytical purposes. It simplifies the deployment of + a pre-production environment with consistently anonymized data, facilitating faster time-to-market in the development + lifecycle.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/installation/index.html b/v0.2.5/installation/index.html new file mode 100644 index 00000000..8b1cf2e7 --- /dev/null +++ b/v0.2.5/installation/index.html @@ -0,0 +1,3392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Installation - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Installation

+

Prerequisites

+
    +
  • +

    Ensure that you have PostgreSQL utilities preinstalled, matching the major version + of your destination server.

    +
  • +
  • +

    If you are building Greenmask from source, make sure you have the make utility installed.

    +
  • +
+

Via docker

+

You can find the docker images in the:

+
    +
  1. Docker-hub page
  2. +
+

To run the greenmask container from DockerHub, use the following command: +

docker run -it greenmask/greenmask:latest
+

+
    +
  1. GitHub container registry
  2. +
+

To run the greenmask container from Github registry, use the following command: +

docker run -it ghcr.io/greenmaskio/greenmask:latest
+

+
+

Info

+

For pre-releases (rc, beta, etc.), use explicit tags like v0.2.0b2.

+
+

Via brew

+

The greenmask build is available in brew, +but only a production build is available. To install the greenmask via brew, use the following command:

+
brew install greenmask
+
+

From source

+
    +
  1. +

    Clone the Greenmask repository by using the following command:

    +
    git clone git@github.com:GreenmaskIO/greenmask.git
    +
    +
  2. +
  3. +

    Once the repository is cloned, execute the following command to build Greenmask:

    +
    make build
    +
    +
  4. +
+

After completing the build process, you will find the binary named greenmask in the root directory of the repository. +Execute the binary to start using Greenmask.

+

Playground

+

Greenmask Playground is a sandbox environment for your experiments in Docker with sample databases included to help you +try Greenmask without any additional actions. Read the Playground guide to learn more.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/overrides/main.html b/v0.2.5/overrides/main.html new file mode 100644 index 00000000..b8053afc --- /dev/null +++ b/v0.2.5/overrides/main.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block announce %} + A new version 0.2.5 (2024.11.16) is released +{% endblock %} + +{% block outdated %} + You're not viewing the latest version. + + Click here to go to latest. + +{% endblock %} \ No newline at end of file diff --git a/v0.2.5/playground/index.html b/v0.2.5/playground/index.html new file mode 100644 index 00000000..a7702d76 --- /dev/null +++ b/v0.2.5/playground/index.html @@ -0,0 +1,3368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Playground - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask Playground

+

Greenmask Playground is a sandbox environment in Docker with sample databases included to help you try Greenmask without any additional actions. It includes the following components:

+
    +
  • Original database — the source database you'll be working with.
  • +
  • Empty database for restoration — an empty database where the restored data will be placed.
  • +
  • MinIO storage — used for storage purposes.
  • +
  • Greenmask Utility — Greenmask itself, ready for use.
  • +
+
+

Warning

+

To complete this guide, you must have Docker and docker-compose installed.

+
+

Setting up Greenmask Playground

+
    +
  1. +

    Clone the greenmask repository and navigate to its directory by running the following commands:

    +
    git clone git@github.com:GreenmaskIO/greenmask.git && cd greenmask
    +
    +
  2. +
  3. +

    Once you have cloned the repository, start the environment by running Docker Compose:

    +
    docker-compose run greenmask
    +
    +
  4. +
+
+

Tip

+

If you're experiencing problems with pulling images from Docker Hub, you can build the Greenmask image from source by running the following command:

+
docker-compose run greenmask-from-source
+
+
+

Now you have Greenmask Playground up and running with a shell prompt inside the container. All further operations will be carried out within this container's shell.

+

Commands

+

Below you can see Greenmask commands:

+
    +
  • +

    dump — performs a logical data dump, transforms the data, and stores it in the designated storage.

    +
  • +
  • +

    list-dumps — retrieves a list of all stored dumps within the chosen storage.

    +
  • +
  • +

    delete — removes a dump with a specific ID from the storage.

    +
  • +
  • +

    list-transformers — displays a list of approved transformers and their documentation.

    +
  • +
  • +

    restore — restores a dump either by specifying its ID or using the latest available dump to the target database.

    +
  • +
  • +

    show-dump — presents metadata information about a specific dump (equivalent to pg_restore -l ./).

    +
  • +
  • +

    validate — executes a validation process and generates a data diff for the transformation.

    +
  • +
  • +

    completion — generates the autocompletion script for the specified shell.

    +
  • +
+

To learn more about them, see Commands.

+

Transformers

+

A configuration file is mandatory for Greenmask functioning. The pre-defined configuration file is stored at the repository root directory (./playground/config.yml). It also serves to define transformers which you can update to your liking in order to use Greenmask Playground more effectively and to get better understanding of the tool itself. To learn how to customize a configuration file, see Configuration

+

The pre-defined configuration file uses the NoiseDate transformer as an example. To learn more about other transformers and how to use them, see Transformers.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_0/index.html b/v0.2.5/release_notes/greenmask_0_1_0/index.html new file mode 100644 index 00000000..69bcbe38 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_0/index.html @@ -0,0 +1,3447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.0 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.0

+

We are excited to announce the release of Greenmask v0.1.0, marking the first production-ready version. This release addresses various bug fixes, introduces improvements, and includes documentation refactoring for enhanced clarity.

+

New features

+
    +
  • +

    Added positional arguments for the list-transformers command, allowing specific transformer information retrieval (e.g., greenmask list-transformers RandomDate).

    +
  • +
  • +

    Added a version parameter --version that prints Greenmask version.

    +
  • +
  • +

    Added numeric parameters support for -Int and -Float transformers.

    +
  • +
+

Improvements

+
    +
  • +

    Improved verbosity in custom transformer interaction, accumulating stderr data and forwarding it in batches instead of writing it one by one.

    +
  • +
  • +

    Updated dependencies to newer versions.

    +
  • +
  • +

    Enhanced the stability of the JSON line interaction protocol by utilizing the stdlib JSON encoder/decoder.

    +
  • +
  • +

    Modified the method for sending table metadata to custom transformers; now, it is sent via stdin in the first line in JSON format instead of providing it via command arguments.

    +
  • +
  • +

    Refactored template functions naming.

    +
  • +
  • +

    Refactored NoiseDate transformer implementation for improved stability and predictability.

    +
  • +
  • +

    Changed the default value for the Dict transformer: fail_not_matched parameter: true.

    +
  • +
  • +

    Refactored the Hash transformer to provide a salt parameter and receive a base64 encoded salt. If salt is not provided, it generates one randomly.

    +
  • +
  • +

    Added validation for the truncate parameter of NoiseDate and RandomDate transformers that issues a warning if the provided value is invalid.

    +
  • +
  • +

    Increased verbosity of parameter validation warnings, now properly forwarding warnings to stdout.

    +
  • +
+

Fixes

+
    +
  • +

    Resolved pgx driver connection leakage issue.

    +
  • +
  • +

    Fixed deletion failure of dumps for S3 storage.

    +
  • +
  • +

    Corrected cobra autocompletion for the Greenmask utility.

    +
  • +
  • +

    Fixed NOT NULL constraint validation.

    +
  • +
  • +

    Addressed JSON API interaction issues that previously caused deadlocks and timeouts.

    +
  • +
  • +

    Fixed encode-decoding for binary parameters, ensuring accurate forwarding of values to custom transformers.

    +
  • +
  • +

    Fixed the RandomChoice transformer to correctly marshal and unmarshal values during validation.

    +
  • +
  • +

    Introduced the nullable property for the SetNull transformer to enhance NOT NULL constraint validation.

    +
  • +
  • +

    Resolved text wrapping issues for the validate command.

    +
  • +
  • +

    Fixed build failures on Windows due to Linux platform dependencies.

    +
  • +
  • +

    Corrected stdout readline buffer reading during interaction with custom transformers.

    +
  • +
  • +

    Fixed integration tests.

    +
  • +
+

Ecosystem changes

+
    +
  • +

    Implemented CI/CD pipelines for the entire project.

    +
  • +
  • +

    Established a user-friendly playground in Docker compose, including:

    +
  • +
  • +

    Deployed Minio storage container.

    +
  • +
  • PostgreSQL container containing both the original database (Adventure Works) and the transformed (empty DB).
  • +
  • +

    Greenmask container itself.

    +
  • +
  • +

    Refactored current readme files.

    +
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_0_beta/index.html b/v0.2.5/release_notes/greenmask_0_1_0_beta/index.html new file mode 100644 index 00000000..42458b69 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_0_beta/index.html @@ -0,0 +1,3299 @@ + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.0 Beta - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.0.1 Beta

+

We are excited to announce the beta release of Greenmask, a versatile and open-source utility for PostgreSQL logical backup dumping, anonymization, and restoration. Greenmask is perfect for routine backup and restoration tasks. It facilitates anonymization and data masking for staging environments and analytics.

+

This release introduces a range of features aimed at enhancing database management and security.

+

Key features

+
    +
  • Cross-platform support — fully written in Go without platform dependencies.
  • +
  • Type-safe database operations — validates and encodes data, maintaining integrity.
  • +
  • Transformation validation — ensures data transformations are correct and maintainable.
  • +
  • Partitioned table support — simplifies configuration for partitioned tables.
  • +
  • Stateless and backward compatible — works alongside standard PostgreSQL utilities.
  • +
  • Parallel execution — enhances efficiency in dumping and restoration processes.
  • +
  • Multiple storage options — supports both local (directory) and remote (S3-like) storage solutions.
  • +
+

Download

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_1/index.html b/v0.2.5/release_notes/greenmask_0_1_1/index.html new file mode 100644 index 00000000..ae08f114 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_1/index.html @@ -0,0 +1,3442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.1 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.1

+

This release introduces a suite of new transformers, significantly enhancing Greenmask's capabilities for obfuscating PostgreSQL databases.

+

New features

+

Added the following new transformers:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TransformerDescription
RandomLatitudeGenerates a random latitude value
RandomLongitudeGenerates a random longitude value
RandomUnixTimeGenerates a random Unix timestamp
RandomMonthNameGenerates the name of a random month
RandomYearStringGenerates a random year as a string
RandomDayOfWeekGenerates a random day of the week
RandomDayOfMonthGenerates a random day of the month
RandomCenturyGenerates a random century
RandomTimezoneGenerates a random timezone
RandomEmailGenerates a random email address
RandomMacAddressGenerates a random MAC address
RandomDomainNameGenerates a random domain name
RandomURLGenerates a random URL
RandomUsernameGenerates a random username
RandomIPv4Generates a random IPv4 address
RandomIPv6Generates a random IPv6 address
RandomPasswordGenerates a random password
RandomWordGenerates a random word
RandomSentenceGenerates a random sentence
RandomParagraphGenerates a random paragraph
RandomCCTypeGenerates a random credit card type
RandomCCNumberGenerates a random credit card number
RandomCurrencyGenerates a random currency code
RandomAmountWithCurrencyGenerates a random monetary amount with currency
RandomTitleMaleGenerates a random title for males
RandomTitleFemaleGenerates a random title for females
RandomFirstNameGenerates a random first name
RandomFirstNameMaleGenerates a random male first name
RandomFirstNameFemaleGenerates a random female first name
RandomLastNameGenerates a random last name
RandomNameGenerates a full random name
RandomPhoneNumberGenerates a random phone number
RandomTollFreePhoneNumberGenerates a random toll-free phone number
RandomE164PhoneNumberGenerates a random phone number in E.164 format
RealAddressGenerates a real address
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_10/index.html b/v0.2.5/release_notes/greenmask_0_1_10/index.html new file mode 100644 index 00000000..f3f5d618 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_10/index.html @@ -0,0 +1,3299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.10 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.10

+

This release introduces improvements and bug fixes

+

Changes

+
    +
  • Fixed panic caused in RandomString transformer
  • +
  • Fixed wrong table size calculation. Now the table size includes TOAST table size
  • +
  • Added custom transformer interaction API defaults if not set
  • +
  • Changed docker workdir to greenmask home
  • +
  • Removed bucket name from object path prefix
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_11/index.html b/v0.2.5/release_notes/greenmask_0_1_11/index.html new file mode 100644 index 00000000..531c67f5 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_11/index.html @@ -0,0 +1,3298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.11 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.11

+

This release introduces improvements and bug fixes

+

Changes

+
    +
  • Added support for generated columns in the table
  • +
  • Fixed transformer parameters encoding issue caused by spf13/viper
  • +
  • Fixed table scoring for transformed table
  • +
  • Refactored connection management logic in restore command - fixes connection idle timeout
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_12/index.html b/v0.2.5/release_notes/greenmask_0_1_12/index.html new file mode 100644 index 00000000..cae130b1 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_12/index.html @@ -0,0 +1,3297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.12 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.12

+

This release introduces improvements and bug fixes

+

Changes

+
    +
  • Fixed config decoding issue caused
  • +
  • Fixed TOC entries merge behavior when data section is empty
  • +
  • Fixed integration tests for S3 storage
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_13/index.html b/v0.2.5/release_notes/greenmask_0_1_13/index.html new file mode 100644 index 00000000..18e9bea3 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_13/index.html @@ -0,0 +1,3295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.13 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.13

+

This release introduces only improvements in documentation deployment. The core greenmask utility does not contain any changes.

+

Changes

+
    +
  • Added documentation deployment with versioning
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_14/index.html b/v0.2.5/release_notes/greenmask_0_1_14/index.html new file mode 100644 index 00000000..3746b134 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_14/index.html @@ -0,0 +1,3295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.14 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.14

+

This release introduces bug fixes.

+

Changes

+
    +
  • Fixed large panic caused in Large Object dumper
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_2/index.html b/v0.2.5/release_notes/greenmask_0_1_2/index.html new file mode 100644 index 00000000..b01dd724 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_2/index.html @@ -0,0 +1,3296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.2 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.2

+

This release introduces bug fixes.

+

Fixes

+
    +
  • Fixed bug when raw COPY lines were parsed incorrectly
  • +
  • Fixed --version parameter behavior
  • +
  • Fixed --dbname parameter - now it correctly works with PostgreSQL connection string in URI format postgresql:///
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_3/index.html b/v0.2.5/release_notes/greenmask_0_1_3/index.html new file mode 100644 index 00000000..43897335 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_3/index.html @@ -0,0 +1,3295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.3 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.3

+

This release introduces bug fixes.

+

Fixes

+
    +
  • Fixed the JSON transformer's parsing for the operations fields
  • +
  • Fixed database connection string builder in pg_restore and pg_dump
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_4/index.html b/v0.2.5/release_notes/greenmask_0_1_4/index.html new file mode 100644 index 00000000..9013912c --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_4/index.html @@ -0,0 +1,3294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.4 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.4

+

This release introduces bug fixes.

+

Fixes

+
    +
  • Fixed database connection string behavior fields
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_5/index.html b/v0.2.5/release_notes/greenmask_0_1_5/index.html new file mode 100644 index 00000000..682ca586 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_5/index.html @@ -0,0 +1,3342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.5 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.5

+

This release introduces a new Greenmask command, improvements, bug fixes, and numerous documentation updates.

+

New features

+

Added a new Greenmask CLI command—show-transformer that shows detailed information about a specified transformer.

+

Improvements

+
    +
  • The Hash transformer has been completely remastered and now has the function parameter to choose from several hash algorithm options and the max_length parameter to truncate the hash tail.
  • +
  • Split information about transformers between the list-transformers and new show-transformer CLI commands, which allows for more comprehensible and useful outputs for both commands
  • +
  • Added error severity for the Cmd parameter validator
  • +
  • Improved UX for the Greenmask release binaries
  • +
+

Fixes

+
    +
  • Fixed metadata enrichment for validation warnings caused by RawValueValidator
  • +
  • Fixed a typo in the credit_card value for the type parameter of the Masking transformer
  • +
  • Fixed Greenmask Playground environment variables and the cleanup command
  • +
  • Fixed list-dump, list-transformers, and restore commands exit code on error
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_6/index.html b/v0.2.5/release_notes/greenmask_0_1_6/index.html new file mode 100644 index 00000000..e6146e53 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_6/index.html @@ -0,0 +1,3294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.6 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.6

+

This is a minor release that introduces a bug hotfix

+

Fixes

+
    +
  • Fixed uncontrolled buffer growth in the restore command
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_7/index.html b/v0.2.5/release_notes/greenmask_0_1_7/index.html new file mode 100644 index 00000000..4811ab0b --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_7/index.html @@ -0,0 +1,3372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.7 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.7

+

This release introduces a new Greenmask command, improvements, bug fixes, and documentation update.

+

New features

+
    +
  • Added restoration filtering by --table, --schema and --exclude-schema parameters
  • +
  • Validate parameters without parameters validates only configuration file
  • +
  • Added the --schema parameter, which allows to make a schema diff between the previous dump and the current. This + is useful when you want to check if the schema has changed after the migration. By controlling it we can exclude + data leakage after migration
  • +
  • Validate command divided by many stages that can be controlled using parameters
      +
    • Configuration validation
    • +
    • Transformer validation
    • +
    • Constraint violation check
    • +
    • Data difference check
    • +
    +
  • +
+

Improvements

+
    +
  • Improved Hash transformer
      +
    • Added salt parameter that can be set via config or via GREENMASK_GLOBAL_SALT
    • +
    • Added sha3 functions support in different modes (sha3-224, sha3-256, sha3-384, sha3-512)
    • +
    +
  • +
  • Refactored Cmd transformer logic
      +
    • Json API: Now it allows to use of column names instead of column indexes in JSON format
    • +
    • Csv API: Now it can use the column order from config via column remapping
    • +
    +
  • +
  • The validate command was rewritten almost from scratch.
      +
    • New option --transformed-only - displays only columns that are transformed with primary key (if exists). This + allows to reduce the output data and make it more readable
    • +
    • Implemented json format for output
    • +
    • Added the --table-format parameter which is responsible for the vertical and horizontal table orientation. + This works only when --format=text
    • +
    • Added the --warnings parameter, if it is specified then not only fatal-warnings will be displayed, but also + those with a lower severity
    • +
    +
  • +
+

Fixes

+
    +
  • Fixed --use-list option - now it applies toc entries according to the order in list file
  • +
  • Fixed --use-list option behaviour together with --list-format option (json or text). Now it + generates temporal list file in text format for providing it to the pg_restore call
  • +
  • Updated documentation according to the latest changes
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_8/index.html b/v0.2.5/release_notes/greenmask_0_1_8/index.html new file mode 100644 index 00000000..3874eeb7 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_8/index.html @@ -0,0 +1,3320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.8 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.8

+

This release introduces improvements and bug fixes

+

Improvements

+
    +
  • Implemented --exit-on-error parameter for pg_restore run. But it does not play for "data" section restoration now. If any error is caused in data section greenmask exits with the error whether --exit-on-error was provided or not. This might be fixed later
  • +
+

Fixes

+
    +
  • Fixed dependent objects dropping when running with the restore command with the --clean parameter. Useful when restoring and overriding only required tables
  • +
  • Fixed show-dump command output in text mode
  • +
  • Disabled CGO. Fixes problem when downloaded binary from repo cannot run
  • +
  • Fixed delete dump operation
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_1_9/index.html b/v0.2.5/release_notes/greenmask_0_1_9/index.html new file mode 100644 index 00000000..e234da74 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_1_9/index.html @@ -0,0 +1,3337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.1.9 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.1.9

+

This release introduces improvements and bug fixes

+

Improvements

+
    +
  • Implemented tables scoring according to the table size and transformation costs. This correctly spread the tables + dumping between the requested workers pool and reduces the execution time. Now greenmask introspects the table size, + adds the transformation scoring using the formula + score = tableSizeInBytes + (tableSizeInBytes * 0.03 * tableTransformationsCount), and uses the strategy "Largest + First". The problem is described here
  • +
  • Introduced no_verify_ssl parameter for S3 storage
  • +
  • Adjusted Dockerfile
      +
    • Changed entrypoint to greenmask binary
    • +
    • The greenmask container now runs under greenmask user and groups
    • +
    +
  • +
  • Refactored storage config structure. Now it contains the type that is used for the storage type determination
  • +
  • Most of the attributes may be overridden with environment variables where the letters are capitalized and the dots + are replaced with underscores. For instance, the setting storage.type might be represented with the environment + variable STORAGE_TYPE
  • +
  • Parameter --config is not required anymore. This simplifies the greenmask utility user experience
  • +
  • Directory storage set as the default
  • +
  • Set the default temporary directory as /tmp
  • +
  • Added environment variable section to the configuration docs
  • +
+

Fixes

+
    +
  • Fixed S3_REGION environment variable usage. Tested cases where the S3 storage is set up using S3 variables that + uses by github.com/aws/aws-sdk-go
  • +
  • Updated project dependencies to the latest version
  • +
+

Assets

+

To download the Greenmask binary compatible with your system, see +the release's assets list.

+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_0/index.html b/v0.2.5/release_notes/greenmask_0_2_0/index.html new file mode 100644 index 00000000..dbf34d00 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_0/index.html @@ -0,0 +1,3661 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.0 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.0

+

This is one of the biggest releases since Greenmask was founded. We've been in close contact with our users, gathering +feedback, and working hard to make Greenmask more flexible, reliable, and user-friendly.

+

This major release introduces exciting new features such as database subsetting, pgzip support, restoration in +topological order, and refactored transformers, significantly enhancing Greenmask's flexibility to better meet business +needs. It also includes several fixes and improvements.

+

Preface

+

This release is a major milestone that significantly expands Greenmask's functionality, transforming it into a simple, +extensible, and reliable solution for database security, data anonymization, and everyday operations. Our goal is to +create a core system that can serve as a foundation for comprehensive dynamic staging environments and robust data +security.

+

Notable changes

+
    +
  • +

    PostgreSQL 17 support - revised ported library to support PostgreSQL 17

    +
  • +
  • +

    Database Subset - a new feature that allows you to define a subset of the database, + allowing you to scale down the dump size (#110). This is + robust for multipurpose and especially useful for testing and development environments. It supports:

    +
      +
    • References with NULL values - generate the LEFT JOIN query + for the FK reference with NULL values to include them in the subset.
    • +
    • Supports virtual references (virtual foreign keys) - create a logical + FK in Greenmask that will be used for subset dependencies graph. The virtual reference can be defined for a column + or an expression, allowing you to get the value from JSON and similar.
    • +
    • Supports circular references - Greenmask will automatically resolve + circular dependencies in the subset by generating a recursive query. The query is generated with integrity checks + of the subset ensuring that the data gathered from circular dependencies is consistent.
    • +
    • Fully covered with documentation including troubleshooting + and examples.
    • +
    • Supports FK and PK that have more than one column (or expression).
    • +
    • Multi-cycles resolution in one strong connected component (SCC) is supported - Greenmask will generate a + recursive query for the SCC whether it is a single cycle or multiple cycles, making the subset system universal + for any database schema.
    • +
    • Supports polymorphic relationships - You can define +a virtual reference for a table with polymorphic references +using polymorphic_exprs attribute and use greenmask to generate a subset for such tables.
    • +
    +
  • +
  • +

    pgzip support for faster compression + and decompression — setting --pgzip can speed up the dump and + restoration processes through parallel compression. In some tests, it shows up to 5x faster dump and restore + operations.

    +
  • +
  • Restoration in topological order - This flag ensures + that dependent tables are not restored until the tables they depend on have been restored. This is useful when you + want to be notified of errors as immediately as possible without waiting for the entire table to be restored.
  • +
  • +

    Insert format restoration - For a flexible restoration + process, Greenmask now supports data restoration in the INSERT format. It generates the insert statements based on + COPY records from the dump. You do not need to re-dump your data to use this feature; it can be defined in the + restore command. The list of new features related to the INSERT format:

    +
      +
    • Generate INSERT statements with the **ON CONFLICT DO NOTHING** clause if the flag --on-conflict-do-nothing + is set.
    • +
    • Error exclusion list in the config to skip + certain errors and continue inserting subsequent rows from the dump.
    • +
    • Use cases - incremental dump and restoration for logical data. For example, if you have a database, and you + want to insert data periodically from another source, this can be used together with the database subset and + transformations to catch up the target database.
    • +
    +
  • +
  • +

    Restore data batching (#173) - + By default, the COPY protocol returns the error only on transaction commit. To override this behavior, use the + --batch-size flag to specify the number of rows to insert in a single batch during the COPY command. This is useful + when you want to control the transaction size and commit.

    +
  • +
  • +

    Introduced keep_null parameter for RandomPerson transformer.

    +
  • +
  • +

    Introduced dynamic parameters in the transformers

    +
      +
    • Most transformers now support dynamic parameters where applicable.
    • +
    • Dynamic parameters are strictly enforced. If you need to cast values to another type, Greenmask provides templates + and predefined cast functions accessible via cast_to. These functions cover frequent operations such as + UnixTimestampToDate and IntToBool.
    • +
    +
  • +
  • The transformation logic has been significantly refactored, making transformers more customizable and flexible than + before.
  • +
  • +

    Introduced transformation engines

    +
      +
    • random - generates transformer values based on pseudo-random algorithms.
    • +
    • hash - generates transformer values using hash functions. Currently, it utilizes sha3 hash functions, which + are secure but perform slowly. In the stable release, there will be an option to choose between sha3 and + SipHash.
    • +
    +
  • +
  • +

    Introduced static parameters value template

    +
  • +
  • +

    Dumps retention management - Introduced retention + parameters (#201) for the delete command. Introduced two new + statuses: failed and in progress. A dump is considered failed if it lacks a "done" heartbeat or + if the last heartbeat timestamp exceeds 30 minutes. The delete command now supports the following retention + parameters:

    +
      +
    • --dry-run: Runs the deletion operation in test mode with verbose output, without actually deleting anything.
    • +
    • --before-date 2024-08-27T23:50:54+00:00: Deletes dumps older than the specified date. The date must be provided + in RFC3339Nano format, for example: 2021-01-01T00:00:00Z.
    • +
    • --retain-recent 10: Retains the N most recent dumps, where N is specified by the user.
    • +
    • --retain-for 1w2d3h4m5s6ms7us8ns: Retains dumps for the specified duration. The format supports weeks (w), + days (d), hours (h), minutes (m), seconds (s), milliseconds (ms), microseconds (us), and nanoseconds (ns).
    • +
    • --prune-failed: Prunes (removes) all dumps that have failed.
    • +
    • --prune-unsafe: Prunes dumps with "unknown-or-failed" statuses. This option only works in conjunction with + --prune-failed.
    • +
    +
  • +
  • +

    Docker image mirroring into the GitHub Container Registry

    +
  • +
+

Core

+
    +
  • Introduced the Parametrizer interface, now implemented for both dynamic and static parameters.
  • +
  • Renamed most of the toolkit types for enhanced clarity and comprehensive documentation coverage.
  • +
  • Refactored the Driver initialization logic.
  • +
  • Added validation warnings for overridden types in the Driver.
  • +
  • Migrated existing built-in transformers to utilize the new Parametrizer interface.
  • +
  • Implemented a new abstraction, TransformationContext, as the first step towards enabling new feature transformation + conditions (#34).
  • +
  • Optimized most transformers for performance in both dynamic and static modes. While dynamic mode offers flexibility, + static mode ensures performance remains high. Using only the necessary transformation features helps keep + transformation time predictable.
  • +
+

Transformers

+
    +
  • +

    RandomEmail - Introduces a new transformer that + supports both random and deterministic engines. It allows for flexible email value generation; you can use column + values in the template and choose to keep the original domain or select any from the domains parameter.

    +
  • +
  • +

    NoiseDate, NoiseFloat, NoiseInt - + These transformers support both random and deterministic engines, offering dynamic mode parameters that control the + noise thresholds within the min and max range. Unlike previous implementations which used a single ratio + parameter, the new release features min_ratio and max_ratio parameters to define noise values more precisely. + Utilizing the hash engine in these transformers enhances security by complicating statistical analysis for + attackers, especially when the same salt is used consistently over long periods.

    +
  • +
  • +

    NoiseNumeric - A newly implemented transformer, + sharing features with NoiseInt and NoiseFloat, but specifically designed for numeric values (large integers or + floats). It provides a decimal parameter to handle values with fractions.

    +
  • +
  • +

    RandomChoice - Now supports the hash engine

    +
  • +
  • +

    RandomDate, RandomFloat, RandomInt - + Now enhanced with hash engine support. Threshold parameters min and max have been updated to support dynamic mode, + allowing for more flexible configurations.

    +
  • +
  • +

    RandomNumeric - A new transformer specifically + designed for numeric types (large integers or floats), sharing similar features with RandomInt and RandomFloat, + but tailored for handling huge numeric values.

    +
  • +
  • +

    RandomString - Now supports hash engine mode

    +
  • +
  • +

    RandomUnixTimestamp - This new transformer + generates Unix timestamps with selectable units (second, millisecond, microsecond, nanosecond). Similar in + function to RandomDate, it supports the hash engine and dynamic parameters for min and max thresholds, with the + ability to override these units using min_unit and max_unit parameters.

    +
  • +
  • +

    RandomUuid - Added hash engine support

    +
  • +
  • +

    RandomPerson - Implemented a new transformer that + replaces RandomName, RandomLastName, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, + RandomTitleMale, and RandomTitleFemale. This new transformer offers enhanced customizability while providing + similar functionalities as the previous versions. It generates personal data such as FirstName, LastName, and + Title, based on the provided gender parameter, which now supports dynamic mode. Future minor versions will allow + for overriding the default names database.

    +
  • +
  • +

    Added tsModify - a new + template function for time.Time objects modification

    +
  • +
  • +

    Introduced a new RandomIp transformer capable of + generating a random IP address based on the specified netmask.

    +
  • +
  • +

    Added a new RandomMac transformer for generating + random Mac addresses.

    +
  • +
  • +

    Deleted transformers include RandomMacAddress, RandomIPv4, RandomIPv6, RandomUnixTime, RandomTitleMale, + RandomTitleFemale, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomLastName, and + RandomName due to the introduction of more flexible and unified options.

    +
  • +
+

Fixes and improvements

+
    +
  • Fixed validate command with the --table flag, which had the + wrong order of the table name representation {{ table_name }}.{{ schema }} instead of + {{ schema }}.{{ table_name }}.
  • +
  • Fixed + Row.SetColumn out of range validation.
  • +
  • Fixed + restoreWorker panic caused when the worker received an error from pgx.
  • +
  • Fixed error + handling in the restore command.
  • +
  • Fixed restore + jobs now start a transaction for each table restoration and commit it after the table restoration is done.
  • +
  • Fixed + --exit-on-error works incorrectly in the restore command. Now, the --exit-on-error flag works correctly with the + data section.
  • +
  • Fixed transaction rollback in the validate command.
  • +
  • Fixed typo in documentation.
  • +
  • Fixed a CI/CD bug related to retrieving current tags.
  • +
  • Fixed the Docker image tag for latest to exclude specific + keywords.
  • +
  • Fixed a case where the hashing value was not set for each column + in the RandomPerson transformer.
  • +
  • Fixed original email value parsing conditions.
  • +
  • Subset docs revision.
  • +
  • Fixes a case where data entries were excluded by exclusion + parameters such as --exclude-table, --table, etc.
  • +
  • Fixed zero bytes that were written in the buffer due to the wrong + buffer limit in the Email transformer.
  • +
  • Fixed a case where the overridden type of column via + columns_type_override did not work.
  • +
  • Fixed a case where an unknown option provided in the config was + just ignored instead of throwing an error.
  • +
  • Fixed a case where min and max parameter values were ignored + in transformers NoiseDate, NoiseNumeric, NoiseFloat, NoiseInt, RandomNumeric, RandomFloat, and + RandomInt.
  • +
  • Fixed TOC entry COPY restoration statement - added missing + newline and semicolon. Now backward pg_dump call pg_restore 1724504511561 --file 1724504511561.sql is backward + compatible and works as expected.
  • +
  • Fixed a case where dump/restore fails when masking tables with a + generated column.
  • +
  • Updated go version (v1.22) and dependencies
  • +
  • Revised installation section of doc
  • +
  • PostgreSQL 17 support - revised ported library to support PostgreSQL 17
  • +
  • Fixed integration tests - reset the go test cache on each iteration
  • +
  • Push docker images to ghcr.io registry
  • +
  • A bunch of refactoring and code cleanup to make the codebase more maintainable and readable.
  • +
+

Full Changelog: v0.1.14...v0.2.0

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_0_b1/index.html b/v0.2.5/release_notes/greenmask_0_2_0_b1/index.html new file mode 100644 index 00000000..0225e02d --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_0_b1/index.html @@ -0,0 +1,3549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.0b1 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.0b1 (pre-release)

+

This major beta release introduces new features and refactored transformers, significantly enhancing Greenmask's +flexibility to better meet business needs.

+

Changes overview

+
    +
  • Introduced dynamic parameters in the transformers
      +
    • Most transformers now support dynamic parameters where applicable.
    • +
    • Dynamic parameters are strictly enforced. If you need to cast values to another type, Greenmask provides templates + and predefined cast functions accessible via cast_to. These functions cover frequent operations such as + UnixTimestampToDate and IntToBool.
    • +
    +
  • +
  • The transformation logic has been significantly refactored, making transformers more customizable and flexible than + before.
  • +
  • +

    Introduced transformation engines

    +
      +
    • random - generates transformer values based on pseudo-random algorithms.
    • +
    • hash - generates transformer values using hash functions. Currently, it utilizes sha3 hash functions, which + are secure but perform slowly. In the stable release, there will be an option to choose between sha3 and + SipHash.
    • +
    +
  • +
  • +

    Introduced static parameters value template

    +
  • +
+

Notable changes

+

Core

+
    +
  • Introduced the Parametrizer interface, now implemented for both dynamic and static parameters.
  • +
  • Renamed most of the toolkit types for enhanced clarity and comprehensive documentation coverage.
  • +
  • Refactored the Driver initialization logic.
  • +
  • Added validation warnings for overridden types in the Driver.
  • +
  • Migrated existing built-in transformers to utilize the new Parametrizer interface.
  • +
  • Implemented a new abstraction, TransformationContext, as the first step towards enabling new feature transformation + conditions (#34).
  • +
  • Optimized most transformers for performance in both dynamic and static modes. While dynamic mode offers flexibility, + static mode ensures performance remains high. Using only the necessary transformation features helps keep + transformation time predictable.
  • +
+

Documentation

+

Documentation has been significantly refactored. New information about features and updates to transformer descriptions +have been added.

+

Transformers

+
    +
  • +

    RandomEmail - Introduces a new transformer that + supports both random and deterministic engines. It allows for flexible email value generation; you can use column + values in the template and choose to keep the original domain or select any from the domains parameter.

    +
  • +
  • +

    NoiseDate, NoiseFloat, NoiseInt - + These transformers support both random and deterministic engines, offering dynamic mode parameters that control the + noise thresholds within the min and max range. Unlike previous implementations which used a single ratio + parameter, the new release features min_ratio and max_ratio parameters to define noise values more precisely. + Utilizing the hash engine in these transformers enhances security by complicating statistical analysis for + attackers, especially when the same salt is used consistently over long periods.

    +
  • +
  • +

    NoiseNumeric - A newly implemented transformer, + sharing features with NoiseInt and NoiseFloat, but specifically designed for numeric values (large integers or + floats). It provides a decimal parameter to handle values with fractions.

    +
  • +
  • +

    RandomChoice - Now supports the hash engine

    +
  • +
  • +

    RandomDate, RandomFloat, RandomInt - + Now enhanced with hash engine support. Threshold parameters min and max have been updated to support dynamic mode, + allowing for more flexible configurations.

    +
  • +
  • +

    RandomNumeric - A new transformer specifically + designed for numeric types (large integers or floats), sharing similar features with RandomInt and RandomFloat, + but tailored for handling huge numeric values.

    +
  • +
  • +

    RandomString - Now supports hash engine mode

    +
  • +
  • +

    RandomUnixTimestamp - This new transformer + generates Unix timestamps with selectable units (second, millisecond, microsecond, nanosecond). Similar in + function to RandomDate, it supports the hash engine and dynamic parameters for min and max thresholds, with the + ability to override these units using min_unit and max_unit parameters.

    +
  • +
  • +

    RandomUuid - Added hash engine support

    +
  • +
  • +

    RandomPerson - Implemented a new transformer that + replaces RandomName, RandomLastName, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, + RandomTitleMale, and RandomTitleFemale. This new transformer offers enhanced customizability while providing + similar functionalities as the previous versions. It generates personal data such as FirstName, LastName, and + Title, based on the provided gender parameter, which now supports dynamic mode. Future minor versions will allow + for overriding the default names database.

    +
  • +
  • +

    Added tsModify - a new + template function for time.Time objects modification

    +
  • +
  • +

    Introduced a new RandomIp transformer capable of + generating a random IP address based on the specified netmask.

    +
  • +
  • +

    Added a new RandomMac transformer for generating + random Mac addresses.

    +
  • +
  • +

    Deleted transformers include RandomMacAddress, RandomIPv4, RandomIPv6, RandomUnixTime, RandomTitleMale, + RandomTitleFemale, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomLastName, and + RandomName due to the introduction of more flexible and unified options.

    +
  • +
+

Full Changelog: v0.1.14...v0.2.0b1

+

Playground usage for beta version

+

If you want to run a Greenmask playground for the beta version v0.2.0b1 execute:

+
git checkout tags/v0.2.0b1 -b v0.2.0b1
+docker-compose run greenmask-from-source
+
+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_0_b2/index.html b/v0.2.5/release_notes/greenmask_0_2_0_b2/index.html new file mode 100644 index 00000000..70c368c3 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_0_b2/index.html @@ -0,0 +1,3506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.0b2 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.0b2 (pre-release)

+

This major beta release introduces new features such as the database subset, pgzip support, restoration in +topological and many more. It also includes fixes and improvements.

+

Preface

+

This release is a major milestone that significantly expands Greenmask's functionality, transforming it into a simple, +extensible, and reliable solution for database security, data anonymization, and everyday operations. Our goal is to +create a core system that can serve as a foundation for comprehensive dynamic staging environments and robust data +security.

+

Notable changes

+
    +
  • +

    Database Subset - a new feature that allows you to define a subset of the database, + allowing you to scale down the dump size (#110). This is + robust for multipurpose and especially useful for testing and development environments. It supports:

    +
      +
    • References with NULL values - generate the LEFT JOIN query + for the FK reference with NULL values to include them in the subset.
    • +
    • Supports virtual references (virtual foreign keys) - create a logical + FK in Greenmask that will be used for subset dependencies graph. The virtual reference can be defined for a column + or an expression, allowing you to get the value from JSON and similar.
    • +
    • Supports circular references - Greenmask will automatically resolve + circular dependencies in the subset by generating a recursive query. The query is generated with integrity checks + of the subset ensuring that the data gathered from circular dependencies is consistent.
    • +
    • Fully covered with documentation including troubleshooting + and examples.
    • +
    • Supports FK and PK that have more than one column (or expression).
    • +
    • Multi-cycles resolution in one strong connected component (SCC) is supported - Greenmask will generate a + recursive query for the SCC whether it is a single cycle or multiple cycles, making the subset system universal + for any database schema.
    • +
    +
  • +
  • +

    pgzip support for faster compression + and decompression — setting --pgzip can speed up the dump and + restoration processes through parallel compression. In some tests, it shows up to 5x faster dump and restore + operations.

    +
  • +
  • Restoration in topological order - This flag ensures + that dependent tables are not restored until the tables they depend on have been restored. This is useful when you + want to be notified of errors as immediately as possible without waiting for the entire table to be restored.
  • +
  • +

    Insert format restoration - For a flexible restoration + process, Greenmask now supports data restoration in the INSERT format. It generates the insert statements based on + COPY records from the dump. You do not need to re-dump your data to use this feature; it can be defined in the + restore command. The list of new features related to the INSERT format:

    +
      +
    • Generate INSERT statements with the **ON CONFLICT DO NOTHING** clause if the flag --on-conflict-do-nothing + is set.
    • +
    • Error exclusion list in the config to skip + certain errors and continue inserting subsequent rows from the dump.
    • +
    • Use cases - incremental dump and restoration for logical data. For example, if you have a database, and you + want to insert data periodically from another source, this can be used together with the database subset and + transformations to catch up the target database.
    • +
    +
  • +
  • +

    Restore data batching (#173) - + By default, the COPY protocol returns the error only on transaction commit. To override this behavior, use the + --batch-size flag to specify the number of rows to insert in a single batch during the COPY command. This is useful + when you want to control the transaction size and commit.

    +
  • +
  • Introduced keep_null parameter for RandomPerson transformer.
  • +
+

Fixes and improvements

+
    +
  • Fixed validate command with the --table flag, which had the + wrong order of the table name representation {{ table_name }}.{{ schema }} instead of + {{ schema }}.{{ table_name }}.
  • +
  • Fixed + Row.SetColumn out of range validation.
  • +
  • Fixed + restoreWorker panic caused when the worker received an error from pgx.
  • +
  • Fixed error + handling in the restore command.
  • +
  • Fixed restore + jobs now start a transaction for each table restoration and commit it after the table restoration is done.
  • +
  • Fixed + --exit-on-error works incorrectly in the restore command. Now, the --exit-on-error flag works correctly with the + data section.
  • +
  • Fixed transaction rollback in the validate command.
  • +
  • Fixed typo in documentation.
  • +
  • Fixed a CI/CD bug related to retrieving current tags.
  • +
  • Fixed the Docker image tag for latest to exclude specific + keywords.
  • +
  • Fixed a case where the hashing value was not set for each column + in the RandomPerson transformer.
  • +
  • Fixed original email value parsing conditions.
  • +
  • Subset docs revision.
  • +
  • Fixes a case where data entries were excluded by exclusion + parameters such as --exclude-table, --table, etc.
  • +
  • Fixed zero bytes that were written in the buffer due to the wrong + buffer limit in the Email transformer.
  • +
  • Fixed a case where the overridden type of column via + columns_type_override did not work.
  • +
  • Fixed a case where an unknown option provided in the config was + just ignored instead of throwing an error.
  • +
  • Fixed a case where min and max parameter values were ignored + in transformers NoiseDate, NoiseNumeric, NoiseFloat, NoiseInt, RandomNumeric, RandomFloat, and + RandomInt.
  • +
  • Fixed TOC entry COPY restoration statement - added missing + newline and semicolon. Now backward pg_dump call pg_restore 1724504511561 --file 1724504511561.sql is backward + compatible and works as expected.
  • +
  • Fixed a case where dump/restore fails when masking tables with a + generated column.
  • +
  • Updated go version (v1.22) and dependencies
  • +
  • Revised installation section of doc
  • +
  • A bunch of refactoring and code cleanup to make the codebase more maintainable and readable.
  • +
+

Full Changelog: v0.2.0b1...v0.2.0b2

+

Playground usage for beta version

+

If you want to run a Greenmask playground for the beta version v0.2.0b2 execute:

+
git checkout tags/v0.2.0b2 -b v0.2.0b2
+docker-compose run greenmask-from-source
+
+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_1/index.html b/v0.2.5/release_notes/greenmask_0_2_1/index.html new file mode 100644 index 00000000..29d4bf13 --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_1/index.html @@ -0,0 +1,3351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.1 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.1

+

This release introduces two new features transformation conditions and transformation inheritance for primary and +foreign keys. It also includes several bug fixes and improvements.

+

Changes

+
    +
  • Feat: Transformation conditions + execute a defined transformation only if a specified condition is + met. #133
  • +
  • Feat: Transformation inheritance - transformation + inheritance for partitioned tables and tables with foreign keys. Define once and apply to all.
  • +
  • CI/CD: Add golangci-lint job to pull request check #223
  • +
  • CI/CD: Deploy development version of the documentation (main branch) and divided jobs into separate blocks and made them + reusable #212
  • +
  • Fix: Fixed type in subset documentation #211
  • +
  • Fix: Bump go and python dependencies #219
  • +
  • Fix: Fatal validation error in playground #224
  • +
  • Fix: Code refactoring and golangci-lint warns fixes #226
  • +
  • Docs: Revised README.md - added badges, updated the description, added getting started section, added greenmask design + schema #216 #217 #218
  • +
  • Docs: main page errors in docs #221
  • +
  • Docs: Revised README.md according to the latest changes #225
  • +
  • Docs: moved documentation to docs.greenmask.io, added feedback form and GA + integration #220
  • +
+

Full Changelog: v0.2.0...v0.2.1

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_2/index.html b/v0.2.5/release_notes/greenmask_0_2_2/index.html new file mode 100644 index 00000000..83b3bd0b --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_2/index.html @@ -0,0 +1,3335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.2 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.2

+

This release introduces bug fixes.

+

Changes

+
    +
  • Fixed a case when apply_for_references applies validation to all transformations even if they are not + marked as apply_for_references #236.
  • +
  • Fixed issue with the latest tag disappearing in the documentation #234.
  • +
+

Full Changelog: v0.2.1...v0.2.2

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_3/index.html b/v0.2.5/release_notes/greenmask_0_2_3/index.html new file mode 100644 index 00000000..69a298ec --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_3/index.html @@ -0,0 +1,3344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.3 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.3

+

This release introduces bug fixes.

+

Changes

+
    +
  • Fixed an issue where the partitioned table itself was executed in the restore worker, resulting in a "file not found" + error in storage. Closes bug: restoring partitioned tables + fails #238 #242.
  • +
  • Fixed template function availability #239. Renamed methods + according to the documentation: GetColumnRawValue is now GetRawColumnValue, and SetColumnRawValue is now + SetRawColumnValue #242
  • +
  • Resolved an issue where Dump.createTocEntries processed partitioned tables as if they were physical entities, despite + being logical #241
  • +
  • Corrected merging in the pre-data, data, and post-data sections, which previously caused a panic in dump command when + the post-data section was excluded #241
  • +
  • Fixed an issue where dumps created with --load-via-partition-root did not use the root partition table in --inserts + generation during restoration #241
  • +
+

Full Changelog: v0.2.2...v0.2.3

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_4/index.html b/v0.2.5/release_notes/greenmask_0_2_4/index.html new file mode 100644 index 00000000..2680943b --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_4/index.html @@ -0,0 +1,3334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.4 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.4

+

This release introduces bug fixes.

+

Changes

+
    +
  • Fixed a bug #244 that caused incorrect subset and transformer + inheritance behavior. See the merge request #245.
  • +
+

Full Changelog: v0.2.3...v0.2.4

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/release_notes/greenmask_0_2_5/index.html b/v0.2.5/release_notes/greenmask_0_2_5/index.html new file mode 100644 index 00000000..19e39bdb --- /dev/null +++ b/v0.2.5/release_notes/greenmask_0_2_5/index.html @@ -0,0 +1,3333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Greenmask 0.2.5 - Greenmask — PostgreSQL database anonymization and synthetic data generation tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Greenmask 0.2.5

+

This release introduces bug fixes.

+

Changes

+
    +
  • Fixed a bug where a subset query was not generated when provided #247.
  • +
+

Full Changelog: v0.2.4...v0.2.5

+ +

Feel free to reach out to us if you have any questions or need assistance:

+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/v0.2.5/search/search_index.json b/v0.2.5/search/search_index.json new file mode 100644 index 00000000..2ea3ab2a --- /dev/null +++ b/v0.2.5/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"About Greenmask","text":""},{"location":"#dump-anonymization-and-synthetic-data-generation-tool","title":"Dump anonymization and synthetic data generation tool","text":"

Greenmask is a powerful open-source utility that is designed for logical database backup dumping, anonymization, synthetic data generation and restoration. It has ported PostgreSQL libraries, making it reliable. It is stateless and does not require any changes to your database schema. It is designed to be highly customizable and backward-compatible with existing PostgreSQL utilities, fast and reliable.

"},{"location":"#key-features","title":"Key features","text":"
  • Deterministic transformers \u2014 deterministic approach to data transformation based on the hash functions. This ensures that the same input data will always produce the same output data. Almost each transformer supports either random or hash engine making it universal for any use case.
  • Dynamic parameters \u2014 almost each transformer supports dynamic parameters, allowing to parametrize the transformer dynamically from the table column value. This is helpful for resolving the functional dependencies between columns and satisfying the constraints.
  • Transformation validation and easy maintainable - During configuration process, Greenmask provides validation warnings, data transformation diff and schema diff features, allowing you to monitor and maintain transformations effectively throughout the software lifecycle. Schema diff helps to avoid data leakage when schema changed.
  • Partitioned tables transformation inheritance \u2014 Define transformation configurations once and apply them to all partitions within partitioned tables (using apply_for_inherited parameter), simplifying the anonymization process.
  • Stateless - Greenmask operates as a logical dump and does not impact your existing database schema.
  • Cross-platform - Can be easily built and executed on any platform, thanks to its Go-based architecture, which eliminates platform dependencies.
  • Database type safe - Ensures data integrity by validating data and utilizing the database driver for encoding and decoding operations. This approach guarantees the preservation of data formats.
  • Backward compatible - It fully supports the same features and protocols as existing vanilla PostgreSQL utilities. Dumps created by Greenmask can be successfully restored using the pg_restore utility.
  • Extensible - Users have the flexibility to implement domain-based transformations in any programming language or use predefined templates.
  • Integrable - Integrate seamlessly into your CI/CD system for automated database anonymization and restoration.
  • Parallel execution - Take advantage of parallel dumping and restoration, significantly reducing the time required to deliver results.
  • Provide variety of storages - offers a variety of storage options for local and remote data storage, including directories and S3-like storage solutions.
  • Pgzip support for faster compression \u2014 by setting --pgzip, it can speeds up the dump and restoration processes through parallel compression.
"},{"location":"#use-cases","title":"Use cases","text":"

Greenmask is ideal for various scenarios, including:

  • Backup and restoration. Use Greenmask for your daily routines involving logical backup dumping and restoration. It seamlessly handles tasks like table restoration after truncation. Its functionality closely mirrors that of pg_dump and pg_restore, making it a straightforward replacement.
  • Anonymization, transformation, and data masking. Employ Greenmask for anonymizing, transforming, and masking backups, especially when setting up a staging environment or for analytical purposes. It simplifies the deployment of a pre-production environment with consistently anonymized data, facilitating faster time-to-market in the development lifecycle.
"},{"location":"#links","title":"Links","text":"
  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"architecture/","title":"Architecture","text":""},{"location":"architecture/#introduction","title":"Introduction","text":"

It is evident that the most appropriate approach for executing logical backup dumping and restoration is by leveraging the core PostgreSQL utilities, specifically pg_dump and pg_restore. Greenmask has been purposefully designed to align with PostgreSQL's native utilities, ensuring compatibility. Greenmask primarily handles data dumping operations independently and delegates the responsibilities of schema dumping and restoration to pg_dump and pg_restore respectively, maintaining seamless integration with PostgreSQL's standard tools.

"},{"location":"architecture/#backup-process","title":"Backup process","text":"

The process of backing up PostgreSQL databases is divided into three distinct sections:

  • Pre-data \u2014 this section encompasses the raw schema of tables, excluding primary keys (PK) and foreign keys (FK).
  • Data \u2014 the data section contains the actual table data in COPY format, including information about sequence current values and Large Objects data.
  • Post-data \u2014 in this section, you'll find the definitions of indexes, triggers, rules, and constraints (such as PK and FK).

Greenmask focuses exclusively on the data section during runtime. It delegates the handling of the pre-data and post-data sections to the core PostgreSQL utilities, pg_dump and pg_restore.

Greenmask employs the directory format of pg_dump and pg_restore. This format is particularly suitable for parallel execution and partial restoration, and it includes clear metadata files that aid in determining the backup and restoration steps. Greenmask has been optimized to work seamlessly with remote storage systems and anonymization procedures.

When performing data dumping, Greenmask utilizes the COPY command in TEXT format, maintaining reliability and compatibility with the vanilla PostgreSQL utilities.

Additionally, Greenmask supports parallel execution, significantly reducing the time required for the dumping process.

"},{"location":"architecture/#storage-options","title":"Storage options","text":"

The core PostgreSQL utilities, pg_dump and pg_restore, traditionally operate with files in a directory format, offering no alternative methods. To meet modern backup requirements and provide flexible approaches, Greenmask introduces the concept of storages.

  • s3 \u2014 this option supports any S3-like storage system, including AWS S3, which makes it versatile and adaptable to various cloud-based storage solutions.
  • directory \u2014 this is the standard choice, representing the ordinary filesystem directory for local storage.
"},{"location":"architecture/#restoration-process","title":"Restoration process","text":"

In the restoration process, Greenmask combines the capabilities of different tools:

  • For schema restoration Greenmask utilizes pg_restore to restore the database schema. This ensures that the schema is accurately reconstructed.
  • For data restoration Greenmask independently applies the data using the COPY protocol. This allows Greenmask to handle the data efficiently, especially when working with various storage solutions. Greenmask is aware of the restoration metadata, which enables it to download only the necessary data. This feature is particularly useful for partial restoration scenarios, such as restoring a single table from a complete backup.

Greenmask also supports parallel restoration, which can significantly reduce the time required to complete the restoration process. This parallel execution enhances the efficiency of restoring large datasets.

"},{"location":"architecture/#data-anonymization-and-validation","title":"Data anonymization and validation","text":"

Greenmask works with COPY lines, collects schema metadata using the Golang driver, and employs this driver in the encoding and decoding process. The validate command offers a way to assess the impact on both schema (validation warnings) and data (transformation and displaying differences). This command allows you to validate the schema and data transformations, ensuring the desired outcomes during the anonymization process.

"},{"location":"architecture/#customization","title":"Customization","text":"

If your table schema relies on functional dependencies between columns, you can address this challenge using the TemplateRecord transformer. This transformer enables you to define transformation logic for entire tables, offering type-safe operations when assigning new values.

Greenmask provides a framework for creating your custom transformers, which can be reused efficiently. These transformers can be seamlessly integrated without requiring recompilation, thanks to the PIPE (stdin/stdout) interaction.

Note

Furthermore, Greenmask's architecture is designed to be highly extensible, making it possible to introduce other interaction protocols, such as HTTP or Socket, for conducting anonymization procedures.

"},{"location":"architecture/#postgresql-version-compatibility","title":"PostgreSQL version compatibility","text":"

Greenmask is compatible with PostgreSQL versions 11 and higher.

"},{"location":"configuration/","title":"Configuration","text":"
# Configuration\n

The configuration is organized into six sections:

  • common \u2014 settings that can be used for both the dump and restore commands
  • log \u2014 settings for the logging subsystem
  • storage \u2014 settings for the storage locations where dumps are stored
  • dump \u2014 settings for the dump command. This section includes pg_dump options and transformation parameters.
  • restore \u2014 settings for the restore command. It contains pg_restore options and additional restoration scripts.
  • custom_transformers \u2014 definitions of the custom transformers that interact through stdin and stdout. Once a custom transformer is configured, it becomes accessible via the greenmask list-transformers command.
"},{"location":"configuration/#common-section","title":"common section","text":"

In the common section of the configuration, you can specify the following settings:

  • pg_bin_path \u2014 path to the PostgreSQL binaries. Note that the PostgreSQL server version must match the provided binaries.
  • tmp_dir \u2014 temporary directory for storing the table of contents files. Default value is /tmp

Note

Greenmask exclusively manages data dumping and data restoration processes, delegating schema dumping to the pg_dumputility and schema restoration to the pg_restore utility. Both pg_dump and pg_restore rely on a toc.dat file located in a specific directory, which contains metadata and object definitions. Therefore, the tmp_dir parameter is essential for storing the toc.dat file during the dumping or restoration procedure. It is important to note that all artifacts in this directory will be automatically deleted once the Greenmask command is completed.

"},{"location":"configuration/#log-section","title":"log section","text":"

In the log section of the configuration, you can specify the following settings:

  • level \u2014 specifies the level of logging, which can be one of the following: debug, info, or error. The default level is info.
  • format \u2014 defines the logging format, which can be either json or text. The default format is text.
"},{"location":"configuration/#storage-section","title":"storage section","text":"

In the storage section, you can configure the storage driver for storing the dumped data. Currently, two storage type options are supported: directory and s3.

directory options3 option

The directory storage option refers to a filesystem directory where the dump data will be stored.

Parameters include path which specifies the path to the directory in the filesystem where the dumps will be stored.

directory storage config example
storage:\n  type: \"directory\"\n  directory:\n    path: \"/home/user_name/storage_dir\" # (1)\n

By choosing the s3 storage option, you can store dump data in an S3-like remote storage service, such as Amazon S3 or Azure Blob Storage. Here are the parameters you can configure for S3 storage:

  • endpoint \u2014 overrides the default AWS endpoint to a custom one for making requests
  • bucket \u2014 the name of the bucket where the dump data will be stored
  • prefix \u2014 a prefix for objects in the bucket, specified in path format
  • region \u2014 the S3 service region
  • storage_class \u2014 the storage class for performing object requests
  • no_verify_ssl \u2014 disable SSL certificate verification
  • access_key_id \u2014 access key for authentication
  • secret_access_key \u2014 secret access key for authentication
  • session_token \u2014 session token for authentication
  • role_arn \u2014 Amazon resource name for role-based authentication
  • session_name \u2014 role session name to uniquely identify a session
  • max_retries \u2014 the number of retries on request failures
  • cert_file \u2014 the path to the SSL certificate for making requests
  • max_part_size \u2014 the maximum part length for one request
  • concurrency \u2014 the number of goroutines to use in parallel for each upload call when sending parts
  • use_list_objects_v1 \u2014 use the old v1 ListObjects request instead of v2 one
  • force_path_style \u2014 force the request to use path-style addressing (e. g., http://s3.amazonaws.com/BUCKET/KEY) instead of virtual hosted bucket addressing (e. g., http://BUCKET.s3.amazonaws.com/KEY)
  • use_accelerate \u2014 enable S3 Accelerate feature
s3 storage config example for Minio running in Docker
storage:  \n  type: \"s3\"\n  s3:\n    endpoint: \"http://localhost:9000\"\n    bucket: \"testbucket\"\n    region: \"us-east-1\"\n    access_key_id: \"Q3AM3UQ867SPQQA43P2F\"\n    secret_access_key: \"zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG\"\n
"},{"location":"configuration/#dump-section","title":"dump section","text":"

In the dump section of the configuration, you configure the greenmask dump command. It includes the following parameters:

  • pg_dump_options \u2014 a map of pg_dump options to configure the behavior of the command itself. You can refer to the list of supported pg_dump options in the Greenmask dump command documentation.
  • transformation \u2014 this section contains configuration for applying transformations to table columns during the dump operation. It includes the following sub-parameters:

    • schema \u2014 the schema name of the table
    • name \u2014 the name of the table
    • subset_conds - list of the conditions to filter the rows to be dumped. The conditions are combined with AND operator. For details read Database subset
    • query \u2014 an optional parameter for specifying a custom query to be used in the COPY command. By default, the entire table is dumped, but you can use this parameter to set a custom query.

      Warning

      Be cautious when using the query parameter, as it may lead to constraint violation errors during restoration, and Greenmask currently cannot handle query validation.

    • columns_type_override \u2014 allows you to override the column types explicitly. You can associate a column with another type that is supported by your transformer. This is useful when the transformer works strictly with specific types of columns. For example, if a column named post_code is of the TEXT type, but the RandomInt transformer works only with INT family types, you can override it as shown in the example provided. column type overridden example

        columns_type_override:\n    post_code: \"int4\"  # (1)\n

      1. Change the data type of the post_code column to INT4 (INTEGER)
    • apply_for_inherited \u2014 an optional parameter to apply the same transformation to all partitions if the table is partitioned. This can save you from defining the transformation for each partition manually.

      Warning

      It is recommended to use the --load-via-partition-root parameter when dealing with partitioned tables, as the partition key value might change.

    • transformers \u2014 a list of transformers to apply to the table, along with their parameters. Each transformation item includes the following sub-parameters:

      • name \u2014 the name of the transformer
      • params \u2014 a map of the provided transformer parameters
      transformers config example
         transformers:\n    - name: \"RandomDate\"\n      params:\n        min: \"2023-01-01 00:00:00.0+03\"\n        max: \"2023-01-02 00:00:00.0+03\"\n        column: \"scheduled_departure\"\n\n    - name: \"NoiseDate\"\n      params:\n        ratio: \"01:00:00\"\n        column: \"scheduled_arrival\"\n

Here is an example configuration for the dump section:

dump section config example

dump:\n  pg_dump_options:\n    dbname: \"host=/run/postgresql user=postgres dbname=demo\"\n    jobs: 10\n    exclude-schema: \"(\\\"teSt\\\"*|test*)\"\n    table: \"bookings.flights\"\n    load-via-partition-root: true\n\n  transformation:\n    - schema: \"bookings\"\n      name: \"flights\"\n      query: \"select * from bookings.flights3 limit 1000000\"\n      columns_type_override:\n        post_code: \"int4\" # (1)\n      transformers:\n        - name: \"RandomDate\"\n          params:\n            min: \"2023-01-01 00:00:00.0+03\"\n            max: \"2023-01-02 00:00:00.0+03\"\n            column: \"scheduled_departure\"\n\n        - name: \"NoiseDate\"\n          params:\n            ratio: \"01:00:00\"\n            column: \"scheduled_arrival\"\n\n        - name: \"RegexpReplace\"\n          params:\n            column: \"status\"\n            regexp: \"On Time\"\n            replace: \"Delayed\"\n\n        - name: \"RandomInt\" # (2)\n          params:\n            column: \"post_code\"\n            min: \"11\"\n            max: \"99\"\n\n    - schema: \"bookings\"\n      name: \"aircrafts_data\"\n      subset_conds: # (3)\n        - \"bookings.aircrafts_data.model = 'Boeing 777-300-2023'\"\n      transformers:\n        - name: \"Json\"\n          params:\n            column: \"model\"\n            operations:\n              - operation: \"set\"\n                path: \"en\"\n                value: \"Boeing 777-300-2023\"\n              - operation: \"set\"\n                path: \"crewSize\"\n                value: 10\n\n        - name: \"NoiseInt\"\n          params:\n            ratio: 0.9\n            column: \"range\"\n

  1. Override the post_code column type to int4 (INTEGER). This is necessary because the post_code column originally has a TEXT type, but it contains values that resemble integers. By explicitly overriding the type to int4, we ensure compatibility with transformers that work with integer types, such as RandomInt.
  2. After the type is overridden, we can apply a compatible transformer.
  3. Database subset condition applied to the aircrafts_data table. The subset condition filters the data based on the model column.
"},{"location":"configuration/#validate-section","title":"validate section","text":"

In the validate section of the configuration, you can specify parameters for the greenmask validate command. Here is an example of the validate section configuration:

validate section config example

validate:\n  tables: # (1)\n    - \"orders\"\n    - \"public.cart\"\n  data: true # (2)\n  diff: true # (3)\n  rows_limit: 10 # (4)\n  resolved_warnings: # (5)\n    - \"8d436fae67b2b82b36bd3afeb0c93f30\"\n  table_format: \"horizontal\" # (7)\n  format: \"text\" # (6)\n  schema: true # (8)\n  transformed_only: true # (9)\n  warnings: true # (10)\n

  1. A list of tables to validate. If this list is not empty, the validation operation will only be performed for the specified tables. Tables can be written with or without the schema name (e. g., \"public.cart\" or \"orders\").
  2. Specifies whether to perform data transformation for a limited set of rows. If set to true, data transformation will be performed, and the number of rows transformed will be limited to the value specified in the rows_limit parameter (default is 10).
  3. Specifies whether to perform diff operations for the transformed data. If set to true, the validation process will find the differences between the original and transformed data. See more details in the validate command documentation.
  4. Limits the number of rows to be transformed during validation. The default limit is 10 rows, but you can change it by modifying this parameter.
  5. A hash list of resolved warnings. These warnings have been addressed and resolved in a previous validation run.
  6. Specifies the format of the transformation output. Possible values are [horizontal|vertical]. The default format is horizontal. You can choose the format that suits your needs. See more details in the validate command documentation.
  7. The output format (json or text)
  8. Specifies whether to validate the schema current schema with the previous and print the differences if any.
  9. If set to true, transformation output will be only with the transformed columns and primary keys
  10. If set to then all the warnings be printed
"},{"location":"configuration/#restore-section","title":"restore section","text":"

In the restore section of the configuration, you can specify parameters for the greenmask restore command. It contains pg_restore settings and custom script execution settings. Below you can find the available parameters:

  • pg_restore_options \u2014 a map of pg_restore options that are used to configure the behavior of the pg_restore utility during the restoration process. You can refer to the list of supported pg_restore options in the Greenmask restore command documentation.
  • scripts \u2014 a map of custom scripts to be executed during different restoration stages. Each script is associated with a specific restoration stage and includes the following attributes:
    • [pre-data|data|post-data] \u2014 the name of the restoration stage when the script should be executed; has the following parameters:
      • name \u2014 the name of the script
      • when \u2014 specifies when to execute the script, which can be either \"before\" or \"after\" the specified restoration stage
      • query \u2014 an SQL query string to be executed
      • query_file \u2014 the path to an SQL query file to be executed
      • command \u2014 a command with parameters to be executed. It is provided as a list, where the first item is the command name.
  • insert_error_exclusions \u2014 a list of error codes that should be ignored during the restoration process. This is useful when you want to skip specific errors that are not critical for the restoration process.

As mentioned in the architecture, a backup contains three sections: pre-data, data, and post-data. The custom script execution allows you to customize and control the restoration process by executing scripts or commands at specific stages. The available restoration stages and their corresponding execution conditions are as follows:

  • pre-data \u2014 scripts or commands can be executed before or after restoring the pre-data section
  • data \u2014 scripts or commands can be executed before or after restoring the data section
  • post-data \u2014 scripts or commands can be executed before or after restoring the post-data section

Each stage can have a \"when\" condition with one of the following possible values:

  • before \u2014 execute the script or SQL command before the mentioned restoration stage
  • after \u2014 execute the script or SQL command after the mentioned restoration stage

Below you can find one of the possible versions for the scripts part of the restore section:

scripts definition example

scripts:\n  pre-data: # (1)\n    - name: \"pre-data before script [1] with query\"\n      when: \"before\"\n      query: \"create table script_test(stage text)\"\n    - name: \"pre-data before script [2]\"\n      when: \"before\"\n      query: \"insert into script_test values('pre-data before')\"\n    - name: \"pre-data after test script [1]\"\n      when: \"after\"\n      query: \"insert into script_test values('pre-data after')\"\n    - name: \"pre-data after script with query_file [1]\"\n      when: \"after\"\n      query_file: \"pre-data-after.sql\"\n  data: # (2)\n    - name: \"data before script with command [1]\"\n      when: \"before\"\n      command: # (4)\n        - \"data-after.sh\"\n        - \"param1\"\n        - \"param2\"\n    - name: \"data after script [1]\"\n      when: \"after\"\n      query_file: \"data-after.sql\"\n  post-data: # (3)\n    - name: \"post-data before script [1]\"\n      when: \"before\"\n      query: \"insert into script_test values('post-data before')\"\n    - name: \"post-data after script with query_file [1]\"\n      when: \"after\"\n      query_file: \"post-data-after.sql\"\n

  1. List of pre-data stage scripts. This section contains scripts that are executed before or after the restoration of the pre-data section. The scripts include SQL queries and query files.
  2. List of data stage scripts. This section contains scripts that are executed before or after the restoration of the data section. The scripts include shell commands with parameters and SQL query files.
  3. List of post-data stage scripts. This section contains scripts that are executed before or after the restoration of the post-data section. The scripts include SQL queries and query files.
  4. Command in the first argument and the parameters in the rest of the list. When specifying a command to be executed in the scripts section, you provide the command name as the first item in a list, followed by any parameters or arguments for that command. The command and its parameters are provided as a list within the script configuration.
"},{"location":"configuration/#restoration-error-exclusion","title":"restoration error exclusion","text":"

You can configure which errors to ignore during the restoration process by setting the insert_error_exclusions parameter. This parameter can be applied globally or per table. If both global and table-specific settings are defined, the table-specific settings will take precedence. Below is an example of how to configure the insert_error_exclusions parameter. You can specify constraint names from your database schema or the error codes returned by PostgreSQL. codes in the PostgreSQL documentation.

parameter defintion
insert_error_exclusions:\n\n  global:\n    error_codes: [\"23505\"] # (1)\n    constraints: [\"PK_ProductReview_ProductReviewID\"] # (2)\n  tables: # (3)\n    - schema: \"production\"\n      name: \"productreview\"\n      constraints: [\"PK_ProductReview_ProductReviewID\"]\n      error_codes: [\"23505\"]\n
  1. List of strings that contains postgresql error codes
  2. List of strings that contains constraint names (globally)
  3. List of tables with their schema, name, constraints, and error codes

Here is an example configuration for the restore section:

restore:\n  scripts:\n      pre-data: # (1)\n        - name: \"pre-data before script [1] with query\"\n          when: \"before\"\n          query: \"create table script_test(stage text)\"\n\n  insert_error_exclusions:\n    tables:\n      - schema: \"production\"\n        name: \"productreview\"\n        constraints:\n          - \"PK_ProductReview_ProductReviewID\"\n        error_codes:\n          - \"23505\"\n    global:\n      error_codes:\n        - \"23505\"\n\n  pg_restore_options:\n    jobs: 10\n    exit-on-error: false\n    dbname: \"postgresql://postgres:example@localhost:54316/transformed\"\n    table: \n      - \"productreview\"\n    pgzip: true\n    inserts: true\n    on-conflict-do-nothing: true\n    restore-in-order: true\n
"},{"location":"configuration/#environment-variable-configuration","title":"Environment variable configuration","text":"

It's also possible to configure Greenmask through environment variables.

Greenmask will automatically parse any environment variable that matches the configuration in the config file by substituting the dot (.) separator for an underscore (_) and uppercasing it. As an example, the config file below would apply the same configuration as defining the LOG_LEVEL=debug environment variable

config.yaml
log:\n  level: debug\n
"},{"location":"configuration/#global-configuration-variables","title":"Global configuration variables","text":"
  • GREENMASK_GLOBAL_SALT - global salt value hex encoded with variadic length, used for the hash engine. For details read Transformation engines section.
"},{"location":"configuration/#postgres-connection-variables","title":"Postgres connection variables","text":"

Additionaly, there are some environment variables exposed by the dump and restore commands to facilitate the connection configuration with a Postgres database

  • PGHOST - host used to connect to the postgres database
  • PGPORT - port where postgres is exposed
  • PGDATABASE - name of the database to dump/restore
  • PGUSER - username used to connect to the postgres database
  • PGPASSWORD - password used to authenticate to the postgres database
"},{"location":"database_subset/","title":"Database subset","text":"

Greenmask allows you to define a subset condition for filtering data during the dump process. This feature is useful when you need to dump only a part of the database, such as a specific table or a set of tables. It automatically ensures data consistency by including all related data from other tables that are required to maintain the integrity of the subset. The subset condition can be defined using subset_conds attribute that can be defined on the table in the transformation section (see examples).

Info

Greenmask genrates queries for subset conditions based on the introspected schema using joins and recursive queries. It cannot be responsible for query optimization. The subset quries might be slow due to the complexity of the queries and/or lack of indexes. Circular are resolved using recursive queries.

"},{"location":"database_subset/#detail","title":"Detail","text":"

The subset is a list of SQL conditions that are applied to table. The conditions are combined with AND operator. You need to specify the schema, table and column name when pointing out the column to filter by to avoid ambiguity. The subset condition must be a valid SQL condition.

Subset condition example
subset_conds:\n  - 'person.businessentity.businessentityid IN (274, 290, 721, 852)'\n
"},{"location":"database_subset/#use-cases","title":"Use cases","text":"
  • Database scale down - create anonymized dump but for the limited and consistent set of tables
  • Data migration - migrate only some records from one database to another
  • Data anonymization - dump and anonymize only a specific records in the database
  • Database catchup - catchup your another instance of database logically by adding a new records. In this case it is recommended to restore tables in topological order using --restore-in-order.
"},{"location":"database_subset/#references-with-null-values","title":"References with NULL values","text":"

For references that do not have NOT NULL constraints, Greenmask will automatically generate LEFT JOIN queries with the appropriate conditions to ensure integrity checks. You can rely on Greenmask to handle such cases correctly\u2014no special configuration is needed, as it performs this automatically based on the introspected schema.

"},{"location":"database_subset/#circular-reference","title":"Circular reference","text":"

Greenmask supports circular references between tables. You can define a subset condition for any table, and Greenmask will automatically generate the appropriate queries for the table subset using recursive queries. The subset system ensures data consistency by validating all records found through the recursive queries. If a record does not meet the subset condition, it will be excluded along with its parent records, preventing constraint violations.

Warning

Currently (v0.2b2), Greenmask can resolve multi-cylces in one strogly connected component, but only for one group of vertexes. If you have SSC that contains 2 groups of vertexes, Greenmask will not be able to resolve it. For instance we have 2 cycles with tables A, B, C (first group) and B, C, E (second group). Greenmask will not be able to resolve it. But if you have only one group of vertexes one and more cycles in the same group of tables (for instance A, B, C), Greenmask works with it. This will be fixed in the future. See second example below. In practice this is quite rare situation and 99% of people will not face this issue.

You can read the Wikipedia article about Circular reference here.

"},{"location":"database_subset/#virtual-references","title":"Virtual references","text":"

During the development process, there are situations where foreign keys need to be removed. The reasons can vary\u2014from improving performance to simplifying the database structure. Additionally, some foreign keys may exist within loosely structured data, such as JSON, where PostgreSQL cannot create foreign keys at all. These limitations could significantly hinder the capabilities of a subset system. Greenmask offers a flexible solution to this problem by allowing the declaration of virtual references in the configuration, enabling the preservation and management of logical relationships between tables, even in the absence of explicit foreign keys. Virtual reference can be called virtual foreign key as well.

The virtual_references can be defined in dump section. It contains the list of virtual references. First you set the table where you want to define virtual reference. In the attribute references define the list of tables that are referenced by the table. In the columns attribute define the list of columns that are used in the foreign key reference. The not_null attribute is optional and defines if the FK has not null constraint. If true Greenmask will generate INNER JOIN instead of LEFT JOIN by default it is false. The expression needs to be used when you want to use some expression to get the value of the column in the referencing table. For instance, if you have JSONB column in the audit_logs table that contains order_id field, you can use this field as FK reference.

Info

You do not need to define primry key of the referenced table. Greenmask will automatically resolve it and use it in the join condition.

Virtual references example
dump:\n  virtual_references:\n    - schema: \"public\" # (1)\n      name: \"orders\" # (2)\n      references: # (3)\n        - schema: \"public\" # (4) \n          name: \"customers\" # (5)\n          columns: # (6)\n            - name: \"customer_id\"\n          not_null: false # (7)\n\n    - schema: \"public\"\n      name: \"audit_logs\"\n      references:\n        - schema: \"public\"\n          name: \"orders\"\n          columns:\n            - expression: \"(public.audit_logs.log_data ->> 'order_id')::INT\" # (8)\n
  1. The schema name of table that has foreign key reference (table that own FK reference)
  2. The table name that has foreign key reference (table that own FK reference)
  3. List of virtual references
  4. The schema name of the table that has foreign key reference (referencing table)
  5. The table name that has foreign key reference (referencing table)
  6. List of columns that are used in the foreign key reference. Each column has one of property defined at the same time:

    • name - column name in the referencing table
    • expression - expression that is used to get the value of the column in the referencing table
  7. not_null - is FK has not null constraint. If true Default it is false

  8. expression - expression that is used to get the value of the column in the referencing table
"},{"location":"database_subset/#polymorphic-references","title":"Polymorphic references","text":"

Greenmask supports polymorphic references. You can define a virtual reference for a table with polymorphic references using polymorphic_exprs attribute. The polymorphic_exprs attribute is a list of expressions that are used to make a polymorphic reference. For instance we might have a table comments that has polymorphic reference to posts and videos. The table comments might have commentable_id and commentable_type columns. The commentable_type column contains the type of the table that is referenced by the commentable_id column. The example of the config:

Polymorphic references example
dump:\n  virtual_references:\n    - schema: \"public\"\n      name: \"comments\"\n      references:\n        - schema: \"public\"\n          name: \"videos\"\n          polymorphic_exprs:\n            - \"public.comments.commentable_type = 'video'\"\n          columns:\n            - name: \"commentable_id\"\n        - schema: \"public\"\n          name: \"posts\"\n          polymorphic_exprs:\n            - \"public.comments.commentable_type = 'post'\"\n          columns:\n            - name: \"commentable_id\"\n

Warning

The plimorphic references cannot be non_null because the commentable_id column can be NULL if the commentable_type is not set or different that the values defined in the polymorphic_exprs attribute.

"},{"location":"database_subset/#troubleshooting","title":"Troubleshooting","text":""},{"location":"database_subset/#exclude-the-records-that-has-null-values-in-the-referenced-column","title":"Exclude the records that has NULL values in the referenced column","text":"

If you want to exclude records that have NULL values in the referenced column, you can manually add this condition to the subset condition for the table. Greenmask does not automatically exclude records with NULL values because it applies a LEFT OUTER JOIN on nullable foreign keys.

"},{"location":"database_subset/#some-table-is-not-filtered-by-the-subset-condition","title":"Some table is not filtered by the subset condition","text":"

Greenmask builds a table dependency graph based on the introspected schema and existing foreign keys. If a table is not filtered by the subset condition, it means that the table either does not reference another table that is filtered by the subset condition or the table itself does not have a subset condition applied.

If you have a table with a removed foreign key and want to filter it by the subset condition, you need to define a virtual reference. For more information on virtual references, refer to the Virtual References section.

Info

If you find any issues related to the code or greenmask is not working as expected, do not hesitate to contact us directly or by creating an issue in the repository.

"},{"location":"database_subset/#error-column-reference-id-is-ambiguous","title":"ERROR: column reference \"id\" is ambiguous","text":"

If you see the error message ERROR: column reference \"{column name}\" is ambiguous, you have specified the column name without the table and/or schema name. To avoid ambiguity, always specify the schema and table name when pointing out the column to filter by. For instance if you want to filter employees by employee_id column, you should use public.employees.employee_id instead of employee_id.

Valid subset condition
public.employees.employee_id IN (1, 2, 3)\n
"},{"location":"database_subset/#the-subset-condition-is-not-working-correctly-how-can-i-verify-it","title":"The subset condition is not working correctly. How can I verify it?","text":"

Run greenmask with --log-level=debug to see the generated SQL queries. You will find the generated SQL queries in the log output. Validate this query in your database client to ensure that the subset condition is working as expected.

For example:

$ greenmask dump --config config.yaml --log-level=debug\n\n2024-08-29T19:06:18+03:00 DBG internal/db/postgres/context/context.go:202 > Debug query Schema=person Table=businessentitycontact pid=1638339\n2024-08-29T19:06:18+03:00 DBG internal/db/postgres/context/context.go:203 > SELECT \"person\".\"businessentitycontact\".* FROM \"person\".\"businessentitycontact\"  INNER JOIN \"person\".\"businessentity\" ON \"person\".\"businessentitycontact\".\"businessentityid\" = \"person\".\"businessentity\".\"businessentityid\" AND ( person.businessentity.businessentityid between 400 and 800 OR person.businessentity.businessentityid between 800 and 900 ) INNER JOIN \"person\".\"person\" ON \"person\".\"businessentitycontact\".\"personid\" = \"person\".\"person\".\"businessentityid\" WHERE TRUE AND ((\"person\".\"person\".\"businessentityid\") IN (SELECT \"person\".\"businessentity\".\"businessentityid\" FROM \"person\".\"businessentity\"   WHERE ( ( person.businessentity.businessentityid between 400 and 800 OR person.businessentity.businessentityid between 800 and 900 ) )))\n pid=1638339\n
"},{"location":"database_subset/#dump-is-too-slow","title":"Dump is too slow","text":"

If the dump process is too slow the generated query might be too complex. In this case you can:

  • Check if the database has indexes on the columns used in the subset condition. Create them if possible.
  • Move database dumping on the replica to avoid the performance impact on the primary.
"},{"location":"database_subset/#example-dump-a-subset-of-the-database","title":"Example: Dump a subset of the database","text":"

Info

All examples based on playground database. Read more about the playground database in the Playground section.

The following example demonstrates how to dump a subset of the person schema. The subset condition is applied to the businessentity and password tables. The subset condition filters the data based on the businessentityid and passwordsalt columns, respectively.

Subset configuration example
transformation:\n  - schema: \"person\"\n    name: \"businessentity\"\n    subset_conds:\n      - 'person.businessentity.businessentityid IN (274, 290, 721, 852)'\n    transformers:\n      - name: \"RandomDate\"\n        params:\n          column: \"modifieddate\"\n          min: \"2020-01-01 00:00:00\"\n          max: \"2024-06-26 00:00:00\"\n          truncate: \"day\"\n          keep_null: false\n\n  - schema: \"person\"\n    name: \"password\"\n    subset_conds:\n      - >\n        person.password.passwordsalt = '329eacbe-c883-4f48-b8b6-17aa4627efff'\n
"},{"location":"database_subset/#example-dump-a-subset-with-circular-reference","title":"Example: Dump a subset with circular reference","text":"Create tables with multi cyles
-- Step 1: Create tables without foreign keys\nDROP TABLE IF EXISTS employees CASCADE;\nCREATE TABLE employees\n(\n    employee_id   SERIAL PRIMARY KEY,\n    name          VARCHAR(100) NOT NULL,\n    department_id INT -- Will reference departments(department_id)\n);\n\nDROP TABLE IF EXISTS departments CASCADE;\nCREATE TABLE departments\n(\n    department_id SERIAL PRIMARY KEY,\n    name          VARCHAR(100) NOT NULL,\n    project_id    INT -- Will reference projects(project_id)\n);\n\nDROP TABLE IF EXISTS projects CASCADE;\nCREATE TABLE projects\n(\n    project_id       SERIAL PRIMARY KEY,\n    name             VARCHAR(100) NOT NULL,\n    lead_employee_id INT, -- Will reference employees(employee_id)\n    head_employee_id INT  -- Will reference employees(employee_id)\n);\n\n-- Step 2: Alter tables to add foreign key constraints\nALTER TABLE employees\n    ADD CONSTRAINT fk_department\n        FOREIGN KEY (department_id) REFERENCES departments (department_id);\n\nALTER TABLE departments\n    ADD CONSTRAINT fk_project\n        FOREIGN KEY (project_id) REFERENCES projects (project_id);\n\nALTER TABLE projects\n    ADD CONSTRAINT fk_lead_employee\n        FOREIGN KEY (lead_employee_id) REFERENCES employees (employee_id);\n\nALTER TABLE projects\n    ADD CONSTRAINT fk_lead_employee2\n        FOREIGN KEY (head_employee_id) REFERENCES employees (employee_id);\n\n-- Insert projects\nINSERT INTO projects (name, lead_employee_id)\nSELECT 'Project ' || i, NULL\nFROM generate_series(1, 10) AS s(i);\n\n-- Insert departments\nINSERT INTO departments (name, project_id)\nSELECT 'Department ' || i, i\nFROM generate_series(1, 10) AS s(i);\n\n-- Insert employees and assign 10 of them as project leads\nINSERT INTO employees (name, department_id)\nSELECT 'Employee ' || i, (i / 10) + 1\nFROM generate_series(1, 99) AS s(i);\n\n-- Assign 10 employees as project leads\nUPDATE projects\nSET lead_employee_id = (SELECT employee_id\n                        FROM employees\n                        WHERE employees.department_id = projects.project_id\n                        LIMIT 1),\n    head_employee_id = 3\nWHERE project_id <= 10;\n

This schema has two cycles:

  • employees (department_id) -> departments (project_id) -> projects (lead_employee_id) -> employees (employee_id)
  • employees (department_id) -> departments (project_id) -> projects (head_employee_id) -> employees (employee_id)

Greenmask can simply resolve it by generating a recursive query with integrity checks for subset and join conditions.

The example below will fetch the data for both 3 employees and related departments and projects.

Subset configuration example
transformation:\n  - schema: \"public\"\n    name: \"employees\"\n    subset_conds:\n      - \"public.employees.employee_id in (1, 2, 3)\"\n

But this will return empty result, because the subset condition is not met for all related tables because project with project_id=1 has reference to employee with employee_id=3 that is invalid for subset condition.

Subset configuration example
transformation:\n  - schema: \"public\"\n    name: \"employees\"\n    subset_conds:\n      - \"public.employees.employee_id in (1, 2)\"\n
"},{"location":"database_subset/#example-dump-a-subset-with-virtual-references","title":"Example: Dump a subset with virtual references","text":"

In this example, we will create a subset of the tables with virtual references. The subset will include the orders table and its related tables customers and audit_logs. The orders table has a virtual reference to the customers table, and the audit_logs table has a virtual reference to the orders table.

Create tables with virtual references
-- Create customers table\nCREATE TABLE customers\n(\n    customer_id   SERIAL PRIMARY KEY,\n    customer_name VARCHAR(100)\n);\n\n-- Create orders table\nCREATE TABLE orders\n(\n    order_id    SERIAL PRIMARY KEY,\n    customer_id INT, -- This should reference customers.customer_id, but no FK constraint is defined\n    order_date  DATE\n);\n\n-- Create payments table\nCREATE TABLE payments\n(\n    payment_id     SERIAL PRIMARY KEY,\n    order_id       INT, -- This should reference orders.order_id, but no FK constraint is defined\n    payment_amount DECIMAL(10, 2),\n    payment_date   DATE\n);\n\n-- Insert test data into customers table\nINSERT INTO customers (customer_name)\nVALUES ('John Doe'),\n       ('Jane Smith'),\n       ('Alice Johnson');\n\n-- Insert test data into orders table\nINSERT INTO orders (customer_id, order_date)\nVALUES (1, '2023-08-01'), -- Related to customer John Doe\n       (2, '2023-08-05'), -- Related to customer Jane Smith\n       (3, '2023-08-07');\n-- Related to customer Alice Johnson\n\n-- Insert test data into payments table\nINSERT INTO payments (order_id, payment_amount, payment_date)\nVALUES (1, 100.00, '2023-08-02'), -- Related to order 1 (John Doe's order)\n       (2, 200.50, '2023-08-06'), -- Related to order 2 (Jane Smith's order)\n       (3, 300.75, '2023-08-08');\n-- Related to order 3 (Alice Johnson's order)\n\n\n-- Create a table with a multi-key reference (composite key reference)\nCREATE TABLE order_items\n(\n    order_id     INT,               -- Should logically reference orders.order_id\n    item_id      INT,               -- Composite part of the key\n    product_name VARCHAR(100),\n    quantity     INT,\n    PRIMARY KEY (order_id, item_id) -- Composite primary key\n);\n\n-- Create a table with a JSONB column that contains a reference value\nCREATE TABLE audit_logs\n(\n    log_id   SERIAL PRIMARY KEY,\n    log_data JSONB -- This JSONB field will contain references to other tables\n);\n\n-- Insert data into order_items table with multi-key reference\nINSERT INTO order_items (order_id, item_id, product_name, quantity)\nVALUES (1, 1, 'Product A', 3), -- Related to order_id = 1 from orders table\n       (1, 2, 'Product B', 5), -- Related to order_id = 1 from orders table\n       (2, 1, 'Product C', 2), -- Related to order_id = 2 from orders table\n       (3, 1, 'Product D', 1);\n-- Related to order_id = 3 from orders table\n\n-- Insert data into audit_logs table with JSONB reference value\nINSERT INTO audit_logs (log_data)\nVALUES ('{\n  \"event\": \"order_created\",\n  \"order_id\": 1,\n  \"details\": {\n    \"customer_name\": \"John Doe\",\n    \"total\": 100.00\n  }\n}'),\n       ('{\n         \"event\": \"payment_received\",\n         \"order_id\": 2,\n         \"details\": {\n           \"payment_amount\": 200.50,\n           \"payment_date\": \"2023-08-06\"\n         }\n       }'),\n       ('{\n         \"event\": \"item_added\",\n         \"order_id\": 1,\n         \"item\": {\n           \"item_id\": 2,\n           \"product_name\": \"Product B\",\n           \"quantity\": 5\n         }\n       }');\n

The following example demonstrates how to make a subset for keys that does not have FK constraints but a data relationship exists.

  • The orders table has a virtual reference to the customers table, and the audit_logs table has a virtual reference to the orders table.
  • The payments table has a virtual reference to the orders table.
  • The order_items table has two keys that reference the orders and products tables.
  • The audit_logs table has a JSONB column that contains two references to the orders and order_items tables.
dump:\n  virtual_references:\n    - schema: \"public\"\n      name: \"orders\"\n      references:\n        - schema: \"public\"\n          name: \"customers\"\n          columns:\n            - name: \"customer_id\"\n          not_null: true\n\n    - schema: \"public\"\n      name: \"payments\"\n      references:\n        - schema: \"public\"\n          name: \"orders\"\n          columns:\n            - name: \"order_id\"\n          not_null: true\n\n    - schema: \"public\"\n      name: \"order_items\"\n      references:\n        - schema: \"public\"\n          name: \"orders\"\n          columns:\n            - name: \"order_id\"\n          not_null: true\n        - schema: \"public\"\n          name: \"products\"\n          columns:\n            - name: \"product_id\"\n          not_null: true\n\n    - schema: \"public\"\n      name: \"audit_logs\"\n      references:\n        - schema: \"public\"\n          name: \"orders\"\n          columns:\n            - expression: \"(public.audit_logs.log_data ->> 'order_id')::INT\"\n          not_null: false\n        - schema: \"public\"\n          name: \"order_items\"\n          columns:\n            - expression: \"(public.audit_logs.log_data -> 'item' ->> 'item_id')::INT\"\n            - expression: \"(public.audit_logs.log_data ->> 'order_id')::INT\"\n          not_null: false\n\n  transformation:\n\n    - schema: \"public\"\n      name: \"customers\"\n      subset_conds:\n        - \"public.customers.customer_id in (1)\"\n

As a result, the customers table will be dumped with the orders table and its related tables payments, order_items, and audit_logs. The subset condition will be applied to the customers table, and the data will be filtered based on the customer_id column.

"},{"location":"database_subset/#example-dump-a-subset-with-polymorphic-references","title":"Example: Dump a subset with polymorphic references","text":"

In this example, we will create a subset of the tables with polymorphic references. This example includes the comments table and its related tables posts and videos.

Create tables with polymorphic references and insert data
-- Create the Posts table\nCREATE TABLE posts\n(\n    id      SERIAL PRIMARY KEY,\n    title   VARCHAR(255) NOT NULL,\n    content TEXT         NOT NULL\n);\n\n-- Create the Videos table\nCREATE TABLE videos\n(\n    id    SERIAL PRIMARY KEY,\n    title VARCHAR(255) NOT NULL,\n    url   VARCHAR(255) NOT NULL\n);\n\n-- Create the Comments table with a polymorphic reference\nCREATE TABLE comments\n(\n    id               SERIAL PRIMARY KEY,\n    commentable_id   INT         NOT NULL, -- Will refer to either posts.id or videos.id\n    commentable_type VARCHAR(50) NOT NULL, -- Will store the type of the associated record\n    body             TEXT        NOT NULL,\n    created_at       TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n\n-- Insert data into the Posts table\nINSERT INTO posts (title, content)\nVALUES ('First Post', 'This is the content of the first post.'),\n       ('Second Post', 'This is the content of the second post.');\n\n-- Insert data into the Videos table\nINSERT INTO videos (title, url)\nVALUES ('First Video', 'https://example.com/video1'),\n       ('Second Video', 'https://example.com/video2');\n\n-- Insert data into the Comments table, associating some comments with posts and others with videos\n-- For posts:\nINSERT INTO comments (commentable_id, commentable_type, body)\nVALUES (1, 'post', 'This is a comment on the first post.'),\n       (2, 'post', 'This is a comment on the second post.');\n\n-- For videos:\nINSERT INTO comments (commentable_id, commentable_type, body)\nVALUES (1, 'video', 'This is a comment on the first video.'),\n       (2, 'video', 'This is a comment on the second video.');\n

The comments table has a polymorphic reference to the posts and videos tables. Depending on the value of the commentable_type column, the commentable_id column will reference either the posts.id or videos.id column.

The following example demonstrates how to make a subset for tables with polymorphic references.

Subset configuration example
dump:\n  virtual_references:\n    - schema: \"public\"\n      name: \"comments\"\n      references:\n        - schema: \"public\"\n          name: \"posts\"\n          polymorphic_exprs:\n            - \"public.comments.commentable_type = 'post'\"\n          columns:\n            - name: \"commentable_id\"\n        - schema: \"public\"\n          name: \"videos\"\n          polymorphic_exprs:\n            - \"public.comments.commentable_type = 'video'\"\n          columns:\n            - name: \"commentable_id\"\n\n  transformation:\n    - schema: \"public\"\n      name: \"posts\"\n      subset_conds:\n        - \"public.posts.id in (1)\"\n

This example selects only the first post from the posts table and its related comments from the comments table. The comments are associated with videos are included without filtering because the subset condition is applied only to the posts table and related comments.

The resulted records will be:

transformed=# select * from comments;\n id | commentable_id | commentable_type |                 body                  |         created_at         \n----+----------------+------------------+---------------------------------------+----------------------------\n  1 |              1 | post             | This is a comment on the first post.  | 2024-09-18 05:27:54.217405\n  2 |              2 | post             | This is a comment on the second post. | 2024-09-18 05:27:54.217405\n  3 |              1 | video            | This is a comment on the first video. | 2024-09-18 05:27:54.229794\n(3 rows)\n
"},{"location":"installation/","title":"Installation","text":""},{"location":"installation/#prerequisites","title":"Prerequisites","text":"
  • Ensure that you have PostgreSQL utilities preinstalled, matching the major version of your destination server.

  • If you are building Greenmask from source, make sure you have the make utility installed.

"},{"location":"installation/#via-docker","title":"Via docker","text":"

You can find the docker images in the:

  1. Docker-hub page

To run the greenmask container from DockerHub, use the following command:

docker run -it greenmask/greenmask:latest\n

  1. GitHub container registry

To run the greenmask container from Github registry, use the following command:

docker run -it ghcr.io/greenmaskio/greenmask:latest\n

Info

For pre-releases (rc, beta, etc.), use explicit tags like v0.2.0b2.

"},{"location":"installation/#via-brew","title":"Via brew","text":"

The greenmask build is available in brew, but only a production build is available. To install the greenmask via brew, use the following command:

brew install greenmask\n
"},{"location":"installation/#from-source","title":"From source","text":"
  1. Clone the Greenmask repository by using the following command:

    git clone git@github.com:GreenmaskIO/greenmask.git\n
  2. Once the repository is cloned, execute the following command to build Greenmask:

    make build\n

After completing the build process, you will find the binary named greenmask in the root directory of the repository. Execute the binary to start using Greenmask.

"},{"location":"installation/#playground","title":"Playground","text":"

Greenmask Playground is a sandbox environment for your experiments in Docker with sample databases included to help you try Greenmask without any additional actions. Read the Playground guide to learn more.

"},{"location":"playground/","title":"Greenmask Playground","text":"

Greenmask Playground is a sandbox environment in Docker with sample databases included to help you try Greenmask without any additional actions. It includes the following components:

  • Original database \u2014 the source database you'll be working with.
  • Empty database for restoration \u2014 an empty database where the restored data will be placed.
  • MinIO storage \u2014 used for storage purposes.
  • Greenmask Utility \u2014 Greenmask itself, ready for use.

Warning

To complete this guide, you must have Docker and docker-compose installed.

"},{"location":"playground/#setting-up-greenmask-playground","title":"Setting up Greenmask Playground","text":"
  1. Clone the greenmask repository and navigate to its directory by running the following commands:

    git clone git@github.com:GreenmaskIO/greenmask.git && cd greenmask\n
  2. Once you have cloned the repository, start the environment by running Docker Compose:

    docker-compose run greenmask\n

Tip

If you're experiencing problems with pulling images from Docker Hub, you can build the Greenmask image from source by running the following command:

docker-compose run greenmask-from-source\n

Now you have Greenmask Playground up and running with a shell prompt inside the container. All further operations will be carried out within this container's shell.

"},{"location":"playground/#commands","title":"Commands","text":"

Below you can see Greenmask commands:

  • dump \u2014 performs a logical data dump, transforms the data, and stores it in the designated storage.

  • list-dumps \u2014 retrieves a list of all stored dumps within the chosen storage.

  • delete \u2014 removes a dump with a specific ID from the storage.

  • list-transformers \u2014 displays a list of approved transformers and their documentation.

  • restore \u2014 restores a dump either by specifying its ID or using the latest available dump to the target database.

  • show-dump \u2014 presents metadata information about a specific dump (equivalent to pg_restore -l ./).

  • validate \u2014 executes a validation process and generates a data diff for the transformation.

  • completion \u2014 generates the autocompletion script for the specified shell.

To learn more about them, see Commands.

"},{"location":"playground/#transformers","title":"Transformers","text":"

A configuration file is mandatory for Greenmask functioning. The pre-defined configuration file is stored at the repository root directory (./playground/config.yml). It also serves to define transformers which you can update to your liking in order to use Greenmask Playground more effectively and to get better understanding of the tool itself. To learn how to customize a configuration file, see Configuration

The pre-defined configuration file uses the NoiseDate transformer as an example. To learn more about other transformers and how to use them, see Transformers.

"},{"location":"built_in_transformers/","title":"About transformers","text":"

Transformers in Greenmask are methods which are applied to anonymize sensitive data. All Greenmask transformers are split into the following groups:

  • Dynamic parameters \u2014 transformers that require an input of parameters and generate random data based on them.
  • Transformation engines \u2014 the type of generator used in transformers. Hash (deterministic) and random (randomization)
  • Parameters templating \u2014 generate static parameters values from templates.
  • Transformation conditions \u2014 conditions that can be applied to transformers. If the condition is not met, the transformer will not be applied.
  • Transformation Inheritance \u2014 transformation inheritance for partitioned tables and tables with foreign keys. Define once and apply to all.
  • Standard transformers \u2014 transformers that require only an input of parameters.
  • Advanced transformers \u2014 transformers that can be modified according to user's needs with the help of custom functions.
  • Custom transformers \u2014 coming soon...
"},{"location":"built_in_transformers/dynamic_parameters/","title":"Dynamic parameters","text":""},{"location":"built_in_transformers/dynamic_parameters/#description","title":"Description","text":"

Most transformers in Greenmask have dynamic parameters. This functionality is possible because Greenmask utilizes a database driver that can encode and decode raw values into their actual type representations.

This allows you to retrieve parameter values directly from the records. This capability is particularly beneficial when you need to resolve functional dependencies between fields or satisfy constraints. Greenmask processes transformations sequentially. Therefore, when you reference a field that was transformed in a previous step, you will access the transformed value.

"},{"location":"built_in_transformers/dynamic_parameters/#definition","title":"Definition","text":"
dynamic_params:\n  - column: \"column_name\" # (1)\n    cast_to: \"cast_function\" # (2)\n    template: \"template_function\" # (3)\n    default_value: any # (4)\n
  1. Name of the column from which the value is retrieved.
  2. Function used to cast the column value to the desired type.
  3. Default value used if the column's value is NULL.
  4. Template used for casting the column value to the desired type.
"},{"location":"built_in_transformers/dynamic_parameters/#dynamic-parameter-options","title":"Dynamic parameter options","text":"
  • column - Specifies the column name. The value from each record in this column will be passed to the transformer as a parameter.

  • cast_to - Indicates the function used to cast the column value to the desired type. Before being passed to the transformer, the value is cast to this type. For more details, see Cast functions.

  • template - Defines the template used for casting the column value to the desired type. You can create your own template and incorporate predefined functions and operators to implement the casting logic or other logic required for passing the value to the transformer. For more details, see Template functions.

  • default_value - Determines the default value used if the column's value is NULL. This value is represented in raw format appropriate to the type specified in the column parameter.

"},{"location":"built_in_transformers/dynamic_parameters/#cast-functions","title":"Cast functions","text":"name description input type output type UnixNanoToDate Cast int value as Unix Timestamp in Nano Seconds to date type int2, int4, int8, numeric, float4, float8 date UnixMicroToDate Cast int value as Unix Timestamp in Micro Seconds to date type int2, int4, int8, numeric, float4, float8 date UnixMilliToDate Cast int value as Unix Timestamp in Milli Seconds to date type int2, int4, int8, numeric, float4, float8 date UnixSecToDate Cast int value as Unix Timestamp in Seconds to date type int2, int4, int8, numeric, float4, float8 date UnixNanoToTimestamp Cast int value as Unix Timestamp in Nano Seconds to timestamp type int2, int4, int8, numeric, float4, float8 timestamp UnixMicroToTimestamp Cast int value as Unix Timestamp in Micro Seconds to timestamp type int2, int4, int8, numeric, float4, float8 timestamp UnixMilliToTimestamp Cast int value as Unix Timestamp in Milli Seconds to timestamp type int2, int4, int8, numeric, float4, float8 timestamp UnixSecToTimestamp Cast int value as Unix Timestamp in Seconds to timestamp type int2, int4, int8, numeric, float4, float8 timestamp UnixNanoToTimestampTz Cast int value as Unix Timestamp in Nano Seconds to timestamptz type int2, int4, int8, numeric, float4, float8 timestamptz UnixMicroToTimestampTz Cast int value as Unix Timestamp in Micro Seconds to timestamptz type int2, int4, int8, numeric, float4, float8 timestamptz UnixMilliToTimestampTz Cast int value as Unix Timestamp in Milli Seconds to timestamptz type int2, int4, int8, numeric, float4, float8 timestamptz UnixSecToTimestampTz Cast int value as Unix Timestamp in Seconds to timestamptz type int2, int4, int8, numeric, float4, float8 timestamptz DateToUnixNano Cast date value to int value as a Unix Timestamp in Nano Seconds date int2, int4, int8, numeric, float4, float8 DateToUnixMicro Cast date value to int value as a Unix Timestamp in Micro Seconds date int2, int4, int8, numeric, float4, float8 DateToUnixMilli Cast date value to int value as a Unix Timestamp in Milli Seconds date int2, int4, int8, numeric, float4, float8 DateToUnixSec Cast date value to int value as a Unix Timestamp in Seconds date int2, int4, int8, numeric, float4, float8 TimestampToUnixNano Cast timestamp value to int value as a Unix Timestamp in Nano Seconds timestamp int2, int4, int8, numeric, float4, float8 TimestampToUnixMicro Cast timestamp value to int value as a Unix Timestamp in Micro Seconds timestamp int2, int4, int8, numeric, float4, float8 TimestampToUnixMilli Cast timestamp value to int value as a Unix Timestamp in Milli Seconds timestamp int2, int4, int8, numeric, float4, float8 TimestampToUnixSec Cast timestamp value to int value as a Unix Timestamp in Seconds timestamp int2, int4, int8, numeric, float4, float8 TimestampTzToUnixNano Cast timestamptz value to int value as a Unix Timestamp in Nano Seconds timestamptz int2, int4, int8, numeric, float4, float8 TimestampTzToUnixMicro Cast timestamptz value to int value as a Unix Timestamp in Micro Seconds timestamptz int2, int4, int8, numeric, float4, float8 TimestampTzToUnixMilli Cast timestamptz value to int value as a Unix Timestamp in Milli Seconds timestamptz int2, int4, int8, numeric, float4, float8 TimestampTzToUnixSec Cast timestamptz value to int value as a Unix Timestamp in Seconds timestamptz int2, int4, int8, numeric, float4, float8 FloatToInt Cast float value to one of integer type. The fractional part will be discarded numeric, float4, float8 int2, int4, int8, numeric IntToFloat Cast int value to one of integer type int2, int4, int8, numeric numeric, float4, float8 IntToBool Cast int value to boolean. The value with 0 is false, 1 is true int2, int4, int8, numeric, float4, float8 bool BoolToInt Cast boolean value to int. The value false is 0, true is 1 bool int2, int4, int8, numeric, float4, float8"},{"location":"built_in_transformers/dynamic_parameters/#example-functional-dependency-resolution-between-columns","title":"Example: Functional dependency resolution between columns","text":"

There is simplified schema of the table humanresources.employee from the playground:

       Column      |            Type                      \n------------------+-----------------------------\n businessentityid | integer                      \n jobtitle         | character varying(50)        \n birthdate        | date                        \n hiredate         | date                         \nCheck constraints:\n    CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))\n

As you can see, there is a functional dependency between the birthdate and hiredate columns. Logically, the hiredate should be later than the birthdate. Additionally, the birthdate should range from 1930-01-01 to 18 years prior to the current date.

Imagine that you need to generate random birthdate and hiredate columns. To ensure these dates satisfy the constraints, you can use dynamic parameters in the RandomDate transformer:

- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n\n    - name: \"RandomDate\" # (1)\n      params:\n        column: \"birthdate\"\n        min: '{{ now | tsModify \"-30 years\" | .EncodeValue }}' # (2)\n        max: '{{ now | tsModify \"-18 years\" | .EncodeValue }}' # (3)\n\n    - name: \"RandomDate\" # (4)\n      params:\n        column: \"hiredate\"\n        max: \"{{ now | .EncodeValue }}\" # (5)\n      dynamic_params:\n        min:\n          column: \"birthdate\" # (6)\n          template: '{{ .GetValue | tsModify \"18 years\" | .EncodeValue }}' # (7)\n
  1. Firstly we generate the RadnomDate for birthdate column. The result of the transformation will used as the minimum value for the next transformation for hiredate column.
  2. Apply the template for static parameter. It calculates the now date and subtracts 30 years from it. The result is 1994. The function tsModify return not a raw data, but time.Time object. For getting the raw value suitable for birthdate type we need to pass this value to .EncodeValue function. This value is used as the minimum value for the birthdate column.
  3. The same as the previous step, but we subtract 18 years from the now date. The result is 2002.
  4. Generate the RadnomDate for hiredate column based on the value from the birthdate.
  5. Set the maximum value for the hiredate column. The value is the current date.
  6. The min parameter is set to the value of the birthdate column from the previous step.
  7. The template gets the value of the randomly generated birthdate value and adds 18 years to it.

Below is the result of the transformation:

From the result, you can see that all functional dependencies and constraints are satisfied.

"},{"location":"built_in_transformers/parameters_templating/","title":"Parameters templating","text":""},{"location":"built_in_transformers/parameters_templating/#description","title":"Description","text":"

It is allowed to generate parameter values from templates. It is useful when you don't want to write values manually, but instead want to generate and initialize them dynamically.

Here you can find the list of template functions that can be used in the template Custom functions.

You can encode and decode objects using the driver function bellow.

"},{"location":"built_in_transformers/parameters_templating/#template-functions","title":"Template functions","text":"Function Description Signature .GetColumnType Returns a string with the column type. .GetColumnType(name string) (typeName string, err error) .EncodeValueByColumn Encodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByColumn(name string, value any) (res any, err error) .DecodeValueByColumn Decodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(name string, value any) (res any, err error) .EncodeValueByType Encodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByType(name string, value any) (res any, err error) .DecodeValueByType Decodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByType(name string, value any) (res any, err error) .DecodeValue Decodes a value from its raw string representation to a Golang type using the data type assigned to the table column specified in the column parameter. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(value any) (res any, err error) .EncodeValue Encodes a value of any type into its string representation using the type assigned to the table column specified in the column parameter. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValue(value any) (res any, err error)

Warning

If column parameter is not linked to column parameter, then functions .DecodeValue and .EncodeValue will return an error. You can use .DecodeValueByType and .EncodeValueByType or .DecodeValueByColumn and .EncodeValueByColumn instead.

"},{"location":"built_in_transformers/parameters_templating/#example","title":"Example","text":"

In the example below, the min and max values for the birth_date column are generated dynamically using the now template function. The value returns the current date and time. The tsModify function is then used to subtract 30 (and 18) years. But because the parameter type is mapped on column parameter type, the EncodeValue function is used to encode the value into the column type.

For example, if we have the now date as 2021-01-01, the dynamically calculated min value will be 1994-01-01 and the max value will be 2006-01-01.

CREATE TABLE account\n(\n    id         SERIAL PRIMARY KEY,\n    gender     VARCHAR(1) NOT NULL,\n    email      TEXT       NOT NULL NOT NULL UNIQUE,\n    first_name TEXT       NOT NULL,\n    last_name  TEXT       NOT NULL,\n    birth_date DATE,\n    created_at TIMESTAMP  NOT NULL DEFAULT NOW()\n);\n\nINSERT INTO account (first_name, gender, last_name, birth_date, email)\nVALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');\n
- schema: \"public\"\n  name: \"account\"\n  transformers:\n    - name: \"RandomDate\"\n      params:\n        column: \"birth_date\"\n        min: '{{ now | tsModify \"-30 years\" | .EncodeValue }}' # 1994\n        max: '{{ now | tsModify \"-18 years\" | .EncodeValue }}' # 2006\n

Result

ColumnOriginalValueTransformedValue birth_date1980-01-011995-09-06"},{"location":"built_in_transformers/transformation_condition/","title":"Transformation Condition","text":""},{"location":"built_in_transformers/transformation_condition/#description","title":"Description","text":"

The transformation condition feature allows you to execute a defined transformation only if a specified condition is met. The condition must be defined as a boolean expression that evaluates to true or false. Greenmask uses expr-lang/expr under the hood. You can use all functions and syntax provided by the expr library.

You can use the same functions that are described in the built-in transformers

The transformers are executed one by one - this helps you create complex transformation pipelines. For instance depending on value chosen in the previous transformer, you can decide to execute the next transformer or not.

"},{"location":"built_in_transformers/transformation_condition/#record-descriptors","title":"Record descriptors","text":"

To improve the user experience, Greenmask offers special namespaces for accessing values in different formats: either the driver-encoded value in its real type or as a raw string.

  • record: This namespace provides the record value in its actual type.
  • raw_record: This namespace provides the record value as a string.

You can access a specific column\u2019s value using record.column_name for the real type or raw_record.column_name for the raw string value.

Warning

A record may always be modified by previous transformers before the condition is evaluated. This means Greenmask does not retain the original record value and instead provides the current modified value for condition evaluation.

"},{"location":"built_in_transformers/transformation_condition/#null-values-condition","title":"Null values condition","text":"

To check if the value is null, you can use null value for the comparisson. This operation works compatibly with SQL operator IS NULL or IS NOT NULL.

Is null cond example
record.accountnumber == null && record.date > now()\n
Is not null cond example
record.accountnumber != null && record.date <= now()\n
"},{"location":"built_in_transformers/transformation_condition/#expression-scope","title":"Expression scope","text":"

Expression scope can be on table or specific transformer. If you define the condition on the table scope, then the condition will be evaluated before any transformer is executed. If you define the condition on the transformer scope, then the condition will be evaluated before the specified transformer is executed.

Table scope
- schema: \"purchasing\"\n  name: \"vendor\"\n  when: 'record.accountnumber == null || record.accountnumber == \"ALLENSON0001\"'\n  transformers:\n    - name: \"RandomString\"\n      params:\n        column: \"accountnumber\"\n        min_length: 9\n        max_length: 12\n        symbols: \"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n
Transformer scope
- schema: \"purchasing\"\n  name: \"vendor\"\n  transformers:\n    - name: \"RandomString\"\n      when: 'record.accountnumber != null || record.accountnumber == \"ALLENSON0001\"'\n      params:\n        column: \"accountnumber\"\n        min_length: 9\n        max_length: 12\n        symbols: \"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n
"},{"location":"built_in_transformers/transformation_condition/#int-and-float-value-definition","title":"Int and float value definition","text":"

It is important to create the integer or float value in the correct format. If you want to define the integer value you must write a number without dot (1, 2, etc.). If you want to define the float value you must write a number with dot (1.0, 2.0, etc.).

Warning

You may see a wrong comparison result if you compare int and float, for example 1 == 1.0 will return false.

"},{"location":"built_in_transformers/transformation_condition/#architecture","title":"Architecture","text":"

Greenmask encodes the way only when evaluating the condition - this allows to optimize the performance of the transformation if you have a lot of conditions that uses or (||) or and (&&) operators.

"},{"location":"built_in_transformers/transformation_condition/#example-chose-random-value-and-execute-one-of","title":"Example: Chose random value and execute one of","text":"

In the following example, the RandomChoice transformer is used to choose a random value from the list of values. Depending on the chosen value, the Replace transformer is executed to set the activeflag column to true or false.

In this case the condition scope is on the transformer level.

- schema: \"purchasing\"\n  name: \"vendor\"\n  transformers:\n    - name: \"RandomChoice\"\n      params:\n        column: \"name\"\n        values:\n          - \"test1\"\n          - \"test2\"\n\n    - name: \"Replace\"\n      when: 'record.name == \"test1\"'\n      params:\n        column: \"activeflag\"\n        value: \"false\"\n\n    - name: \"Replace\"\n      when: 'record.name == \"test2\"'\n      params:\n        column: \"activeflag\"\n        value: \"true\"\n
"},{"location":"built_in_transformers/transformation_condition/#example-do-not-transform-specific-columns","title":"Example: Do not transform specific columns","text":"

In the following example, the RandomString transformer is executed only if the businessentityid column value is not equal to 1492 or 1.

  - schema: \"purchasing\"\n    name: \"vendor\"\n    when: '!(record.businessentityid | has([1492, 1]))'\n    transformers:\n      - name: \"RandomString\"\n        params:\n          column: \"accountnumber\"\n          min_length: 9\n          max_length: 12\n          symbols: \"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n
"},{"location":"built_in_transformers/transformation_condition/#example-check-the-json-attribute-value","title":"Example: Check the json attribute value","text":"

In the following example, the RandomString transformer is executed only if the a attribute in the json_data column is equal to 1.

- schema: \"public\"\n  name: \"jsondata\"\n  when: 'raw_record.json_data | jsonGet(\"a\") == 1'\n  transformers:\n    - name: \"RandomString\"\n      params:\n        column: \"accountnumber\"\n        min_length: 9\n        max_length: 12\n        symbols: \"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n
"},{"location":"built_in_transformers/transformation_engines/","title":"Transformation engine","text":"

The greenmask provides two engines random and hash. Most of the transformers has engine parameters that by default is set to random. Use hash engine when you need to generate deterministic data - the same input will always produce the same output.

Info

Greenmask employs the SHA-3 algorithm to hash input values. While this function is cryptographically secure, it does exhibit lower performance. We plan to introduce additional hash functions in the future to offer a balance between security and performance. For example, SipHash, which provides a good trade-off between security and performance, is currently in development and is expected to be included in the stable v0.2 release of Greenmask.

Warning

The hash engine does not guarantee the uniqueness of generated values. Although transformers such as Hash, RandomEmail, and RandomUuid typically have a low probability of producing duplicate values The feature to ensure uniqueness is currently under development at Greenmask and is expected to be released in future updates. For the latest status, please visit the Greenmask roadmap.

"},{"location":"built_in_transformers/transformation_engines/#details","title":"Details","text":""},{"location":"built_in_transformers/transformation_engines/#example-schema","title":"Example schema","text":"

The next examples will be run on the following schema and sample data:

CREATE TABLE account\n(\n    id         SERIAL PRIMARY KEY,\n    gender     VARCHAR(1) NOT NULL,\n    email      TEXT       NOT NULL NOT NULL UNIQUE,\n    first_name TEXT       NOT NULL,\n    last_name  TEXT       NOT NULL,\n    birth_date DATE,\n    created_at TIMESTAMP  NOT NULL DEFAULT NOW()\n);\n\nINSERT INTO account (first_name, gender, last_name, birth_date, email)\nVALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');\n\nCREATE TABLE orders\n(\n    id          SERIAL PRIMARY KEY,\n    account_id  INTEGER REFERENCES account (id),\n    total_price NUMERIC(10, 2),\n    created_at  TIMESTAMP NOT NULL DEFAULT NOW(),\n    paid_at     TIMESTAMP\n);\n\nINSERT INTO orders (account_id, total_price, created_at, paid_at)\nVALUES (1, 100.50, '2024-05-01', '2024-05-02'),\n       (1, 200.75, '2024-05-03', NULL);\n
"},{"location":"built_in_transformers/transformation_engines/#random-engine","title":"Random engine","text":"

The random engine serves as the default engine for the greenmask. It operates using a pseudo-random number generator, which is initialized with a random seed sourced from a cryptographically secure random number generator. Employ the random engine when you need to generate random data and do not require reproducibility of the same transformation results with the same input.

The following example demonstrates how to configure the RandomDate transformer to generate random.

- schema: \"public\"\n  name: \"account\"\n  transformers:\n    - name: \"RandomDate\"\n      params:\n        column: \"birth_date\"\n        engine: \"random\" # (1)\n        min: '1970-01-01'\n        max: '2000-01-01'\n
  1. random engine is explicitly specified, although it is the default value.

Results:

ColumnOriginalValueTransformedValue birth_date1980-01-011970-02-23

Keep in mind that the random engine is always generates different values for the same input. For instance in we run the previous example multiple times we will get different results.

"},{"location":"built_in_transformers/transformation_engines/#hash-engine","title":"Hash engine","text":"

The hash engine is designed to generate deterministic data. It uses the SHA-3 algorithm to hash the input value. The hash engine is particularly useful when you need to generate the same output for the same input. For example, when you want to transform values that are used as primary or foreign keys in a database.

For secure reason it is suggested set global greenmask salt via GREENMASK_GLOBAL_SALT environment variable. The salt is added to the hash input to prevent the possibility of reverse engineering the original value from the hashed output. The value is hex encoded with variadic length. For example, GREENMASK_GLOBAL_SALT=a5eddc84e762e810. Generate a strong random salt and keep it secret.

The following example demonstrates how to configure the RandomInt transformer to generate deterministic data using the hash engine. The public.account.id and public.orders.account_id columns will have the same values.

- schema: \"public\"\n  name: \"account\"\n  transformers:\n\n    - name: \"RandomInt\"\n      params:\n        column: \"id\"\n        engine: hash\n        min: 1\n        max: 2147483647\n\n- schema: \"public\"\n  name: \"orders\"\n  transformers:\n\n    - name: \"RandomInt\"\n      params:\n        column: \"account_id\"\n        engine: hash\n        min: 1\n        max: 2147483647\n

Result:

  • public.account
ColumnOriginalValueTransformedValue id1130162079
  • public.orders
ColumnOriginalValueTransformedValue account_id1130162079"},{"location":"built_in_transformers/transformation_inheritance/","title":"Transformation Inheritance","text":""},{"location":"built_in_transformers/transformation_inheritance/#description","title":"Description","text":"

If you have partitioned tables or want to apply a transformation to a primary key and propagate it to all tables referencing that column, you can do so with Greenmask.

"},{"location":"built_in_transformers/transformation_inheritance/#apply-for-inherited","title":"Apply for inherited","text":"

Using apply_for_inherited, you can apply transformations to all partitions of a partitioned table, including any subpartitions.

"},{"location":"built_in_transformers/transformation_inheritance/#configuration-conflicts","title":"Configuration conflicts","text":"

When a partition has a transformation defined manually via config, and apply_for_inherited is set on the parent table, Greenmask will merge both the inherited and manually defined configurations. The manually defined transformation will execute last, giving it higher priority.

If this situation occurs, you will see the following information in the log:

{\n  \"level\": \"info\",\n  \"ParentTableSchema\": \"public\",\n  \"ParentTableName\": \"sales\",\n  \"ChildTableSchema\": \"public\",\n  \"ChildTableName\": \"sales_2022_feb\",\n  \"ChildTableConfig\": [\n    {\n      \"name\": \"RandomDate\",\n      \"params\": {\n        \"column\": \"sale_date\",\n        \"engine\": \"random\",\n        \"max\": \"2005-01-01\",\n        \"min\": \"2001-01-01\"\n      }\n    }\n  ],\n  \"time\": \"2024-11-03T22:14:01+02:00\",\n  \"message\": \"config will be merged: found manually defined transformers on the partitioned table\"\n}\n
"},{"location":"built_in_transformers/transformation_inheritance/#apply-for-references","title":"Apply for references","text":"

Using apply_for_references, you can apply transformations to columns involved in a primary key or in tables with a foreign key that references that column. This simplifies the transformation process by requiring you to define the transformation only on the primary key column, which will then be applied to all tables referencing that column.

The transformer must be deterministic or support hash engine and the hash engin must be set in the configuration file.

List of transformers that supports apply_for_references:

  • Hash
  • NoiseDate
  • NoiseFloat
  • NoiseInt
  • NoiseNumeric
  • RandomBool
  • RandomDate
  • RandomEmail
  • RandomFloat
  • RandomInt
  • RandomIp
  • RandomMac
  • RandomNumeric
  • RandomString
  • RandomUuid
  • RandomUnixTimestamp
"},{"location":"built_in_transformers/transformation_inheritance/#end-to-end-identifiers","title":"End-to-End Identifiers","text":"

End-to-end identifiers in databases are unique identifiers that are consistently used across multiple tables in a relational database schema, allowing for a seamless chain of references from one table to another. These identifiers typically serve as primary keys in one table and are propagated as foreign keys in other tables, creating a direct, traceable link from one end of a data relationship to the other.

Greenmask can detect end-to-end identifiers and apply transformations across the entire sequence of tables. These identifiers are detected when the following condition is met: the foreign key serves as both a primary key and a foreign key in the referenced table.

"},{"location":"built_in_transformers/transformation_inheritance/#configuration-conflicts_1","title":"Configuration conflicts","text":"

When on the referenced column a transformation is manually defined via config, and the apply_for_references is set on parent table, the transformation defined will be chosen and the inherited transformation will be ignored. You will receive a INFO message in the logs.

{\n  \"level\": \"info\",\n  \"TransformerName\": \"RandomInt\",\n  \"ParentTableSchema\": \"public\",\n  \"ParentTableName\": \"tablea\",\n  \"ChildTableSchema\": \"public\",\n  \"ChildTableName\": \"tablec\",\n  \"ChildColumnName\": \"id2\",\n  \"TransformerConfig\": {\n    \"name\": \"RandomInt\",\n    \"apply_for_references\": true\n  },\n  \"time\": \"2024-11-03T21:28:10+02:00\",\n  \"message\": \"skipping apply transformer for reference: found manually configured transformer\"\n}\n
"},{"location":"built_in_transformers/transformation_inheritance/#limitations","title":"Limitations","text":"
  • The transformation must be deterministic.
  • The transformation condition will not be applied to the referenced column.
  • Not all transformers support apply_for_references

Warning

We do not recommend using apply_for_references with transformation conditions, as these conditions are not inherited by transformers on the referenced columns. This may lead to inconsistencies in the data.

"},{"location":"built_in_transformers/transformation_inheritance/#example-1-partitioned-tables","title":"Example 1. Partitioned tables","text":"

In this example, we have a partitioned table sales that is partitioned by year and then by month. Each partition contains a subset of data based on the year and month of the sale. The sales table has a primary key sale_id and is partitioned by sale_date. The sale_date column is transformed using the RandomDate transformer.

CREATE TABLE sales\n(\n    sale_id   SERIAL         NOT NULL,\n    sale_date DATE           NOT NULL,\n    amount    NUMERIC(10, 2) NOT NULL\n) PARTITION BY RANGE (EXTRACT(YEAR FROM sale_date));\n\n-- Step 2: Create first-level partitions by year\nCREATE TABLE sales_2022 PARTITION OF sales\n    FOR VALUES FROM (2022) TO (2023)\n    PARTITION BY LIST (EXTRACT(MONTH FROM sale_date));\n\nCREATE TABLE sales_2023 PARTITION OF sales\n    FOR VALUES FROM (2023) TO (2024)\n    PARTITION BY LIST (EXTRACT(MONTH FROM sale_date));\n\n-- Step 3: Create second-level partitions by month for each year, adding PRIMARY KEY on each partition\n\n-- Monthly partitions for 2022\nCREATE TABLE sales_2022_jan PARTITION OF sales_2022 FOR VALUES IN (1)\n    WITH (fillfactor = 70);\nCREATE TABLE sales_2022_feb PARTITION OF sales_2022 FOR VALUES IN (2);\nCREATE TABLE sales_2022_mar PARTITION OF sales_2022 FOR VALUES IN (3);\n-- Continue adding monthly partitions for 2022...\n\n-- Monthly partitions for 2023\nCREATE TABLE sales_2023_jan PARTITION OF sales_2023 FOR VALUES IN (1);\nCREATE TABLE sales_2023_feb PARTITION OF sales_2023 FOR VALUES IN (2);\nCREATE TABLE sales_2023_mar PARTITION OF sales_2023 FOR VALUES IN (3);\n-- Continue adding monthly partitions for 2023...\n\n-- Step 4: Insert sample data\nINSERT INTO sales (sale_date, amount)\nVALUES ('2022-01-15', 100.00);\nINSERT INTO sales (sale_date, amount)\nVALUES ('2022-02-20', 150.00);\nINSERT INTO sales (sale_date, amount)\nVALUES ('2023-03-10', 200.00);\n

To transform the sale_date column in the sales table and all its partitions, you can use the following configuration:

- schema: public\n  name: sales\n  apply_for_inherited: true\n  transformers:\n    - name: RandomDate\n      params:\n        min: \"2022-01-01\"\n        max: \"2022-03-01\"\n        column: \"sale_date\"\n        engine: \"random\"\n
"},{"location":"built_in_transformers/transformation_inheritance/#example-2-simple-table-references","title":"Example 2. Simple table references","text":"

This is ordinary table references where the primary key of the users table is referenced in the orders table.

-- Enable the extension for UUID generation (if not enabled)\nCREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";\n\nCREATE TABLE users\n(\n    user_id  UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    username VARCHAR(50) NOT NULL\n);\n\nCREATE TABLE orders\n(\n    order_id   UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    user_id    UUID REFERENCES users (user_id),\n    order_date DATE NOT NULL\n);\n\nINSERT INTO users (username)\nVALUES ('john_doe');\nINSERT INTO users (username)\nVALUES ('jane_smith');\n\nINSERT INTO orders (user_id, order_date)\nVALUES ((SELECT user_id FROM users WHERE username = 'john_doe'), '2024-10-31'),\n       ((SELECT user_id FROM users WHERE username = 'jane_smith'), '2024-10-30');\n

To transform the username column in the users table, you can use the following configuration:

- schema: public\n  name: users\n  apply_for_inherited: true\n  transformers:\n    - name: RandomUuid\n      apply_for_references: true\n      params:\n        column: \"user_id\"\n        engine: \"hash\"\n

This will apply the RandomUuid transformation to the user_id column in the orders table automatically.

"},{"location":"built_in_transformers/transformation_inheritance/#example-3-references-on-tables-with-end-to-end-identifiers","title":"Example 3. References on tables with end-to-end identifiers","text":"

In this example, we have three tables: tablea, tableb, and tablec. All tables have a composite primary key. In the tables tableb and tablec, the primary key is also a foreign key that references the primary key of tablea. This means that all PKs are end-to-end identifiers.

CREATE TABLE tablea\n(\n    id1  INT,\n    id2  INT,\n    data VARCHAR(50),\n    PRIMARY KEY (id1, id2)\n);\n\nCREATE TABLE tableb\n(\n    id1    INT,\n    id2    INT,\n    detail VARCHAR(50),\n    PRIMARY KEY (id1, id2),\n    FOREIGN KEY (id1, id2) REFERENCES tablea (id1, id2) ON DELETE CASCADE\n);\n\nCREATE TABLE tablec\n(\n    id1         INT,\n    id2         INT,\n    description VARCHAR(50),\n    PRIMARY KEY (id1, id2),\n    FOREIGN KEY (id1, id2) REFERENCES tableb (id1, id2) ON DELETE CASCADE\n);\n\nINSERT INTO tablea (id1, id2, data)\nVALUES (1, 1, 'Data A1'),\n       (2, 1, 'Data A2'),\n       (3, 1, 'Data A3');\n\nINSERT INTO tableb (id1, id2, detail)\nVALUES (1, 1, 'Detail B1'),\n       (2, 1, 'Detail B2'),\n       (3, 1, 'Detail B3');\n\nINSERT INTO tablec (id1, id2, description)\nVALUES (1, 1, 'Description C1'),\n       (2, 1, 'Description C2'),\n       (3, 1, 'Description C3');\n

To transform the data column in tablea, you can use the following configuration:

- schema: public\n  name: \"tablea\"\n  apply_for_inherited: true\n  transformers:\n    - name: RandomInt\n      apply_for_references: true\n      params:\n        min: 0\n        max: 100\n        column: \"id1\"\n        engine: \"hash\"\n    - name: RandomInt\n      apply_for_references: true\n      params:\n        min: 0\n        max: 100\n        column: \"id2\"\n        engine: \"hash\"\n

This will apply the RandomInt transformation to the id1 and id2 columns in tableb and tablec automatically.

"},{"location":"built_in_transformers/advanced_transformers/","title":"Advanced transformers","text":"

Advanced transformers are modifiable anonymization methods that users can adjust based on their needs by using custom functions.

Below you can find an index of all advanced transformers currently available in Greenmask.

  1. Json \u2014 changes a JSON content by using delete and set operations.
  2. Template \u2014 executes a Go template of your choice and applies the result to a specified column.
  3. TemplateRecord \u2014 modifies records by using a Go template of your choice and applies the changes via the PostgreSQL driver.
"},{"location":"built_in_transformers/advanced_transformers/json/","title":"Json","text":"

Change a JSON document using delete and set operations. NULL values are kept.

"},{"location":"built_in_transformers/advanced_transformers/json/#parameters","title":"Parameters","text":"Name Properties Description Default Required Supported DB types column The name of the column to be affected Yes json, jsonb operations A list of operations that contains editing delete and set Yes - \u221f operation Specifies the operation type: set or delete Yes - \u221f path The path to an object to be modified. See path syntax below. Yes - \u221f value A value to be assigned to the provided path No - \u221f value_template A Golang template to be assigned to the provided path. See the list of template functions below. No - \u221f error_not_exist Throws an error if the key does not exist by the provided path. Disabled by default. false No -"},{"location":"built_in_transformers/advanced_transformers/json/#description","title":"Description","text":"

The Json transformer applies a sequence of changing operations (set and/or delete) to a JSON document. The value can be static or dynamic. For the set operation type, a static value is provided in the value parameter, while a dynamic value is provided in the value_template parameter, taking the data received after template execution as a result. Both the value and value_template parameters are mandatory for the set operation.

"},{"location":"built_in_transformers/advanced_transformers/json/#path-syntax","title":"Path syntax","text":"

The Json transformer is based on tidwall/sjson and supports the same path syntax. See their documentation for syntax rules.

"},{"location":"built_in_transformers/advanced_transformers/json/#template-functions","title":"Template functions","text":"Function Description Signature .GetPath Returns the current path to which the operation is being applied .GetPath() (path string) .GetOriginalValue Returns the original value to which the current operation path is pointing. If the value at the specified path does not exist, it returns nil. .GetOriginalValue() (value any) .OriginalValueExists Returns a boolean value indicating whether the specified path exists or not. .OriginalValueExists() (exists bool) .GetColumnValue Returns an encoded into Golang type value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map. .GetColumnValue(name string) (value any, err error) .GetRawColumnValue Returns a raw value for a specified column as a string or throws an error .GetRawColumnValue(name string) (value string, err error) .EncodeValueByColumn Encodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByColumn(name string, value any) (res any, err error) .DecodeValueByColumn Decodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(name string, value any) (res any, err error) .EncodeValueByType Encodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByType(name string, value any) (res any, err error) .DecodeValueByType Decodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByType(name string, value any) (res any, err error)"},{"location":"built_in_transformers/advanced_transformers/json/#example-changing-json-document","title":"Example: Changing JSON document","text":"Json transformer example
- schema: \"bookings\"\n  name: \"aircrafts_data\"\n  transformers:\n    - name: \"Json\"\n      params:\n        column: \"model\"\n        operations:\n          - operation: \"set\"\n            path: \"en\"\n            value: \"Boeing 777-300-2023\"\n          - operation: \"set\"\n            path: \"seats\"\n            error_not_exist: True\n            value_template: \"{{ randomInt 100 400 }}\"\n          - operation: \"set\"\n            path: \"details.preperties.1\"\n            value: {\"name\": \"somename\", \"description\": null}\n          - operation: \"delete\"\n            path: \"values.:2\"\n
"},{"location":"built_in_transformers/advanced_transformers/template/","title":"Template","text":"

Execute a Go template and automatically apply the result to a specified column.

"},{"location":"built_in_transformers/advanced_transformers/template/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes any template A Go template string Yes - validate Validates the template result using the PostgreSQL driver decoding procedure. Throws an error if a custom type does not have an encode-decoder implementation. false No -"},{"location":"built_in_transformers/advanced_transformers/template/#description","title":"Description","text":"

The Template transformer executes Go templates and automatically applies the template result to a specified column. Go template system is designed to be extensible, enabling developers to access data objects and incorporate custom functions programmatically. For more information, you can refer to the official Go Template documentation.

With the Template transformer, you can implement complicated transformation logic using basic or custom template functions. Below you can get familiar with the basic template functions for the Template transformer. For more information about available custom template functions, see Custom functions.

Warning

Pay attention to the whitespaces in templates. Use dash-wrapped - brackets {{- -}} for trimming the spaces. For example, the value \"2023-12-19\" is not the same as \" 2023-12-19 \" and it may throw an error when restoring.

"},{"location":"built_in_transformers/advanced_transformers/template/#template-functions","title":"Template functions","text":"Function Description Signature .GetColumnType Returns a string with the column type. .GetColumnType(name string) (typeName string, err error) .GetValue Returns the column value for column assigned in the column parameter, encoded by the PostgreSQL driver into any type along with any associated error. Supported types include int, float, time, string, bool, as well as slice or map of any type. .GetValue() (value any, err error) .GetRawValue Returns a raw value as a string for column assigned in the column parameter. .GetRawColumnValue(name string) (value string, err error) .GetColumnValue Returns an encoded value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map. .GetColumnValue(name string) (value any, err error) .GetRawColumnValue Returns a raw value for a specified column as a string or throws an error .GetRawColumnValue(name string) (value string, err error) .EncodeValue Encodes a value of any type into its string representation using the type assigned to the table column specified in the column parameter. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValue(value any) (res any, err error) .DecodeValue Decodes a value from its raw string representation to a Golang type using the data type assigned to the table column specified in the column parameter. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(value any) (res any, err error) .EncodeValueByColumn Encodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByColumn(name string, value any) (res any, err error) .DecodeValueByColumn Decodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(name string, value any) (res any, err error) .EncodeValueByType Encodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByType(name string, value any) (res any, err error) .DecodeValueByType Decodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByType(name string, value any) (res any, err error)"},{"location":"built_in_transformers/advanced_transformers/template/#example-update-the-firstname-column","title":"Example: Update the firstname column","text":"

Below you can see the table structure:

"},{"location":"built_in_transformers/advanced_transformers/template/#change-rule","title":"Change rule","text":"

The goal is to modify the firstname column based on the following conditions:

  • If the current value of the firstname column is equal to Terri, replace it with Mary.
  • For all other cases, generate a random name and append Jr.
"},{"location":"built_in_transformers/advanced_transformers/template/#using-a-template-function","title":"Using a template function","text":"

To generate random names, you can use the fakerFirstName template function, which is designed to create synthetic names.

Template transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformation:\n    - name: \"Template\"\n      params:\n        column: \"firstname\"\n        template: >\n          {{- if eq .GetValue \"Terri\" -}}\n            Mary\n          {{- else -}}\n            {{- fakerFirstName -}} Jr\n          {{- end -}}\n\n        validate: true\n

Expected result:

Value = TerryValue != Terri column name original value transformed firstname Terri Mary column name original value transformed firstname Ken Jr Mike"},{"location":"built_in_transformers/advanced_transformers/template_record/","title":"TemplateRecord","text":"

Modify records using a Go template and apply changes by using the PostgreSQL driver functions. This transformer provides a way to implement custom transformation logic.

"},{"location":"built_in_transformers/advanced_transformers/template_record/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types columns A list of columns to be affected by the template. The list of columns will be checked for constraint violations. No any template A Go template string Yes - validate Validate the template result via PostgreSQL driver decoding procedure. Throws an error if a custom type does not have an encode-decoder implementation. false No -"},{"location":"built_in_transformers/advanced_transformers/template_record/#description","title":"Description","text":"

TemplateRecord uses Go templates to change data. However, while the Template transformer operates with a single column and automatically applies results, the TemplateRecord transformer can make changes to a set of columns in the string, and using driver functions .SetValue or .SetRawValue is mandatory to do that.

With the TemplateRecord transformer, you can implement complicated transformation logic using basic or custom template functions. Below you can get familiar with the basic template functions for the TemplateRecord transformer. For more information about available custom template functions, see Custom functions.

"},{"location":"built_in_transformers/advanced_transformers/template_record/#template-functions","title":"Template functions","text":"Function Description Signature .GetColumnType Returns a string with the column type. .GetColumnType(name string) (typeName string, err error) .GetColumnValue Returns an encoded value for a specified column or throws an error. A value can be any of int, float, time, string, bool, or slice or map. .GetColumnValue(name string) (value any, err error) .GetRawColumnValue Returns a raw value for a specified column as a string or throws an error .GetRawColumnValue(name string) (value string, err error) .SetColumnValue Sets a new value of a specific data type to the column. The value assigned must be compatible with the PostgreSQL data type of the column. For example, it is allowed to assign an int value to an INTEGER column, but you cannot assign a float value to a timestamptz column. SetColumnValue(name string, v any) (bool, error) .SetRawColumnValue Sets a new raw value for a column, inheriting the column's existing data type, without performing data type validation. This can lead to errors when restoring the dump if the assigned value is not compatible with the column type. To ensure compatibility, consider using the .DecodeValueByColumn function followed by .SetColumnValue, for example, {{ \"13\" \\| .DecodeValueByColumn \"items_amount\" \\| .SetColumnValue \"items_amount\" }}. .SetRawColumnValue(name string, value any) (err error) .EncodeValueByColumn Encodes a value of any type into its raw string representation using the specified column name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByColumn(name string, value any) (res any, err error) .DecodeValueByColumn Decodes a value from its raw string representation to a Golang type using the specified column name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByColumn(name string, value any) (res any, err error) .EncodeValueByType Encodes a value of any type into its string representation using the specified type name. Encoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .EncodeValueByType(name string, value any) (res any, err error) .DecodeValueByType Decodes a value from its raw string representation to a Golang type using the specified type name. Decoding is performed through the PostgreSQL driver. Throws an error if types are incompatible. .DecodeValueByType(name string, value any) (res any, err error)"},{"location":"built_in_transformers/advanced_transformers/template_record/#example-generate-a-random-created_at-and-updated_at-dates","title":"Example: Generate a random created_at and updated_at dates","text":"

Below you can see the table structure:

The goal is to modify the \"created_at\" and \"updated_at\" columns based on the following rules:

  • Do not change the value if the created_at is Null.
  • If the created_at is not Null, generate the current time and use it as the minimum threshold for randomly generating the updated_at value.
  • Assign all generated values using the .SetColumnValue function.
Template transformer example
- name: \"TemplateRecord\"\n  params:\n    columns:\n      - \"created_at\"\n      - \"updated_at\"\n    template: >\n      {{ $val := .GetColumnValue \"created_at\" }}\n      {{ if isNotNull $val }}\n          {{ $createdAtValue := now }}\n          {{ $maxUpdatedDate := date_modify \"24h\" $createdAtValue }}\n          {{ $updatedAtValue := randomDate $createdAtValue $maxUpdatedDate }}\n          {{ .SetColumnValue \"created_at\" $createdAtValue }}\n          {{ .SetColumnValue \"updated_at\" $updatedAtValue }}\n      {{ end }}\n    validate: true\n

Expected result:

column name original value transformed created_at 2021-01-20 07:01:00.513325+00 2023-12-17 19:37:29.910054Z updated_at 2021-08-09 21:27:00.513325+00 2023-12-18 10:05:25.828498Z"},{"location":"built_in_transformers/advanced_transformers/custom_functions/","title":"Template custom functions","text":"

Within Greenmask, custom functions play a crucial role, providing a wide array of options for implementing diverse logic. Under the hood, the custom functions are based on the sprig Go's template functions. Greenmask enhances this capability by introducing additional functions and transformation functions. These extensions mirror the logic found in the standard transformers but offer you the flexibility to implement intricate and comprehensive logic tailored to your specific needs.

Currently, you can use template custom functions for the advanced transformers:

  • Json
  • Template
  • TemplateRecord

and for the Transformation condition feature as well.

Custom functions are arbitrarily divided into 2 groups:

  • Core functions \u2014 custom functions that vary in purpose and include PostgreSQL driver, JSON output, testing, and transformation functions.
  • Faker functions \u2014 custom function of a faker type which generate synthetic data.
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/","title":"Core functions","text":"

Below you can find custom core functions which are divided into categories based on the transformation purpose.

"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#postgresql-driver-functions","title":"PostgreSQL driver functions","text":"Function Description null Returns the NULL value that can be used for the driver encoding-decoding operations isNull Returns true if the checked value is NULL isNotNull Returns true if the checked value is not NULL sqlCoalesce Works as a standard SQL coalesce function. It allows you to choose the first non-NULL argument from the list."},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#json-output-function","title":"JSON output function","text":"Function Description jsonExists Checks if the path value exists in JSON. Returns true if the path exists. mustJsonGet Gets the JSON attribute value by path and throws an error if the path does not exist mustJsonGetRaw Gets the JSON attribute raw value by path and throws an error if the path does not exist jsonGet Gets the JSON attribute value by path and returns nil if the path does not exist jsonGetRaw Gets the JSON attribute raw value by path and returns nil if the path does not exist jsonSet Sets the value for the JSON document by path jsonSetRaw Sets the raw value for the JSON document by path jsonDelete Deletes an attribute from the JSON document by path jsonValidate Validates the JSON document syntax and throws an error if there are any issues jsonIsValid Checks the JSON document for validity and returns true if it is valid toJsonRawValue Casts any type of value to the raw JSON value"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#testing-functions","title":"Testing functions","text":"Function Description isInt Checks if the value of an integer type isFloat Checks if the value of a float type isNil Checks if the value is nil isString Checks if the value of a string type isMap Checks if the value of a map type isSlice Checks if the value of a slice type isBool Checks if the value of a boolean type"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#transformation-and-generators","title":"Transformation and generators","text":""},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#masking","title":"masking","text":"

Replaces characters with asterisk * symbols depending on the provided masking rule. If the value is NULL, it is kept unchanged. This function is based on ggwhite/go-masker.

Masking rulesSignatureParametersReturn values Rule Description Example input Example output default Returns the sequence of * symbols of the same length test1234 ******** name Masks the second and the third letters ABCD A**D password Always returns a sequence of * address Keeps first 6 letters, masks the rest Larnaca, makarios st Larnac************* email Keeps a domain and the first 3 letters, masks the rest ggw.chang@gmail.com ggw****@gmail.com mobile Masks 3 digits starting from the 4th digit 0987654321 0987***321 telephone Removes (, ), , - symbols, masks last 4 digits of a telephone number, and formats it to (??)????-???? 0227993078 (02)2799-**** id Masks last 4 digits of an ID A123456789 A12345**** credit_card Masks 6 digits starting from the 7th digit 1234567890123456 123456******3456 url Masks the password part of the URL (if applicable) http://admin:mysecretpassword@localhost:1234/uri http://admin:xxxxx@localhost:1234/uri

masking(dataType string, value string) (res string, err error)

  • dataType \u2014 one of the masking rules (see previous tab)
  • value \u2014 the original string value
  • res \u2014 a masked string
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#truncatedate","title":"truncateDate","text":"

Truncates datetime up to the provided part.

SignatureParametersReturn values

truncateDate(part string, original time.Time) (res time.Time, err error)

  • part \u2014 the truncation part. Must be one of nano, second, minute, hour, day, month, or year
  • original \u2014 the original datetime value
  • res \u2014 a truncated datetime
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#noisedatepginterval","title":"noiseDatePgInterval","text":"

Adds or subtracts a random duration in the provided interval to or from the original date value.

SignatureParametersReturn values

noiseDate(interval string, original time.Time) (res time.Time, err error)

  • interval \u2014 the maximum value of ratio that is added to the original value. The format is the same as in the PostgreSQL interval format.
  • original \u2014 the original time value
  • res \u2014 a noised date
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#noisefloat","title":"noiseFloat","text":"

Adds or subtracts a random fraction to or from the original float value. Multiplies the original float value by a provided random value that is not higher than the ratio parameter and adds it to the original value with the option to specify the decimal via the decimal parameter.

SignatureParametersReturn values

noiseFloat(ratio float, decimal int, value float) (res float64, err error)

  • ratio \u2014 the maximum multiplier value in the interval (0:1). The value will be randomly generated up to ratio, multiplied by the original value, and the result will be added to the original value.
  • decimal \u2014 the decimal of the resulted value
  • value \u2014 the original value
  • res \u2014 a noised float value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#noiseint","title":"noiseInt","text":"

Adds or subtracts a random fraction to or from the original integer value. Multiplies the original integer value by a provided random value that is not higher than the ratio parameter and adds it to the original value.

SignatureParametersReturn values

noiseInt(ratio float, value float) (res int, err error)

  • ratio \u2014 the max multiplier value in the interval (0:1). The value will be generated randomly up to ratio, multiplied by the original value, and the result will be added to the original value.
  • value \u2014 the original value
  • res \u2014 a noised integer value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#randombool","title":"randomBool","text":"

Generates a random boolean value.

"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#randomdate","title":"randomDate","text":"

Generates a random date within the provided interval.

SignatureParametersReturn values

randomDate(min time.Time, max time.Time) (res time.Time, err error)

  • min \u2014 the minimum random value threshold
  • max \u2014 the maximum random value threshold
  • res \u2014 a randomly generated date value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#randomfloat","title":"randomFloat","text":"

Generates a random float value within the provided interval.

SignatureParametersReturn values

randomFloat(min any, max any, decimal int) (res float, err error)

  • min \u2014 the minimum random value threshold
  • max \u2014 the maximum random value threshold
  • decimal \u2014 the decimal of the resulted value
  • res \u2014 a randomly generated float value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#randomint","title":"randomInt","text":"

Generates a random integer value within the provided interval.

SignatureParametersReturn values

randomInt(min int, max int) (res int, err error)

  • min \u2014 the minimum random value threshold
  • max \u2014 the maximum random value threshold
  • res \u2014 a randomly generated int value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#randomstring","title":"randomString","text":"

Generates a random string using the provided characters within the specified length range.

SignatureParametersReturn values

randomString(minLength int, maxLength int, symbols string) (res string, err error)

  • minLength \u2014 the minimum string length
  • maxLength \u2014 the maximum string length
  • symbols \u2014 a string with a set of symbols which can be used. The default value is abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
  • res \u2014 a randomly generated string value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#roundfloat","title":"roundFloat","text":"

Rounds a float value up to provided decimal.

SignatureParametersReturn values

roundFloat(decimal int, original float) (res float, err error)

  • decimal \u2014 the decimal of the value
  • original \u2014 the original float value
  • res \u2014 a rounded float value
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/core_functions/#tsmodify","title":"tsModify","text":"

Modify original time value by adding or subtracting the provided interval. The interval is a string in the format of the PostgreSQL interval.

SignatureParametersReturn values

tsModify(interval string, val time.Time) (time.Time, error)

  • interval \u2014 the maximum value of ratio that is added to the original value. The format is the same as in the PostgreSQL interval format.
  • original \u2014 the original time value
  • res \u2014 a modified date
  • err \u2014 an error if there is an issue
"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/","title":"Faker functions","text":"

Greenmask uses go-faker/faker under the hood for generating of synthetic data.

"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-address","title":"Faker functions: Address","text":"Function Description Signature fakerRealAddress Generates a random real-world address that includes: city, state, postal code, latitude, and longitude fakerRealAddress() (res ReadAddress) fakerLatitude Generates random fake latitude fakerLatitude() (res float64) fakerLongitude Generates random fake longitude fakerLongitude() (res float64)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-datetime","title":"Faker functions: Datetime","text":"Function Description Signature fakerUnixTime Generates random Unix time in seconds fakerLongitude() (res int64) fakerDate Generates random date with the pattern of YYYY-MM-DD fakerDate() (res string) fakerTimeString Generates random time fakerTimeString() (res string) fakerMonthName Generates a random month fakerMonthName() (res string) fakerYearString Generates a random year fakerYearString() (res string) fakerDayOfWeek Generates a random day of a week fakerDayOfWeek() (res string) fakerDayOfMonth Generates a random day of a month fakerDayOfMonth() (res string) fakerTimestamp Generates a random timestamp with the pattern of YYYY-MM-DD HH:MM:SS fakerTimestamp() (res string) fakerCentury Generates a random century fakerCentury() (res string) fakerTimezone Generates a random timezone name fakerTimezone() (res string) fakerTimeperiod Generates a random time period with the patter of either AM or PM fakerTimeperiod() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-internet","title":"Faker functions: Internet","text":"Function Description Signature fakerEmail Generates a random email fakerEmail() (res string) fakerMacAddress Generates a random MAC address fakerMacAddress() (res string) fakerDomainName Generates a random domain name fakerDomainName() (res string) fakerURL Generates a random URL with the pattern of https://www.domainname.some/somepath fakerURL() (res string) fakerUsername Generates a random username fakerUsername() (res string) fakerIPv4 Generates a random IPv4 address fakerIPv4() (res string) fakerIPv6 Generates a random IPv6 address fakerIPv6() (res string) fakerPassword Generates a random password fakerPassword() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-words-and-sentences","title":"Faker functions: words and sentences","text":"Function Description Signature fakerWord Generates a random word fakerWord() (res string) fakerSentence Generates a random sentence fakerSentence() (res string) fakerParagraph Generates a random sequence of sentences as a paragraph fakerParagraph() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-payment","title":"Faker functions: Payment","text":"Function Description Signature fakerCCType Generates a random credit card type, e.g. VISA, MasterCard, etc. fakerCCType() (res string) fakerCCNumber Generates a random credit card number fakerCCNumber() (res string) fakerCurrency Generates a random currency name fakerCurrency() (res string) fakerAmountWithCurrency Generates random amount preceded with random currency fakerAmountWithCurrency() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-person","title":"Faker functions: Person","text":"Function Description Signature fakerTitleMale Generates a random male title from the predefined list fakerTitleMale() (res string) fakerTitleFemale Generates a random female title from the predefined list fakerTitleFemale() (res string) fakerFirstName Generates a random first name fakerFirstName() (res string) fakerFirstNameMale Generates a random male first name fakerFirstNameMale() (res string) fakerFirstNameFemale Generates a random female first name fakerFirstNameFemale() (res string) fakerFirstLastName Generates a random last name fakerFirstLastName() (res string) fakerName Generates a random full name preceded with a title fakerName() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-phone","title":"Faker functions: Phone","text":"Function Description Signature fakerPhoneNumber Generates a random phone number fakerPhoneNumber() (res string) fakerTollFreePhoneNumber Generates a random phone number with the pattern of (123) 456-7890 fakerTollFreePhoneNumber() (res string) fakerE164PhoneNumber Generates a random phone number with the pattern of +12345678900 fakerE164PhoneNumber() (res string)"},{"location":"built_in_transformers/advanced_transformers/custom_functions/faker_function/#faker-functions-uuid","title":"Faker functions: UUID","text":"Function Description Signature fakerUUIDHyphenated Generates a random unique user ID separated by hyphens fakerUUID() (res string) fakerUUIDDigit Generates a random unique user ID in the HEX format fakerUUIDDigit() (res string)"},{"location":"built_in_transformers/standard_transformers/","title":"Standard transformers","text":"

Standard transformers are ready-to-use methods that require no customization and perform with just as little as parameters input. Below you can find an index of all standard transformers currently available in Greenmask.

  1. Cmd \u2014 transforms data via external program using stdin and stdout interaction.
  2. Dict \u2014 replaces values matched by dictionary keys.
  3. Hash \u2014 generates a hash of the text value.
  4. Masking \u2014 masks a value using one of the masking behaviors depending on your domain.
  5. NoiseDate \u2014 randomly adds or subtracts a duration within the provided ratio interval to the original date value.
  6. NoiseFloat \u2014 adds or subtracts a random fraction to the original float value.terval to the original date value.
  7. NoiseNumeric \u2014 adds or subtracts a random fraction to the original numeric value.
  8. NoiseInt \u2014 adds or subtracts a random fraction to the original integer value.
  9. RandomBool \u2014 generates random boolean values.
  10. RandomChoice \u2014 replaces values randomly chosen from a provided list.
  11. RandomDate \u2014 generates a random date in a specified interval.
  12. RandomFloat \u2014 generates a random float within the provided interval.
  13. RandomInt \u2014 generates a random integer within the provided interval.
  14. RandomString \u2014 generates a random string using the provided characters within the specified length range.
  15. RandomUuid \u2014 generates a random unique user ID.
  16. RandomLatitude \u2014 generates a random latitude value.
  17. RandomLongitude \u2014 generates a random longitude value.
  18. RandomUnixTimestamp \u2014 generates a random Unix timestamp.
  19. RandomDayOfWeek \u2014 generates a random day of the week.
  20. RandomDayOfMonth \u2014 generates a random day of the month.
  21. RandomMonthName \u2014 generates the name of a random month.
  22. RandomYearString \u2014 generates a random year as a string.
  23. RandomCentury \u2014 generates a random century.
  24. RandomTimezone \u2014 generates a random timezone.
  25. RandomEmail \u2014 generates a random email address.
  26. RandomUsername \u2014 generates a random username.
  27. RandomPassword \u2014 generates a random password.
  28. RandomDomainName \u2014 generates a random domain name.
  29. RandomURL \u2014 generates a random URL.
  30. RandomMac \u2014 generates a random MAC addresses.
  31. RandomIP \u2014 generates a random IPv4 or IPv6 addresses.
  32. RandomWord \u2014 generates a random word.
  33. RandomSentence \u2014 generates a random sentence.
  34. RandomParagraph \u2014 generates a random paragraph.
  35. RandomCCType \u2014 generates a random credit card type.
  36. RandomCCNumber \u2014 generates a random credit card number.
  37. RandomCurrency \u2014 generates a random currency code.
  38. RandomAmountWithCurrency \u2014 generates a random monetary amount with currency.
  39. RandomPerson \u2014 generates a random person data (first name, last name, etc.)
  40. RandomPhoneNumber \u2014 generates a random phone number.
  41. RandomTollFreePhoneNumber \u2014 generates a random toll-free phone number.
  42. RandomE164PhoneNumber \u2014 generates a random phone number in E.164 format.
  43. RealAddress \u2014 generates a real address.
  44. RegexpReplace \u2014 replaces a string using a regular expression.
  45. Replace \u2014 replaces an original value by the provided one.
  46. SetNull \u2014 sets NULL value to the column.
"},{"location":"built_in_transformers/standard_transformers/cmd/","title":"Cmd","text":"

Transform data via external program using stdin and stdout interaction.

"},{"location":"built_in_transformers/standard_transformers/cmd/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types columns A list of column names to be affected. If empty, the entire tuple is used. Read about the structure further. Yes Any executable The path to the executable parameter file Yes - args A list of parameters for the executable No - driver The row driver with parameters that is used for interacting with cmd. See details below. {\"name\": \"csv\"} No - validate Performs a decoding operation using the PostgreSQL driver for data received from the command to ensure the data format is correct false No - timeout Timeout for sending and receiving data from the external command 2s No - expected_exit_code The expected exit code on SIGTERM signal. If the exit code is unexpected, the transformation exits with an error. 0 No - skip_on_behaviour Skips transformation call if one of the provided columns has a null value (any) or each of the provided columns has null values (all). This option works together with the skip_on_null_input parameter on columns. Possible values: all, any. all No -

Warning

The parameter validate_output=true may cause an error if the type does not have a PostgreSQL driver decoder implementation. Most of the types, such as int, float, text, varchar, date, timestamp, etc., have encoders and decoders, as well as inherited types like domain types based on them.

"},{"location":"built_in_transformers/standard_transformers/cmd/#description","title":"Description","text":"

The Cmd transformer allows you to send original data to an external program via stdin and receive transformed data from stdout. It supports various interaction formats such as json, csv, or plain text for one-column transformations. The interaction is performed line by line, so at the end of each sent data, a new line symbol \\n must be included.

"},{"location":"built_in_transformers/standard_transformers/cmd/#types-of-interaction-modes","title":"Types of interaction modes","text":""},{"location":"built_in_transformers/standard_transformers/cmd/#text","title":"text","text":"

Textual driver that is used only for one column transformation, thus you cannot provide here more than one column. The value encodes into string laterally. For example, 2023-01-03 01:00:00.0+03.

"},{"location":"built_in_transformers/standard_transformers/cmd/#json","title":"json","text":"

JSON line driver. It has two formats that can be passed through driver.json_data_format: [text|bytes]. Use the bytes format for binary datatypes. Use the text format for non-binary datatypes and for those that can be represented as string literals. The default json_data_format is text.

Text format with indexesBytes format with indexes
{\n  \"column1\": {\n    \"d\": \"some_value1\",\n    \"n\": false,\n  },\n  \"column2\": {\n    \"d\": \"some_value2\",\n    \"n\": false,\n  }\n}\n
{\n  \"column1\": {\n    \"d\": \"aGVsbG8gd29ybHNeODcxMjE5MCUlJSUlJQ==\",\n    \"n\": false,\n  },\n  \"column2\": {\n    \"d\": \"aGVsbG8gd29ybHNeODcxMjE5MCUlJSUlJQ==\",\n    \"n\": false,\n  }\n}\n

where:

  • Each line is a JSON line with a map of attribute numbers to their values
  • d \u2014 the raw data represented as base64 encoding for the bytes format or Unicode text for the text format. The base64 encoding is needed because data can be binary.
  • n \u2014 indicates if NULL is present
"},{"location":"built_in_transformers/standard_transformers/cmd/#csv","title":"csv","text":"

CSV driver (comma-separated). The number of attributes is the same as the number of table columns, but the columns that were not mentioned in the columns list are empty. The NULL value is represented as \\N. Each attribute is escaped by a quote (\"). For example, if the transformed table has attributes id, title, and created_at, and only id and created_at require transformation, then the CSV line will look as follows:

csv line example
\"123\",\"\",\"2023-01-03 01:00:00.0+03\"\n
"},{"location":"built_in_transformers/standard_transformers/cmd/#column-object-attributes","title":"Column object attributes","text":"
  • name \u2014 the name of the column. This value is required. Depending on the attributes that follows further, this column may be used just as a value and is not affected in any way.
  • not_affected \u2014 indicates whether the column is affected in the transformation. This attribute is required for the validation procedure when Greenmask is called with greenmask dump --validate. Setting not_affected=true can be helpful when the command transformer transforms data depending on the value of another column. For example, if you want to generate an updated_at column value depending on the created_at column value, you can set created_at to not_affected=true. The default value is false.
  • skip_original_data \u2014 indicates whether the original data is required for the transformer. This attribute can be helpful for decreasing the interaction time. One use case is when the command works as a generator and returns the value without relying on the original data. The default value is false.
  • skip_on_null_input \u2014 specifies whether to skip transformation when the original value is null. This attribute works in conjunction with the skip_on_behaviour parameter. For example, if you have two affected columns with skip_on_null_input=true and one column is null, then, if skip_on_behaviour=any, the transformation will be skipped, or, if skip_on_behaviour=and, the transformation will be performed. The default is false.
"},{"location":"built_in_transformers/standard_transformers/cmd/#example-apply-transformation-performed-by-external-command-in-text-format","title":"Example: Apply transformation performed by external command in TEXT format","text":"

In the following example, jobtitle columns is transformed via external command transformer.

External transformer in python example
#!/usr/bin/env python3\nimport signal\nimport sys\n\nsignal.signal(signal.SIGTERM, lambda sig, frame: exit(0))\n\n\n# If we want to implement a simple generator, we need read the line from stdin and write any result to stdout\nfor _ in sys.stdin:\n    # Writing the result to stdout with new line and flushing the buffer\n    sys.stdout.write(\"New Job Title\")\n    sys.stdout.write(\"\\n\")\n    sys.stdout.flush()\n
Cmd transformer config example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"Cmd\"\n      params:\n        driver:\n          name: \"text\"\n        expected_exit_code: -1\n        skip_on_null_input: true\n        validate: true\n        skip_on_behaviour: \"any\"\n        timeout: 60s\n        executable: \"/var/lib/playground/test.py\"\n        columns:\n          - name: \"jobtitle\"\n            skip_original_data: true\n            skip_on_null_input: true \n
"},{"location":"built_in_transformers/standard_transformers/cmd/#example-apply-transformation-performed-by-external-command-in-json-format","title":"Example: Apply transformation performed by external command in JSON format","text":"

In the following example, jobtitle and loginid columns are transformed via external command transformer.

External transformer in python example
#!/usr/bin/env python3\nimport json\nimport signal\nimport sys\n\nsignal.signal(signal.SIGTERM, lambda sig, frame: exit(0))\n\nfor line in sys.stdin:\n    res = json.loads(line)\n    # Setting dummy values\n    res[\"jobtitle\"] = {\"d\": \"New Job Title\", \"n\": False}\n    res[\"loginid\"][\"d\"] = \"123\"\n\n    # Writing the result to stdout with new line and flushing the buffer\n    sys.stdout.write(json.dumps(res))\n    sys.stdout.write(\"\\n\")\n    sys.stdout.flush()\n
Cmd transformer config example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"Cmd\"\n      params:\n        driver:\n          name: \"json\" # (1)\n          json_data_format: \"text\" # (4)\n        expected_exit_code: -1\n        skip_on_null_input: true\n        validate: true\n        skip_on_behaviour: \"any\" # (2)\n        timeout: 60s\n        executable: \"/var/lib/playground/test.py\"\n        columns:\n          - name: \"jobtitle\"\n            skip_original_data: true\n            skip_on_null_input: true # (3)\n          - name: \"loginid\"\n            skip_original_data: false # (5)\n            skip_on_null_input: true # (3)\n

{ .annotate }

  1. Validate the received data via decode procedure using the PostgreSQL driver. Note that this may cause an error if the type is not supported in the PostgreSQL driver.
  2. Skip transformation (keep the values) if one of the affected columns (not_affected=false) has a null value.
  3. If a column has a null value, then skip it. This works in conjunction with skip_on_behaviour. Since it has the value any, if one of the columns (jobtitle or loginid) has a null value, then skip the transformation call.
  4. The format of JSON can be either text or bytes. The default value is text.
  5. The skip_original_data attribute is set to true the date will not be transfered to the command. This column will contain the empty original data
"},{"location":"built_in_transformers/standard_transformers/dict/","title":"Dict","text":"

Replace values matched by dictionary keys.

"},{"location":"built_in_transformers/standard_transformers/dict/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes any values Value replace mapping as in: {\"string\": \"string\"}. The string with value \"\\N\" is considered NULL. No - default Shown if no value has been matched with dict. The string with value \"\\N\" is considered NULL. By default is empty. No - fail_not_matched When no value is matched with the dict, fails the replacement process if set to true, or keeps the current value, if set to false. true No - validate Performs the encode-decode procedure using column type to ensure that values have correct type true No -"},{"location":"built_in_transformers/standard_transformers/dict/#description","title":"Description","text":"

The Dict transformer uses a user-provided key-value dictionary to replace values based on matches specified in the values parameter mapping. These provided values must align with the PostgreSQL type format. To validate the values format before application, you can utilize the validate parameter, triggering a decoding procedure via the PostgreSQL driver.

If there are no matches by key, an error will be raised according to a default fail_not_matched: true parameter. You can change this behaviour by providing the default parameter, value from which will be shown in case of a missing match.

In certain cases where the driver type does not support the validation operation, an error may occur. For setting or matching a NULL value, use a string with the \\N sequence.

"},{"location":"built_in_transformers/standard_transformers/dict/#example-replace-marital-status","title":"Example: Replace marital status","text":"

The following example replaces marital status from S to M or from M to S and raises an error if there is no match:

Dict transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"Dict\"\n      params:\n        column: \"maritalstatus\"\n        values:\n          \"S\": \"M\"\n          \"M\": \"S\"\n        validate: true\n        fail_not_matched: true\n

Result

ColumnOriginalValueTransformedValue maritalstatusSM"},{"location":"built_in_transformers/standard_transformers/hash/","title":"Hash","text":"

Generate a hash of the text value using the Scrypt hash function under the hood. NULL values are kept.

"},{"location":"built_in_transformers/standard_transformers/hash/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar salt Hex encoded salt string. This value may be provided via environment variable GREENMASK_GLOBAL_SALT Yes text, varchar function Hash algorithm to anonymize data. Can be any of md5, sha1, sha256, sha512, sha3-224, sha3-254, sha3-384, sha3-512. sha1 No - max_length Indicates whether to truncate the hash tail and specifies at what length. Can be any integer number, where 0 means \"no truncation\". 0 No -"},{"location":"built_in_transformers/standard_transformers/hash/#example-generate-hash-from-job-title","title":"Example: Generate hash from job title","text":"

The following example generates a hash from the jobtitle into sha1 and truncates the results after the 10th character.

We can set the salt via the environment variable GREENMASK_GLOBAL_SALT:

export GREENMASK_GLOBAL_SALT=\"12343567baaa\"\n
Hash transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"Hash\"\n      params:\n        column: \"jobtitle\"\n        function: \"sha1\"\n        max_length: 10\n
Expected result
| column name | original value                   | transformed |\n|-------------|----------------------------------|-------------|\n| jobtitle    | Research and Development Manager | 3a456da5c5  |\n
"},{"location":"built_in_transformers/standard_transformers/masking/","title":"Masking","text":"

Mask a value using one of the masking rules depending on your domain. NULL values are kept.

"},{"location":"built_in_transformers/standard_transformers/masking/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar type Data type of attribute (default, password, name, addr, email, mobile, tel, id, credit, url) default No -"},{"location":"built_in_transformers/standard_transformers/masking/#description","title":"Description","text":"

The Masking transformer replaces characters with asterisk * symbols depending on the provided data type. If the value is NULL, it is kept unchanged. It is based on ggwhite/go-masker and supports the following masking rules:

Type Description default Returns * symbols with the same length, e.g. input: test1234 output: ******** name Masks the second letter the third letter in a word, e. g. input: ABCD output: A**D password Always returns ************ address Keeps first 6 letters, masks the rest, e. g. input: Larnaca, makarios st output: Larnac************* email Keeps a domain and the first 3 letters, masks the rest, e. g. input: ggw.chang@gmail.com output: ggw****@gmail.com mobile Masks 3 digits starting from the 4th digit, e. g. input: 0987654321 output: 0987***321 telephone Removes (, ), , - chart, and masks last 4 digits of telephone number, then formats it to (??)????-????, e. g. input: 0227993078 output: (02)2799-**** id Masks last 4 digits of ID number, e. g. input: A123456789 output: A12345**** credit_cart Masks 6 digits starting from the 7th digit, e. g. input 1234567890123456 output 123456******3456 url Masks the password part of the URL, if applicable, e. g. http://admin:mysecretpassword@localhost:1234/uri output: http://admin:xxxxx@localhost:1234/uri"},{"location":"built_in_transformers/standard_transformers/masking/#example-masking-employee-national-id-number","title":"Example: Masking employee national ID number","text":"

In the following example, the national ID number of an employee is masked.

Masking transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"Masking\"\n      params:\n        column: \"nationalidnumber\"\n        type: \"id\"\n
Expected result
| column name      | original value | transformed |\n|------------------|----------------|-------------|\n| nationalidnumber | 295847284      | 295847****  |\n
"},{"location":"built_in_transformers/standard_transformers/noise_date/","title":"NoiseDate","text":"

Randomly add or subtract a duration within the provided ratio interval to the original date value.

"},{"location":"built_in_transformers/standard_transformers/noise_date/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes date, timestamp, timestamptz min_ratio The minimum random value for noise. The value must be in PostgreSQL interval format, e. g. 1 year 2 mons 3 day 04:05:06.07 5% from max_ration parameter No - max_ratio The maximum random value for noise. The value must be in PostgreSQL interval format, e. g. 1 year 2 mons 3 day 04:05:06.07 Yes - min Min threshold date (and/or time) of value. The value has the same format as column parameter No - max Max threshold date (and/or time) of value. The value has the same format as column parameter No - truncate Truncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default. No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/noise_date/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min date, timestamp, timestamptz max date, timestamp, timestamptz"},{"location":"built_in_transformers/standard_transformers/noise_date/#description","title":"Description","text":"

The NoiseDate transformer randomly generates duration between min_ratio and max_ratio parameter and adds it to or subtracts it from the original date value. The min_ratio or max_ratio parameters must be written in the PostgreSQL interval format. You can also truncate the resulted date up to a specified part by setting the truncate parameter.

In case you have constraints on the date range, you can set the min and max parameters to specify the threshold values. The values for min and max must have the same format as the column parameter. Parameters min and max support dynamic mode.

Info

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value is lower than the min threshold, the transformer will set the value to min.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/noise_date/#example-adding-noise-to-the-modified-date","title":"Example: Adding noise to the modified date","text":"

In the following example, the original timestamp value of modifieddate will be noised up to 1 year 2 months 3 days 4 hours 5 minutes 6 seconds and 7 milliseconds with truncation up to the month part.

NoiseDate transformer example
- schema: \"humanresources\"\n  name: \"jobcandidate\"\n  transformers:\n    - name: \"NoiseDate\"\n      params:\n        column: \"hiredate\"\n        max_ratio: \"1 year 2 mons 3 day 04:05:06.07\"\n        truncate: \"month\"\n        max: \"2020-01-01 00:00:00\"\n
"},{"location":"built_in_transformers/standard_transformers/noise_date/#example-adding-noise-to-the-modified-date-with-dynamic-min-parameter-with-hash-engine","title":"Example: Adding noise to the modified date with dynamic min parameter with hash engine","text":"

In the following example, the original timestamp value of hiredate will be noised up to 1 year 2 months 3 days 4 hours 5 minutes 6 seconds and 7 milliseconds with truncation up to the month part. The max threshold is set to 2020-01-01 00:00:00, and the min threshold is set to the birthdate column. If the birthdate column is NULL, the default value 1990-01-01 will be used. The hash engine is used for deterministic generation - the same input will always produce the same output.

NoiseDate transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"NoiseDate\"\n      params:\n        column: \"hiredate\"\n        max_ratio: \"1 year 2 mons 3 day 04:05:06.07\"\n        truncate: \"month\"\n        max: \"2020-01-01 00:00:00\"\n        engine: \"hash\"\n      dynamic_params:\n        min:\n          column: \"birthdate\"\n          default: \"1990-01-01\"\n

Result

ColumnOriginalValueTransformedValue hiredate2009-01-142010-08-01"},{"location":"built_in_transformers/standard_transformers/noise_float/","title":"NoiseFloat","text":"

Add or subtract a random fraction to the original float value.

"},{"location":"built_in_transformers/standard_transformers/noise_float/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes float4, float8 decimal The decimal of the noised float value (number of digits after the decimal point) 4 No - min_ratio The minimum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" 0.05 No - max_ratio The maximum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" Yes - min Min threshold of noised value No - max Max threshold of noised value No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/noise_float/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min float4, float8, int2, int4, int8 max float4, float8, int2, int4, int8"},{"location":"built_in_transformers/standard_transformers/noise_float/#description","title":"Description","text":"

The NoiseFloat transformer multiplies the original float value by randomly generated value that is not higher than the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from the original value. Additionally, you can specify the number of decimal digits by using the decimal parameter.

In case you have constraints on the float range, you can set the min and max parameters to specify the threshold values. The values for min and max must have the same format as the column parameter. Parameters min and max support dynamic mode. Engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines

Info

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value is lower than the min threshold, the transformer will set the value to min.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/noise_float/#example-adding-noise-to-the-purchase-price","title":"Example: Adding noise to the purchase price","text":"

In this example, the original value of standardprice will be noised up to 50% and rounded up to 2 decimals.

NoiseFloat transformer example
- schema: \"purchasing\"\n  name: \"productvendor\"\n  columns_type_override: # (1)\n    lastreceiptcost: \"float8\"\n    standardprice: \"float8\"\n  transformers:\n    - name: \"NoiseFloat\"\n      params:\n        column: \"lastreceiptcost\"\n        max_ratio: 0.15\n        decimal: 2\n      dynamic_params:\n        min:\n          column: \"standardprice\"\n
  1. The type overrides applied for example because the playground database does not contain any tables with float columns.

Result

ColumnOriginalValueTransformedValue lastreceiptcost50.263547.87"},{"location":"built_in_transformers/standard_transformers/noise_int/","title":"NoiseInt","text":"

Add or subtract a random fraction to the original integer value.

"},{"location":"built_in_transformers/standard_transformers/noise_int/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes int2, int4, int8 min_ratio The minimum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" 0.05 No - max_ratio The maximum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" Yes - min Min threshold of noised value No - max Min threshold of noised value No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/noise_int/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min int2, int4, int8 max int2, int4, int8"},{"location":"built_in_transformers/standard_transformers/noise_int/#description","title":"Description","text":"

The NoiseInt transformer multiplies the original integer value by randomly generated value that is not higher than the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from the original value.

In case you have constraints on the integer range, you can set the min and max parameters to specify the threshold values. The values for min and max must have the same format as the column parameter. Parameters min and max support dynamic mode.

Info

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value is lower than the min threshold, the transformer will set the value to min.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/noise_int/#example-noise-vacation-hours-of-an-employee","title":"Example: Noise vacation hours of an employee","text":"

In the following example, the original value of vacationhours will be noised up to 40%. The transformer will set the value to 10 if the noised value is lower than 10 and to 1000 if the noised value exceeds 1000.

NoiseInt transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"NoiseInt\"\n      params:\n        column: \"vacationhours\"\n        max_ratio: 0.4\n        min: 10\n        max: 1000\n

Result

ColumnOriginalValueTransformedValue vacationhours9969"},{"location":"built_in_transformers/standard_transformers/noise_numeric/","title":"NoiseNumeric","text":"

Add or subtract a random fraction to the original numeric value.

"},{"location":"built_in_transformers/standard_transformers/noise_numeric/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes numeric, decimal decimal The decimal of the noised float value (number of digits after the decimal point) 4 No - min_ratio The minimum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" 0.05 No - max_ratio The maximum random percentage for noise, from 0 to 1, e. g. 0.1 means \"add noise up to 10%\" Yes - min Min threshold of noised value No - max Max threshold of noised value No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/noise_numeric/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min numeric, decimal, float4, float8, int2, int4, int8 max numeric, decimal, float4, float8, int2, int4, int8"},{"location":"built_in_transformers/standard_transformers/noise_numeric/#description","title":"Description","text":"

The NoiseNumeric transformer multiplies the original numeric (or decimal) value by randomly generated value that is not higher than the max_ratio parameter and not less that max_ratio parameter and adds it to or subtracts it from the original value. Additionally, you can specify the number of decimal digits by using the decimal parameter.

In case you have constraints on the numeric range, you can set the min and max parameters to specify the threshold values. The values for min and max must have the same format as the column parameter. Parameters min and max support dynamic mode. Engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines

Info

If the noised value exceeds the max threshold, the transformer will set the value to max. If the noised value is lower than the min threshold, the transformer will set the value to min.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

Warning

Greenmask cannot parse the numeric type sitteng. For instance NUMERIC(10, 2). You should set min and max treshholds manually as well as allowed decimal. This behaviour will be changed in the later versions. Grenmask will be able to determine the decimal and scale of the column and set the min and max treshholds automatically if were not set.

"},{"location":"built_in_transformers/standard_transformers/noise_numeric/#example-adding-noise-to-the-purchase-price","title":"Example: Adding noise to the purchase price","text":"

In this example, the original value of standardprice will be noised up to 50% and rounded up to 2 decimals.

NoiseNumeric transformer example
- schema: \"purchasing\"\n  name: \"productvendor\"\n  transformers:\n    - name: \"NoiseNumeric\"\n      params:\n        column: \"lastreceiptcost\"\n        max_ratio: 0.15\n        decimal: 2\n        max: 10000\n      dynamic_params:\n        min:\n          column: \"standardprice\"\n

Result

ColumnOriginalValueTransformedValue lastreceiptcost50.263557.33"},{"location":"built_in_transformers/standard_transformers/random_amount_with_currency/","title":"RandomAmountWithCurrency","text":"

The RandomAmountWithCurrency transformer is specifically designed to populate specified database columns with random financial amounts accompanied by currency codes. Ideal for applications requiring the simulation of financial transactions, this utility enhances the realism of financial datasets by introducing variability in amounts and currencies.

"},{"location":"built_in_transformers/standard_transformers/random_amount_with_currency/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_amount_with_currency/#description","title":"Description","text":"

This transformer automatically generates random financial amounts along with corresponding global currency codes (e. g., 250.00 USD, 300.00 EUR), injecting them into the designated database column. It provides a straightforward solution for populating financial records with varied and realistic data, suitable for testing payment systems, data anonymization, and simulation of economic models.

"},{"location":"built_in_transformers/standard_transformers/random_amount_with_currency/#example-populate-the-payments-table-with-random-amounts-and-currencies","title":"Example: Populate the payments table with random amounts and currencies","text":"

This example shows how to configure the RandomAmountWithCurrency transformer to populate the payment_details column in the payments table with random amounts and currencies. It is an effective approach to simulating a diverse range of payment transactions.

RandomAmountWithCurrency transformer example
- schema: \"public\"\n  name: \"payments\"\n  transformers:\n    - name: \"RandomAmountWithCurrency\"\n      params:\n        column: \"payment_details\"\n        keep_null: false\n

In this setup, the payment_details column will be updated with random financial amounts and currency codes for each entry, replacing any existing non-NULL values. The keep_null parameter, when set to true, ensures that existing NULL values in the column remain unchanged, preserving the integrity of records without specified payment details.

"},{"location":"built_in_transformers/standard_transformers/random_bool/","title":"RandomBool","text":"

Generate random boolean values.

"},{"location":"built_in_transformers/standard_transformers/random_bool/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes bool keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_bool/#description","title":"Description","text":"

The RandomBool transformer generates a random boolean value. The behaviour for NULL values can be configured using the keep_null parameter. The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_bool/#example-generate-a-random-boolean-for-a-column","title":"Example: Generate a random boolean for a column","text":"

In the following example, the RandomBool transformer generates a random boolean value for the salariedflag column.

RandomBool transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"RandomBool\"\n      params:\n        column: \"salariedflag\"\n

Result

ColumnOriginalValueTransformedValue salariedflagtf"},{"location":"built_in_transformers/standard_transformers/random_cc_number/","title":"RandomCCNumber","text":"

The RandomCCNumber transformer is specifically designed to populate specified database columns with random credit card numbers. This utility is crucial for applications that involve simulating financial data, testing payment systems, or anonymizing real credit card numbers in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_cc_number/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_cc_number/#description","title":"Description","text":"

By leveraging algorithms capable of generating plausible credit card numbers that adhere to standard credit card validation rules (such as the Luhn algorithm), the RandomCCNumber transformer injects random credit card numbers into the designated database column. This approach ensures the generation of credit card numbers that are realistic for testing and development purposes, without compromising real-world applicability and security.

"},{"location":"built_in_transformers/standard_transformers/random_cc_number/#example-populate-random-credit-card-numbers-for-the-payment_information-table","title":"Example: Populate random credit card numbers for the payment_information table","text":"

This example demonstrates configuring the RandomCCNumber transformer to populate the cc_number column in the payment_information table with random credit card numbers. It is an effective strategy for creating a realistic set of payment data for application testing or data anonymization.

RandomCCNumber transformer example
- schema: \"public\"\n  name: \"payment_information\"\n  transformers:\n    - name: \"RandomCCNumber\"\n      params:\n        column: \"cc_number\"\n        keep_null: false\n

With this setup, the cc_number column will be updated with random credit card numbers for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, it will ensure that existing NULL values in the column are preserved, maintaining the integrity of records where credit card information is not applicable or available.

"},{"location":"built_in_transformers/standard_transformers/random_cc_type/","title":"RandomCCType","text":"

The RandomCCType transformer is designed to populate specified database columns with random credit card types. This tool is essential for applications that require the simulation of financial transaction data, testing payment processing systems, or anonymizing credit card type information in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_cc_type/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_cc_type/#description","title":"Description","text":"

Utilizing a predefined list of credit card types (e.g., VISA, MasterCard, American Express, Discover), the RandomCCType transformer injects random credit card type names into the designated database column. This feature allows for the creation of realistic and varied financial transaction datasets by simulating a range of credit card types without using real card data.

"},{"location":"built_in_transformers/standard_transformers/random_cc_type/#example-populate-random-credit-card-types-for-the-transactions-table","title":"Example: Populate random credit card types for the transactions table","text":"

This example shows how to configure the RandomCCType transformer to populate the card_type column in the transactions table with random credit card types. It is a straightforward method for simulating diverse payment methods across transactions.

RandomCCType transformer example
- schema: \"public\"\n  name: \"transactions\"\n  transformers:\n    - name: \"RandomCCType\"\n      params:\n        column: \"card_type\"\n        keep_null: false\n

In this configuration, the card_type column will be updated with random credit card types for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, maintaining the integrity of records where card type information is not applicable.

"},{"location":"built_in_transformers/standard_transformers/random_century/","title":"RandomCentury","text":"

The RandomCentury transformer is crafted to populate specified database columns with random century values. It is ideal for applications that require historical data simulation, such as generating random years within specific centuries for historical databases, testing datasets with temporal dimensions, or anonymizing dates in historical research data.

"},{"location":"built_in_transformers/standard_transformers/random_century/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_century/#description","title":"Description","text":"

The RandomCentury transformer utilizes an algorithm or a library function (hypothetical in this context) to generate random century values. Each value represents a century (e.g., 19th, 20th, 21st), providing a broad temporal range that can be used to enhance datasets requiring a distribution across different historical periods without the need for precise date information.

"},{"location":"built_in_transformers/standard_transformers/random_century/#example-populate-random-centuries-for-the-historical_artifacts-table","title":"Example: Populate random centuries for the historical_artifacts table","text":"

This example shows how to configure the RandomCentury transformer to populate the century column in a historical_artifacts table with random century values, adding an element of variability and historical context to the dataset.

RandomCentury transformer example
- schema: \"public\"\n  name: \"historical_artifacts\"\n  transformers:\n    - name: \"RandomCentury\"\n      params:\n        column: \"century\"\n        keep_null: false\n

In this setup, the century column will be filled with random century values, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values in the column will remain untouched, preserving the original dataset's integrity where no temporal data is available.

"},{"location":"built_in_transformers/standard_transformers/random_choice/","title":"RandomChoice","text":"

Replace values randomly chosen from a provided list.

"},{"location":"built_in_transformers/standard_transformers/random_choice/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes any values A list of values in any format. The string with value \\N is considered NULL. Yes - validate Performs a decoding procedure via the PostgreSQL driver using the column type to ensure that values have correct type true No keep_null Indicates whether NULL values should be replaced with transformed values or not true No engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_choice/#description","title":"Description","text":"

The RandomChoice transformer replaces one randomly chosen value from the list provided in the values parameter. You can use the validate parameter to ensure that values are correct before applying the transformation. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_choice/#example-choosing-randomly-from-provided-dates","title":"Example: Choosing randomly from provided dates","text":"

In this example, the provided values undergo validation through PostgreSQL driver decoding, and one value is randomly chosen from the list.

RandomChoice transformer example
- schema: \"humanresources\"\n  name: \"jobcandidate\"\n  transformers:\n    - name: \"RandomChoice\"\n      params:\n        column: \"modifieddate\"\n        validate: true\n        engine: hash\n        values:\n          - \"2023-12-21 07:41:06.891\"\n          - \"2023-12-21 07:41:06.896\"\n

Result

ColumnOriginalValueTransformedValue modifieddate2007-06-23 00:00:002023-12-21 07:41:06.891"},{"location":"built_in_transformers/standard_transformers/random_currency/","title":"RandomCurrency","text":"

The RandomCurrency transformer is tailored to populate specified database columns with random currency codes. This tool is highly beneficial for applications involving the simulation of international financial data, testing currency conversion features, or anonymizing currency information in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_currency/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_currency/#description","title":"Description","text":"

Utilizing a comprehensive list of global currency codes (e.g., USD, EUR, JPY), the RandomCurrency transformer injects random currency codes into the designated database column. This feature allows for the creation of diverse and realistic financial transaction datasets by simulating a variety of currencies without relying on actual financial data.

"},{"location":"built_in_transformers/standard_transformers/random_currency/#example-populate-random-currency-codes-for-the-transactions-table","title":"Example: Populate random currency codes for the transactions table","text":"

This example outlines configuring the RandomCurrency transformer to populate the currency_code column in a transactions table with random currency codes. It is an effective way to simulate international transactions across multiple currencies.

RandomCurrency transformer example
- schema: \"public\"\n  name: \"transactions\"\n  transformers:\n    - name: \"RandomCurrency\"\n      params:\n        column: \"currency_code\"\n        keep_null: false\n

In this configuration, the currency_code column will be updated with random currency codes for each entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where currency data may not be applicable.

"},{"location":"built_in_transformers/standard_transformers/random_date/","title":"RandomDate","text":"

Generate a random date in a specified interval.

"},{"location":"built_in_transformers/standard_transformers/random_date/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column Name of the column to be affected Yes date, timestamp, timestamptz min The minimum threshold date for the random value. The format depends on the column type. Yes - max The maximum threshold date for the random value. The format depends on the column type. Yes - truncate Truncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default. No - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_date/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min date, timestamp, timestamptz max date, timestamp, timestamptz"},{"location":"built_in_transformers/standard_transformers/random_date/#description","title":"Description","text":"

The RandomDate transformer generates a random date within the provided interval, starting from min to max. It can also perform date truncation up to the specified part of the date. The format of dates in the min and max parameters must adhere to PostgreSQL types, including DATE, TIMESTAMP WITHOUT TIMEZONE, or TIMESTAMP WITH TIMEZONE.

Note

The value of min and max parameters depends on the column type. For example, for the date column, the value should be in the format YYYY-MM-DD, while for the timestamp column, the value should be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD HH:MM:SS.SSSSSS. The timestamptz column requires the value to be in the format YYYY-MM-DD HH:MM:SS.SSSSSS+HH:MM. Read more about date/time formats in the PostgreSQL documentation.

The behaviour for NULL values can be configured using the keep_null parameter. The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_date/#example-generate-modifieddate","title":"Example: Generate modifieddate","text":"

In the following example, a random timestamp without timezone is generated for the modifieddate column within the range from 2011-05-31 00:00:00 to 2013-05-31 00:00:00, and the part of the random value after day is truncated.

RandomDate transformer example
- schema: \"sales\"\n  name: \"salesorderdetail\"\n  transformers:\n    - name: \"RandomDate\"\n      params:\n        column: \"modifieddate\"\n        keep_null: false\n        min: \"2011-05-31 00:00:00\"\n        max: \"2013-05-31 00:00:00\"\n        truncate: \"day\"\n

Result

ColumnOriginalValueTransformedValue modifieddate2014-06-30 00:00:002012-07-27 00:00:00"},{"location":"built_in_transformers/standard_transformers/random_date/#example-generate-hiredate-based-on-birthdate-using-two-transformations","title":"Example: Generate hiredate based on birthdate using two transformations","text":"

In this example, the RandomDate transformer generates a random date for the birthdate column within the range now - 50 years to now - 18 years. The hire date is generated based on the birthdate, ensuring that the employee is at least 18 years old when hired.

- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"RandomDate\"\n      params:\n        column: \"birthdate\"\n        min: '{{ now | tsModify \"-50 years\" | .EncodeValue }}' # 1994\n        max: '{{ now | tsModify \"-18 years\" | .EncodeValue }}' # 2006\n\n    - name: \"RandomDate\"\n      params:\n        column: \"hiredate\"\n        truncate: \"month\"\n        max: \"{{ now | .EncodeValue }}\"\n      dynamic_params:\n        min:\n          column: \"birthdate\"\n          template: '{{ .GetValue | tsModify \"18 years\" | .EncodeValue }}' # min age 18 years\n

Result:

ColumnOriginalValueTransformedValue birthdate1969-01-291985-10-29 hiredate2009-01-142023-01-01"},{"location":"built_in_transformers/standard_transformers/random_day_of_month/","title":"RandomDayOfMonth","text":"

The RandomDayOfMonth transformer is designed to populate specified database columns with random day-of-the-month values. It is particularly useful for scenarios requiring the simulation of dates, such as generating random event dates, user sign-up dates, or any situation where the specific day of the month is needed without reference to the actual month or year.

"},{"location":"built_in_transformers/standard_transformers/random_day_of_month/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar, int2, int4, int8, numeric keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_day_of_month/#description","title":"Description","text":"

Utilizing the faker library, the RandomDayOfMonth transformer generates random numerical values representing days of the month, ranging from 1 to 31. This allows for the easy insertion of random but plausible day-of-the-month data into a database, enhancing realism or anonymizing actual dates.

"},{"location":"built_in_transformers/standard_transformers/random_day_of_month/#example-populate-random-days-of-the-month-for-the-events-table","title":"Example: Populate random days of the month for the events table","text":"

This example illustrates how to configure the RandomDayOfMonth transformer to fill the event_day column in the events table with random day-of-the-month values, facilitating the simulation of varied event scheduling.

RandomDayOfMonth transformer example
- schema: \"public\"\n  name: \"events\"\n  transformers:\n    - name: \"RandomDayOfMonth\"\n      params:\n        column: \"event_day\"\n        keep_null: false\n

With this setup, the event_day column will be updated with random day-of-the-month values, replacing any existing non-NULL values. Setting keep_null to true ensures that NULL values in the column are left unchanged, maintaining any existing gaps in the data.

"},{"location":"built_in_transformers/standard_transformers/random_day_of_week/","title":"RandomDayOfWeek","text":"

The RandomDayOfWeek transformer is specifically designed to fill specified database columns with random day-of-the-week names. It is particularly useful for applications that require simulated weekly schedules, random event planning, or any scenario where the day of the week is relevant but the specific date is not.

"},{"location":"built_in_transformers/standard_transformers/random_day_of_week/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_day_of_week/#description","title":"Description","text":"

Utilizing the faker library, the RandomDayOfWeek transformer generates names of days (e. g., Monday, Tuesday) at random. This transformer can be applied to any text or varchar column in a database, introducing variability and realism into data sets that need to represent days of the week in a non-specific manner.

"},{"location":"built_in_transformers/standard_transformers/random_day_of_week/#example-populate-random-days-of-the-week-for-the-work_schedule-table","title":"Example: Populate random days of the week for the work_schedule table","text":"

This example demonstrates configuring the RandomDayOfWeek transformer to populate the work_day column in the work_schedule table with random days of the week. This setup can help simulate a diverse range of work schedules without tying them to specific dates.

RandomDayOfWeek transformer example
- schema: \"public\"\n  name: \"work_schedule\"\n  transformers:\n    - name: \"RandomDayOfWeek\"\n      params:\n        column: \"work_day\"\n        keep_null: false\n

In this configuration, every entry in the work_day column will be updated with a random day of the week, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values within the column will remain unchanged.

"},{"location":"built_in_transformers/standard_transformers/random_domain_name/","title":"RandomDomainName","text":"

The RandomDomainName transformer is designed to populate specified database columns with random domain names. This tool is invaluable for simulating web data, testing applications that interact with domain names, or anonymizing real domain information in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_domain_name/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_domain_name/#description","title":"Description","text":"

By leveraging an algorithm or library capable of generating believable domain names, the RandomDomainName transformer introduces random domain names into the specified database column. Each generated domain name includes a second-level domain (SLD) and a top-level domain (TLD), such as \"example.com\" or \"website.org,\" providing a wide range of plausible web addresses for database enrichment.

"},{"location":"built_in_transformers/standard_transformers/random_domain_name/#example-populate-random-domain-names-for-the-websites-table","title":"Example: Populate random domain names for the websites table","text":"

This example demonstrates configuring the RandomDomainName transformer to populate the domain column in the websites table with random domain names. This approach facilitates the creation of a diverse and realistic set of web addresses for testing, simulation, or data anonymization purposes.

RandomDomainName transformer example
- schema: \"public\"\n  name: \"websites\"\n  transformers:\n    - name: \"RandomDomainName\"\n      params:\n        column: \"domain\"\n        keep_null: false\n

In this setup, the domain column will be updated with random domain names for each entry, replacing any existing non-NULL values. If keep_null is set to true, the transformer will preserve existing NULL values in the column, maintaining the integrity of data where domain information is not applicable.

"},{"location":"built_in_transformers/standard_transformers/random_e164_phone_number/","title":"RandomE164PhoneNumber","text":"

The RandomE164PhoneNumber transformer is developed to populate specified database columns with random E.164 phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets while focusing on E.164 numbers.

"},{"location":"built_in_transformers/standard_transformers/random_e164_phone_number/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_e164_phone_number/#description","title":"Description","text":"

The RandomE164PhoneNumber transformer utilizes algorithms capable of generating random E.164 phone numbers with the standard international format and injects them into the designated database column. This feature allows for the creation of diverse and realistic contact information in datasets for development, testing, or data anonymization purposes.

"},{"location":"built_in_transformers/standard_transformers/random_e164_phone_number/#example-populate-random-e164-phone-numbers-for-the-contact_information-table","title":"Example: Populate random E.164 phone numbers for the contact_information table","text":"

This example demonstrates configuring the RandomE164PhoneNumber transformer to populate the phone_number column in the contact_information table with random E.164 phone numbers. It is an effective method for simulating a variety of contact information entries with E.164 numbers.

RandomE164PhoneNumber transformer example
- schema: \"public\"\n  name: \"contact_information\"\n  transformers:\n    - name: \"RandomE164PhoneNumber\"\n      params:\n        column: \"phone_number\"\n        keep_null: false\n

In this configuration, the phone_number column will be updated with random E.164 phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where E.164 phone number information is not applicable or provided.

"},{"location":"built_in_transformers/standard_transformers/random_email/","title":"RandomEmail","text":"

Generate email addresses for a specified column.

"},{"location":"built_in_transformers/standard_transformers/random_email/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_original_domain Keep original of the original address false No - local_part_template The template for local part of email No - domain_part_template The template for domain part of email No - domains List of domains for new email [\"gmail.com\", \"yahoo.com\", \"outlook.com\", \"hotmail.com\", \"aol.com\", \"icloud.com\", \"mail.com\", \"zoho.com\", \"yandex.com\", \"protonmail.com\", \"gmx.com\", \"fastmail.com\"] No - validate Validate generated email if using template false No - max_random_length Max length of randomly generated part of the email 32 No - keep_null Indicates whether NULL values should be preserved false No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_email/#description","title":"Description","text":"

The RandomEmail transformer generates random email addresses for the specified database column. By default, the transformer generates random email addresses with a maximum length of 32 characters. The keep_original_domain parameter allows you to preserve the original domain part of the email address. The local_part_template and domain_part_template parameters enable you to specify templates for the local and domain parts of the email address, respectively. If the validate parameter is set to true, the transformer will validate the generated email addresses against the specified templates. The keep_null parameter allows you to preserve existing NULL values in the column.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_email/#templates-parameters","title":"Templates parameters","text":"

In each template you have access to the columns of the table by using the {{ .column_name }} syntax. Note that all values are strings. For example, you can use for assembling the email address by accessing to first_name and last_name columns {{ .first_name | lower }}.{{ .last_name | lower }}.

The transformer always generates random sequences for the email, and you can use it by accessing the {{ .random_string }} variable. For example, we can add random string in the end of local part {{ .first_name | lower }}.{{ .last_name | lower }}.{{ .random_string }}.

Read more about template function Template functions.

"},{"location":"built_in_transformers/standard_transformers/random_email/#random-email-generation-using-first-name-and-last-name","title":"Random email generation using first name and last name","text":"

In this example, the RandomEmail transformer generates random email addresses for the email column in the account table. The transformer generates email addresses using the first_name and last_name columns as the local part of the email address and adds a random string to the end of the local part with length 10 characters. The original domain part of the email address is preserved.

CREATE TABLE account\n(\n    id         SERIAL PRIMARY KEY,\n    gender     VARCHAR(1) NOT NULL,\n    email      TEXT       NOT NULL NOT NULL UNIQUE,\n    first_name TEXT       NOT NULL,\n    last_name  TEXT       NOT NULL,\n    birth_date DATE,\n    created_at TIMESTAMP  NOT NULL DEFAULT NOW()\n);\n\nINSERT INTO account (first_name, gender, last_name, birth_date, email)\nVALUES ('John', 'M', 'Smith', '1980-01-01', 'john.smith@gmail.com');\n
RandomEmail transformer example
- schema: \"public\"\n  name: \"account\"\n  transformers:\n    - name: \"RandomEmail\"\n      params:\n        column: \"email\"\n        engine: \"hash\"\n        keep_original_domain: true\n        local_part_template: \"{{ first_name | lower }}.{{ last_name | lower }}.{{ .random_string | trunc 10 }}\"\n

Result:

ColumnOriginalValueTransformedValue emailjohn.smith@gmail.comjohn.smith.a075d99e2d@gmail.com"},{"location":"built_in_transformers/standard_transformers/random_email/#simple-random-email-generation","title":"Simple random email generation","text":"

In this example, the RandomEmail transformer generates random email addresses for the email column in the account table. The transformer generates random email addresses with a maximum length of 10 characters.

RandomEmail transformer example
- schema: \"public\"\n  name: \"account\"\n  transformers:\n    - name: \"RandomEmail\"\n      params:\n        column: \"email\"\n        max_random_length: 10\n

Result:

ColumnOriginalValueTransformedValue emailjohn.smith@gmail.comjohn.smith.a075d99e2d@gmail.com"},{"location":"built_in_transformers/standard_transformers/random_float/","title":"RandomFloat","text":"

Generate a random float within the provided interval.

"},{"location":"built_in_transformers/standard_transformers/random_float/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes float4, float8 min The minimum threshold for the random value. The value range depends on the column type. Yes - max The maximum threshold for the random value. The value range depends on the column type. Yes - decimal The decimal of the random float value (number of digits after the decimal point) 4 No - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_float/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min float4, float8 max float4, float8"},{"location":"built_in_transformers/standard_transformers/random_float/#description","title":"Description","text":"

The RandomFloat transformer generates a random float value within the provided interval, starting from min to max, with the option to specify the number of decimal digits by using the decimal parameter. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_float/#example-generate-random-price","title":"Example: Generate random price","text":"

In this example, the RandomFloat transformer generates random prices in the range from 0.1 to 7000 while maintaining a decimal of up to 2 digits.

RandomFloat transformer example
- schema: \"sales\"\n  name: \"salesorderdetail\"\n  columns_type_override:  # (1)\n    \"unitprice\": \"float8\"\n  transformers:\n    - name: \"RandomFloat\"\n      params:\n        column: \"unitprice\"\n        min: 0.1\n        max: 7000\n        decimal: 2\n
  1. The type overrides applied for example because the playground database does not contain any tables with float columns.

Result:

ColumnOriginalValueTransformedValue unitprice2024.9944449.7"},{"location":"built_in_transformers/standard_transformers/random_int/","title":"RandomInt","text":"

Generate a random integer within the provided interval.

"},{"location":"built_in_transformers/standard_transformers/random_int/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes int2, int4, int8 min The minimum threshold for the random value Yes - max The maximum threshold for the random value Yes - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_int/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min int2, int4, int8 max int2, int4, int8"},{"location":"built_in_transformers/standard_transformers/random_int/#description","title":"Description","text":"

The RandomInt transformer generates a random integer within the specified min and max thresholds. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_int/#example-generate-random-item-quantity","title":"Example: Generate random item quantity","text":"

In the following example, the RandomInt transformer generates a random value in the range from 1 to 30 and assigns it to the orderqty column.

generate random orderqty in the range from 1 to 30
- schema: \"sales\"\n  name: \"salesorderdetail\"\n  transformers:\n    - name: \"RandomInt\"\n      params:\n        column: \"orderqty\"\n        min: 1\n        max: 30\n

Result

ColumnOriginalValueTransformedValue orderqty129"},{"location":"built_in_transformers/standard_transformers/random_int/#example-generate-random-sick-leave-hours-based-on-vacation-hours","title":"Example: Generate random sick leave hours based on vacation hours","text":"

In the following example, the RandomInt transformer generates a random value in the range from 1 to the value of the vacationhours column and assigns it to the sickleavehours column. This configuration allows for the simulation of sick leave hours based on the number of vacation hours.

RandomInt transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"RandomInt\"\n      params:\n        column: \"sickleavehours\"\n        max: 100\n      dynamic_params:\n        min:\n          column: \"vacationhours\"\n

Result

ColumnOriginalValueTransformedValue sickleavehours6999"},{"location":"built_in_transformers/standard_transformers/random_ip/","title":"RandomIP","text":"

The RandomIp transformer is designed to populate specified database columns with random IP v4 or V6 addresses. This utility is essential for applications requiring the simulation of network data, testing systems that utilize IP addresses, or anonymizing real IP addresses in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_ip/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar, inet subnet Subnet for generating random ip in V4 or V6 format Yes - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_ip/#dynamic-parameters","title":"Dynamic parameters","text":"Name Supported types subnet cidr, text, varchar"},{"location":"built_in_transformers/standard_transformers/random_ip/#description","title":"Description","text":"

Utilizing a robust algorithm or library for generating IP addresses, the RandomIp transformer injects random IPv4 or IPv6 addresses into the designated database column, depending on the provided subnet. The transformer automatically detects whether to generate an IPv4 or IPv6 address based on the subnet version specified.

"},{"location":"built_in_transformers/standard_transformers/random_ip/#example-generate-a-random-ipv4-address-for-a-1921681024-subnet","title":"Example: Generate a Random IPv4 Address for a 192.168.1.0/24 Subnet","text":"

This example demonstrates how to configure the RandomIp transformer to inject a random IPv4 address into the ip_address column for entries in the 192.168.1.0/24 subnet:

Create table ip_networks and insert data
CREATE TABLE ip_networks\n(\n    id         SERIAL PRIMARY KEY,\n    ip_address INET,\n    network    CIDR\n);\n\nINSERT INTO ip_networks (ip_address, network)\nVALUES ('192.168.1.10', '192.168.1.0/24'),\n       ('10.0.0.5', '10.0.0.0/16'),\n       ('172.16.254.3', '172.16.0.0/12'),\n       ('192.168.100.14', '192.168.100.0/24'),\n       ('2001:0db8:85a3:0000:0000:8a2e:0370:7334', '2001:0db8:85a3::/64'); -- An IPv6 address and network\n
RandomPerson transformer example
- schema: public\n  name: ip_networks\n  transformers:\n    - name: \"RandomIp\"\n      params:\n        subnet: \"192.168.1.0/24\"\n        column: \"ip_address\"\n        engine: \"random\"\n

Result:

ColumnOriginalValueTransformedValue ip_address192.168.1.10192.168.1.28"},{"location":"built_in_transformers/standard_transformers/random_ip/#example-generate-a-random-ip-based-on-the-dynamic-subnet-parameter","title":"Example: Generate a Random IP Based on the Dynamic Subnet Parameter","text":"

This configuration illustrates how to use the RandomIp transformer dynamically, where it reads the subnet information from the network column of the database and generates a corresponding random IP address:

RandomPerson transformer example with dynamic mode
- schema: public\n  name: ip_networks\n  transformers:\n    - name: \"RandomIp\"\n      params:\n        column: \"ip_address\"\n        engine: \"random\"\n      dynamic_params:\n        subnet:\n          column: \"network\"\n

Result:

ColumnOriginalValueTransformedValue ip_address192.168.1.10192.168.1.111"},{"location":"built_in_transformers/standard_transformers/random_latitude/","title":"RandomLatitude","text":"

The RandomLatitude transformer generates random latitude values for specified database columns. It is designed to support geographical data enhancements, particularly useful for applications requiring randomized but plausible geographical coordinates.

"},{"location":"built_in_transformers/standard_transformers/random_latitude/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes float4, float8, numeric keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_latitude/#description","title":"Description","text":"

The RandomLatitude transformer utilizes the faker library to produce random latitude values within the range of -90 to +90 degrees. This transformer can be applied to columns designated to store geographical latitude information, enhancing data sets with randomized latitude coordinates.

"},{"location":"built_in_transformers/standard_transformers/random_latitude/#example-populate-random-latitude-for-the-locations-table","title":"Example: Populate random latitude for the locations table","text":"

This example demonstrates configuring the RandomLatitude transformer to populate the latitude column in the locations table with random latitude values.

RandomLatitude transformer example
- schema: \"public\"\n  name: \"locations\"\n  transformers:\n    - name: \"RandomLatitude\"\n      params:\n        column: \"latitude\"\n        keep_null: false\n

With this configuration, the latitude column will be filled with random latitude values, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values will be preserved.

"},{"location":"built_in_transformers/standard_transformers/random_longitude/","title":"RandomLongitude","text":"

The RandomLongitude transformer is designed to generate random longitude values for specified database columns, enhancing datasets with realistic geographic coordinates suitable for a wide range of applications, from testing location-based services to anonymizing real geographic data.

"},{"location":"built_in_transformers/standard_transformers/random_longitude/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes float4, float8, numeric keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_longitude/#description","title":"Description","text":"

The RandomLongitude transformer leverages the faker library to produce random longitude values within the globally accepted range of -180 to +180 degrees. This flexibility allows the transformer to be applied to any column intended for storing longitude data, providing a simple yet powerful tool for introducing randomized longitude coordinates into a database.

"},{"location":"built_in_transformers/standard_transformers/random_longitude/#example-populate-random-longitude-for-the-locations-table","title":"Example: Populate random longitude for the locations table","text":"

This example shows how to use the RandomLongitude transformer to fill the longitude column in the locations table with random longitude values.

RandomLongitude transformer example
- schema: \"public\"\n  name: \"locations\"\n  transformers:\n    - name: \"RandomLongitude\"\n      params:\n        column: \"longitude\"\n        keep_null: false\n

This setup ensures that all entries in the longitude column receive a random longitude value, replacing any existing non-NULL values. If keep_null is set to true, then existing NULL values in the column will remain unchanged.

"},{"location":"built_in_transformers/standard_transformers/random_mac/","title":"RandomMac","text":"

The RandomMac transformer is designed to populate specified database columns with random MAC addresses.

"},{"location":"built_in_transformers/standard_transformers/random_mac/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar, macaddr keep_original_vendor Should the Individual/Group (I/G) and Universal/Local (U/L) bits be preserved from the original MAC address. false No - cast_type Param which allow to set Individual/Group (I/G) bit in MAC Address. Allowed values [any, individual, group]. If this value is individual, the address is meant for a single device (unicast). If it is group, the address is for a group of devices, which can include multicast and broadcast addresses. any No management_type Param which allow to set Universal/Local (U/L) bit in MAC Address. Allowed values [any, universal, local]. If this bit is universal, the address is universally administered (globally unique). If it is local, the address is locally administered (such as when set manually or programmatically on a network device). any No engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_mac/#description","title":"Description","text":"

The RandomMac transformer generates a random MAC address and injects it into the specified database column. The transformer can be configured to preserve the Individual/Group (I/G) and Universal/Local (U/L) bits from the original MAC address. You can also keep the original vendor bits in the generated MAC address by setting the keep_original_vendor parameter to true.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_mac/#example-generate-a-random-mac-address","title":"Example: Generate a Random MAC Address","text":"

This example demonstrates how to configure the RandomMac transformer to inject a random MAC address into the mac_address column:

Create table mac_addresses and insert data
CREATE TABLE mac_addresses\n(\n    id          SERIAL PRIMARY KEY,\n    device_name VARCHAR(50),\n    mac_address MACADDR,\n    description TEXT\n);\n\nINSERT INTO mac_addresses (device_name, mac_address, description)\nVALUES ('Device A', '00:1A:2B:3C:4D:5E', 'Description for Device A'),\n       ('Device B', '01:2B:3C:4D:5E:6F', 'Description for Device B'),\n       ('Device C', '02:3C:4D:5E:6F:70', 'Description for Device C'),\n       ('Device D', '03:4D:5E:6F:70:71', 'Description for Device D'),\n       ('Device E', '04:5E:6F:70:71:72', 'Description for Device E');\n
RandomPerson transformer example
- schema: public\n  name: mac_addresses\n  transformers:\n    - name: \"RandomMac\"\n      params:\n        column: \"mac_address\"\n        engine: \"random\"\n        cast_type: \"any\"\n        management_type: \"any\"\n

Result:

ColumnOriginalValueTransformedValue mac_address00:1a:2b:3c:4d:5eac:7f:a8:11:4e:0d"},{"location":"built_in_transformers/standard_transformers/random_month_name/","title":"RandomMonthName","text":"

The RandomMonthName transformer is crafted to populate specified database columns with random month names. This transformer is especially useful for scenarios requiring the simulation of time-related data, such as user birth months or event months, without relying on specific date values.

"},{"location":"built_in_transformers/standard_transformers/random_month_name/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_month_name/#description","title":"Description","text":"

The RandomMonthName transformer utilizes the faker library to generate the names of months at random. It can be applied to any textual column in a database to introduce variety and realism into data sets that require representations of months without the need for specific calendar dates.

"},{"location":"built_in_transformers/standard_transformers/random_month_name/#example-populate-random-month-names-for-the-user_profiles-table","title":"Example: Populate random month names for the user_profiles table","text":"

This example demonstrates how to configure the RandomMonthName transformer to fill the birth_month column in the user_profiles table with random month names, adding a layer of diversity to user data without using actual birthdates.

RandomMonthName transformer example
- schema: \"public\"\n  name: \"user_profiles\"\n  transformers:\n    - name: \"RandomMonthName\"\n      params:\n        column: \"birth_month\"\n        keep_null: false\n

With this setup, the birth_month column will be updated with random month names, replacing any existing non-NULL values. If the keep_null parameter is set to true, then existing NULL values within the column will remain untouched.

"},{"location":"built_in_transformers/standard_transformers/random_numeric/","title":"RandomNumeric","text":"

Generate a random numeric within the provided interval.

"},{"location":"built_in_transformers/standard_transformers/random_numeric/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes numeric, decimal min The minimum threshold for the random value. The value range depends on the column type. Yes - max The maximum threshold for the random value. The value range depends on the column type. Yes - decimal The decimal of the random numeric value (number of digits after the decimal point) 4 No - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_numeric/#dynamic-parameters","title":"Dynamic parameters","text":"Parameter Supported types min int2, int4, int8, float4, float8, numeric, decimal max int2, int4, int8, float4, float8, numeric, decimal"},{"location":"built_in_transformers/standard_transformers/random_numeric/#description","title":"Description","text":"

The RandomNumeric transformer generates a random numeric value within the provided interval, starting from min to max, with the option to specify the number of decimal digits by using the decimal parameter. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_numeric/#example-generate-random-price","title":"Example: Generate random price","text":"

In this example, the RandomNumeric transformer generates random prices in the range from 0.1 to 7000 while maintaining a decimal of up to 2 digits.

RandomNumeric transformer example
- schema: \"sales\"\n  name: \"salesorderdetail\"\n  transformers:\n    - name: \"RandomNumeric\"\n      params:\n        column: \"unitprice\"\n        min: 0.1\n        max: 7000\n        decimal: 2\n
  1. The type overrides applied for example because the playground database does not contain any tables with numeric columns.

Result:

ColumnOriginalValueTransformedValue unitprice2024.9944449.7"},{"location":"built_in_transformers/standard_transformers/random_paragraph/","title":"RandomParagraph","text":"

The RandomParagraph transformer is crafted to populate specified database columns with random paragraphs. This utility is indispensable for applications that require the generation of extensive textual content, such as simulating articles, enhancing textual datasets for NLP systems, or anonymizing textual content in databases.

"},{"location":"built_in_transformers/standard_transformers/random_paragraph/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_paragraph/#description","title":"Description","text":"

Employing sophisticated text generation algorithms or libraries, the RandomParagraph transformer generates random paragraphs, injecting them into the designated database column. This transformer is designed to create varied and plausible paragraphs that simulate real-world textual content, providing a valuable tool for database enrichment, testing, and anonymization.

"},{"location":"built_in_transformers/standard_transformers/random_paragraph/#example-populate-random-paragraphs-for-the-articles-table","title":"Example: Populate random paragraphs for the articles table","text":"

This example illustrates configuring the RandomParagraph transformer to populate the body column in an articles table with random paragraphs. It is an effective way to simulate diverse article content for development, testing, or demonstration purposes.

RandomParagraph transformer example
- schema: \"public\"\n  name: \"articles\"\n  transformers:\n    - name: \"RandomParagraph\"\n      params:\n        column: \"body\"\n        keep_null: false\n

With this setup, the body column will receive random paragraphs for each entry, replacing any existing non-NULL values. Setting the keep_null parameter to true allows for the preservation of existing NULL values within the column, maintaining the integrity of records where article content is not applicable or provided.

"},{"location":"built_in_transformers/standard_transformers/random_password/","title":"RandomPassword","text":"

The RandomPassword transformer is designed to populate specified database columns with random passwords. This utility is vital for applications that require the simulation of secure user data, testing systems with authentication mechanisms, or anonymizing real passwords in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_password/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_password/#description","title":"Description","text":"

Employing sophisticated password generation algorithms or libraries, the RandomPassword transformer injects random passwords into the designated database column. This feature is particularly useful for creating realistic and secure user password datasets for development, testing, or demonstration purposes.

"},{"location":"built_in_transformers/standard_transformers/random_password/#example-populate-random-passwords-for-the-user_accounts-table","title":"Example: Populate random passwords for the user_accounts table","text":"

This example demonstrates how to configure the RandomPassword transformer to populate the password column in the user_accounts table with random passwords.

RandomPassword transformer example
- schema: \"public\"\n  name: \"user_accounts\"\n  transformers:\n    - name: \"RandomPassword\"\n      params:\n        column: \"password\"\n        keep_null: false\n

In this configuration, every entry in the password column will be updated with a random password. Setting the keep_null parameter to true will preserve existing NULL values in the column, accommodating scenarios where password data may not be applicable.

"},{"location":"built_in_transformers/standard_transformers/random_person/","title":"RandomPerson","text":"

The RandomPerson transformer is designed to populate specified database columns with personal attributes such as first name, last name, title and gender.

"},{"location":"built_in_transformers/standard_transformers/random_person/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types columns The name of the column to be affected Yes text, varchar gender set specific gender (possible values: Male, Female, Any) Any No - gender_mapping Specify gender name to possible values when using dynamic mode in \"gender\" parameter Any No - fallback_gender Specify fallback gender if not mapped when using dynamic mode in \"gender\" parameter Any No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_person/#description","title":"Description","text":"

The RandomPerson transformer utilizes a comprehensive list of first names to inject random first names into the designated database column. This feature allows for the creation of diverse and realistic user profiles by simulating a variety of first names without using real user data.

"},{"location":"built_in_transformers/standard_transformers/random_person/#column-object-attributes","title":"column object attributes","text":"
  • name \u2014 the name of the column where the personal attributes will be stored. This value is required.
  • template - the template for the column value. You can use the next attributes: .FirstName, .LastName or .Title. For example, if you want to generate a full name, you can use the next template: \"{{ .FirstName }} {{ .LastName }}\"

  • hashing - the bool value. Indicates whether the column value must be passed through the hashing function. The default value is false. If all column has hashing set to false (by default), then all columns will be hashed.

  • keep_null - the bool value. Indicates whether NULL values should be preserved. The default value is true
"},{"location":"built_in_transformers/standard_transformers/random_person/#gender_mapping-object-attributes","title":"gender_mapping object attributes","text":"

gender_mapping - a dictionary that maps the gender value when gender parameters works in dynamic mode. The default value is:

{\n  \"Male\": [\n    \"male\",\n    \"M\",\n    \"m\",\n    \"man\",\n    \"Man\"\n  ],\n  \"Female\": [\n    \"female\",\n    \"F\",\n    \"f\",\n    \"w\",\n    \"woman\",\n    \"Woman\"\n  ]\n}\n
"},{"location":"built_in_transformers/standard_transformers/random_person/#fallback_gender","title":"fallback_gender","text":"

Gender that will be used if gender_mapping was not found. This parameter is optional and required only for gender parameter in dynamic mode. The default value is Any.

"},{"location":"built_in_transformers/standard_transformers/random_person/#example-populate-random-first-name-and-last-name-for-table-user_profiles-in-static-mode","title":"Example: Populate random first name and last name for table user_profiles in static mode","text":"

This example demonstrates how to use the RandomPerson transformer to populate the name and surname columns in the user_profiles table with random first names, last name, respectively.

Create table user_profiles and insert data
CREATE TABLE personal_data\n(\n    id      SERIAL PRIMARY KEY,\n    name    VARCHAR(100),\n    surname VARCHAR(100),\n    sex     CHAR(1) CHECK (sex IN ('M', 'F'))\n);\n\n-- Insert sample data into the table\nINSERT INTO personal_data (name, surname, sex)\nVALUES ('John', 'Doe', 'M'),\n       ('Jane', 'Smith', 'F'),\n       ('Alice', 'Johnson', 'F'),\n       ('Bob', 'Lee', 'M');\n
RandomPerson transformer example
- schema: public\n  name: personal_data\n  transformers:\n    - name: \"RandomPerson\"\n      params:\n        gender: \"Any\"\n        columns:\n          - name: \"name\"\n            template: \"{{ .FirstName }}\"\n          - name: \"surname\"\n            template: \"{{ .LastName }}\"\n        engine: \"hash\"\n

Result

ColumnOriginalValueTransformedValue nameJohnZane surnameDoeMcCullough"},{"location":"built_in_transformers/standard_transformers/random_person/#example-populate-random-first-name-and-last-name-for-table-user_profiles-in-dynamic-mode","title":"Example: Populate random first name and last name for table user_profiles in dynamic mode","text":"

This example demonstrates how to use the RandomPerson transformer to populate the name, surname using dynamic gender

RandomPerson transformer example with dynamic mode
- schema: public\n  name: personal_data\n  transformers:\n    - name: \"RandomPerson\"\n      params:\n        columns:\n          - name: \"name\"\n            template: \"{{ .FirstName }}\"\n          - name: \"surname\"\n            template: \"{{ .LastName }}\"\n        engine: \"random\"\n      dynamic_params:\n        gender:\n          column: sex\n

Result:

ColumnOriginalValueTransformedValue nameJohnMartin surnameDoeMueller"},{"location":"built_in_transformers/standard_transformers/random_phone_number/","title":"RandomPhoneNumber","text":"

The RandomPhoneNumber transformer is developed to populate specified database columns with random phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_phone_number/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_phone_number/#description","title":"Description","text":"

The RandomPhoneNumber transformer utilizes algorithms capable of generating random phone numbers with various formats and injects them into the designated database column. This feature allows for the creation of diverse and realistic contact information in datasets for development, testing, or data anonymization purposes.

"},{"location":"built_in_transformers/standard_transformers/random_phone_number/#example-populate-random-phone-numbers-for-the-contact_information-table","title":"Example: Populate random phone numbers for the contact_information table","text":"

This example demonstrates configuring the RandomPhoneNumber transformer to populate the phone_number column in the contact_information table with random phone numbers. It is an effective method for simulating a variety of contact information entries.

RandomPhoneNumber transformer example
- schema: \"public\"\n  name: \"contact_information\"\n  transformers:\n    - name: \"RandomPhoneNumber\"\n      params:\n        column: \"phone_number\"\n        keep_null: false\n

In this configuration, the phone_number column will be updated with random phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where phone number information is not applicable or provided.

"},{"location":"built_in_transformers/standard_transformers/random_sentence/","title":"RandomSentence","text":"

The RandomSentence transformer is designed to populate specified database columns with random sentences. Ideal for simulating natural language text for user comments, testing NLP systems, or anonymizing textual data in databases.

"},{"location":"built_in_transformers/standard_transformers/random_sentence/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_sentence/#description","title":"Description","text":"

The RandomSentence transformer employs complex text generation algorithms or libraries to generate random sentences, injecting them into a designated database column without the need for specifying sentence length. This flexibility ensures the creation of varied and plausible text for a wide range of applications.

"},{"location":"built_in_transformers/standard_transformers/random_sentence/#example-populate-random-sentences-for-the-comments-table","title":"Example: Populate random sentences for the comments table","text":"

This example shows how to configure the RandomSentence transformer to populate the comment column in the comments table with random sentences. It is a straightforward method for simulating diverse user-generated content.

RandomSentence transformer example
- schema: \"public\"\n  name: \"comments\"\n  transformers:\n    - name: \"RandomSentence\"\n      params:\n        column: \"comment\"\n        keep_null: false\n

In this configuration, the comment column will be updated with random sentences for each entry, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values in the column will be preserved, maintaining the integrity of records where comments are not applicable.

"},{"location":"built_in_transformers/standard_transformers/random_string/","title":"RandomString","text":"

Generate a random string using the provided characters within the specified length range.

"},{"location":"built_in_transformers/standard_transformers/random_string/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar min_length The minimum length of the generated string Yes - max_length The maximum length of the generated string Yes - symbols The range of characters that can be used in the random string abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ No - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_string/#description","title":"Description","text":"

The RandomString transformer generates a random string with a length between min_length and max_length using the characters specified in the symbols string as the possible set of characters. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_string/#example-generate-a-random-string-for-accountnumber","title":"Example: Generate a random string for accountnumber","text":"

In the following example, a random string is generated for the accountnumber column with a length range from 9 to 12. The character set used for generation includes 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.

RandomString transformer example
- schema: \"purchasing\"\n  name: \"vendor\"\n  transformers:\n    - name: \"RandomString\"\n      params:\n        column: \"accountnumber\"\n        min_length: 9\n        max_length: 12\n        symbols: \"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n

Result

ColumnOriginalValueTransformedValue accountnumberAUSTRALI00014VUI6P2OZ"},{"location":"built_in_transformers/standard_transformers/random_timezone/","title":"RandomTimezone","text":"

The RandomTimezone transformer is designed to populate specified database columns with random timezone strings. This transformer is particularly useful for applications that require the simulation of global user data, testing of timezone-related functionalities, or anonymizing real user timezone information in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_timezone/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_timezone/#description","title":"Description","text":"

Utilizing a comprehensive library or algorithm for generating timezone data, the RandomTimezone transformer provides random timezone strings (e. g., \"America/New_York\", \"Europe/London\") for database columns. This feature enables the creation of diverse and realistic datasets by simulating timezone information for user profiles, event timings, or any other data requiring timezone context.

"},{"location":"built_in_transformers/standard_transformers/random_timezone/#example-populate-random-timezone-strings-for-the-user_accounts-table","title":"Example: Populate random timezone strings for the user_accounts table","text":"

This example demonstrates how to configure the RandomTimezone transformer to populate the timezone column in the user_accounts table with random timezone strings, enhancing the dataset with varied global user representations.

RandomTimezone transformer example
- schema: \"public\"\n  name: \"user_accounts\"\n  transformers:\n    - name: \"RandomTimezone\"\n      params:\n        column: \"timezone\"\n        keep_null: false\n

With this configuration, every entry in the timezone column will be updated with a random timezone string, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values within the column will remain unchanged, preserving the integrity of rows without specified timezone data.

"},{"location":"built_in_transformers/standard_transformers/random_toll_free_phone_number/","title":"RandomTollFreePhoneNumber","text":"

The RandomTollFreePhoneNumber transformer is designed to populate specified database columns with random toll-free phone numbers. This tool is essential for applications requiring the simulation of contact information, testing phone number validation systems, or anonymizing phone number data in datasets while focusing on toll-free numbers.

"},{"location":"built_in_transformers/standard_transformers/random_toll_free_phone_number/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_toll_free_phone_number/#description","title":"Description","text":"

The RandomTollFreePhoneNumber transformer utilizes algorithms capable of generating random toll-free phone numbers with various formats and injects them into the designated database column. This feature allows for the creation of diverse and realistic toll-free contact information in datasets for development, testing, or data anonymization purposes.

"},{"location":"built_in_transformers/standard_transformers/random_toll_free_phone_number/#example-populate-random-toll-free-phone-numbers-for-the-contact_information-table","title":"Example: Populate random toll-free phone numbers for the contact_information table","text":"

This example demonstrates configuring the RandomTollFreePhoneNumber transformer to populate the phone_number column in the contact_information table with random toll-free phone numbers. It is an effective method for simulating a variety of contact information entries with toll-free numbers.

RandomTollFreePhoneNumber transformer example
- schema: \"public\"\n  name: \"contact_information\"\n  transformers:\n    - name: \"RandomTollFreePhoneNumber\"\n      params:\n        column: \"phone_number\"\n        keep_null: false\n

In this configuration, the phone_number column will be updated with random toll-free phone numbers for each contact information entry, replacing any existing non-NULL values. If the keep_null parameter is set to true, existing NULL values in the column will be preserved, ensuring the integrity of records where toll-free phone number information is not applicable or provided.

"},{"location":"built_in_transformers/standard_transformers/random_unix_timestamp/","title":"RandomUnixTimestamp","text":"

The RandomUnixTimestamp transformer generates random Unix time values (timestamps) for specified database columns. It is particularly useful for populating columns with timestamp data, simulating time-related data, or anonymizing actual timestamps in a dataset.

"},{"location":"built_in_transformers/standard_transformers/random_unix_timestamp/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes int2, int4, int8 min The minimum threshold date for the random value in unix timestamp format (integer) with sec unit by default Yes - max The maximum threshold date for the random value in unix timestamp format (integer) with sec unit by default Yes - unit Generated unix timestamp value unit. Possible values [second, millisecond, microsecond, nanosecond] second Yes - min_unit Min unix timestamp threshold date unit. Possible values [second, millisecond, microsecond, nanosecond] second Yes - max_unit Min unix timestamp threshold date unit. Possible values [second, millisecond, microsecond, nanosecond] second Yes - keep_null Indicates whether NULL values should be preserved false No - truncate Truncate the date to the specified part (nanosecond, microsecond, millisecond, second, minute, hour, day, month, year). The truncate operation is not applied by default. No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_unix_timestamp/#description","title":"Description","text":"

The RandomUnixTimestamp transformer generates random Unix timestamps within the provided interval, starting from min to max. The min and max parameters are expected to be in Unix timestamp format. The min_unit and max_unit parameters specify the unit of the Unix timestamp threshold date. The truncate parameter allows you to truncate the date to the specified part of the date. The keep_null parameter allows you to specify whether NULL values should be preserved or replaced with transformed values.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_unix_timestamp/#example-generate-random-unix-timestamps-with-dynamic-parameters","title":"Example: Generate random Unix timestamps with dynamic parameters","text":"

In this example, the RandomUnixTimestamp transformer generates random Unix timestamps using dynamic parameters. The min parameter is set to the created_at column, which is converted to Unix seconds using the TimestampToUnixSec. The max parameter is set to a fixed value. The paid_at column is populated with random Unix timestamps in the range from created_at to 1715934239 (Unix timestamp for 2024-05-17 12:03:59). The unit parameter is set to millisecond because the paid_at column stores timestamps in milliseconds.

CREATE TABLE transactions\n(\n    id         SERIAL PRIMARY KEY,\n    kind       VARCHAR(255),\n    total      DECIMAL(10, 2),\n    created_at TIMESTAMP,\n    paid_at    BIGINT -- stores milliseconds since the epoch\n);\n\n-- Inserting data with milliseconds timestamp\nINSERT INTO transactions (kind, total, created_at, paid_at)\nVALUES ('Sale', 199.99, '2023-05-17 12:00:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-17 12:05:00') * 1000)),\n       ('Refund', 50.00, '2023-05-18 15:00:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-18 15:10:00') * 1000)),\n       ('Sale', 129.99, '2023-05-19 10:30:00', (EXTRACT(EPOCH FROM TIMESTAMP '2023-05-19 10:35:00') * 1000));\n
RandomUnixTimestamp transformer example
- schema: \"public\"\n  name: \"transactions\"\n  transformers:\n    - name: \"RandomUnixTimestamp\"\n      params:\n        column: \"paid_at\"\n        max: 1715934239\n        unit: \"millisecond\"\n        min_unit: \"second\"\n        max_unit: \"second\"\n      dynamic_params:\n        min:\n          column: \"created_at\"\n          cast_to: \"TimestampToUnixSec\"\n

Result:

ColumnOriginalValueTransformedValue paid_at16843251000001708919030732"},{"location":"built_in_transformers/standard_transformers/random_unix_timestamp/#example-generate-simple-random-unix-timestamps","title":"Example: Generate simple random Unix timestamps","text":"

In this example, the RandomUnixTimestamp transformer generates random Unix timestamps for the paid_at column in the range from 1615934239 (Unix timestamp for 2021-03-16 12:03:59) to 1715934239 (Unix timestamp for 2024-05-17 12:03:59). The unit parameter is set to millisecond because the paid_at column stores timestamps in milliseconds.

- schema: \"public\"\n  name: \"transactions\"\n  transformers:\n    - name: \"RandomUnixTimestamp\"\n      params:\n        column: \"paid_at\"\n        min: 1615934239\n        max: 1715934239\n        unit: \"millisecond\"\n

Result:

ColumnOriginalValueTransformedValue paid_at16843251000001655768292548"},{"location":"built_in_transformers/standard_transformers/random_url/","title":"RandomURL","text":"

The RandomURL transformer is designed to populate specified database columns with random URL (Uniform Resource Locator) addresses. This tool is highly beneficial for simulating web content, testing applications that require URL input, or anonymizing real web addresses in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_url/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_url/#description","title":"Description","text":"

Utilizing advanced algorithms or libraries for generating URL strings, the RandomURL transformer injects random, plausible URLs into the designated database column. Each generated URL is structured to include the protocol (e. g., \"http://\", \"https://\"), domain name, and path, offering a realistic range of web addresses for various applications.

"},{"location":"built_in_transformers/standard_transformers/random_url/#example-populate-random-urls-for-the-webpages-table","title":"Example: Populate random URLs for the webpages table","text":"

This example illustrates how to configure the RandomURL transformer to populate the page_url column in a webpages table with random URLs, providing a broad spectrum of web addresses for testing or data simulation purposes.

RandomURL transformer example
- schema: \"public\"\n  name: \"webpages\"\n  transformers:\n    - name: \"RandomURL\"\n      params:\n        column: \"page_url\"\n        keep_null: false\n

With this configuration, the page_url column will be filled with random URLs for each entry, replacing any existing non-NULL values. Setting the keep_null parameter to true allows for the preservation of existing NULL values within the column, accommodating scenarios where URL data may be intentionally omitted.

"},{"location":"built_in_transformers/standard_transformers/random_username/","title":"RandomUsername","text":"

The RandomUsername transformer is crafted to populate specified database columns with random usernames. This utility is crucial for applications that require the simulation of user data, testing systems with user login functionality, or anonymizing real usernames in datasets.

"},{"location":"built_in_transformers/standard_transformers/random_username/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_username/#description","title":"Description","text":"

By employing sophisticated algorithms or libraries capable of generating believable usernames, the RandomUsername transformer introduces random usernames into the specified database column. Each generated username is designed to be unique and plausible, incorporating a mix of letters, numbers, and possibly special characters, depending on the generation logic used.

"},{"location":"built_in_transformers/standard_transformers/random_username/#example-populate-random-usernames-for-the-user_accounts-table","title":"Example: Populate random usernames for the user_accounts table","text":"

This example demonstrates configuring the RandomUsername transformer to populate the username column in a user_accounts table with random usernames. This setup is ideal for creating a diverse and realistic user base for development, testing, or demonstration purposes.

RandomUsername transformer example
- schema: \"public\"\n  name: \"user_accounts\"\n  transformers:\n    - name: \"RandomUsername\"\n      params:\n        column: \"username\"\n        keep_null: false\n

In this configuration, every entry in the username column will be updated with a random username, replacing any existing non-NULL values. If the keep_null parameter is set to true, then the transformer will preserve existing NULL values within the column, maintaining data integrity where usernames are not applicable or available.

"},{"location":"built_in_transformers/standard_transformers/random_uuid/","title":"RandomUuid","text":"

Generate random unique user ID using version 4.

"},{"location":"built_in_transformers/standard_transformers/random_uuid/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar, uuid keep_null Indicates whether NULL values should be replaced with transformed values or not true No - engine The engine used for generating the values [random, hash]. Use hash for deterministic generation random No -"},{"location":"built_in_transformers/standard_transformers/random_uuid/#description","title":"Description","text":"

The RandomUuid transformer generates a random UUID. The behaviour for NULL values can be configured using the keep_null parameter.

The engine parameter allows you to choose between random and hash engines for generating values. Read more about the engines in the Transformation engines section.

"},{"location":"built_in_transformers/standard_transformers/random_uuid/#example-updating-the-rowguid-column","title":"Example: Updating the rowguid column","text":"

The following example replaces original UUID values of the rowguid column to randomly generated ones.

RandomUuid transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n  - name: \"RandomUuid\"\n    params:\n      column: \"rowguid\"\n      keep_null: false\n

Result

ColumnOriginalValueTransformedValue rowguidf01251e5-96a3-448d-981e-0f99d789110d8ed8c4b2-7e7a-1e8d-f0f0-768e0e8ed0d0"},{"location":"built_in_transformers/standard_transformers/random_word/","title":"RandomWord","text":"

The RandomWord transformer populates specified database columns with random words. Ideal for simulating textual content, enhancing linguistic datasets, or anonymizing text in databases.

"},{"location":"built_in_transformers/standard_transformers/random_word/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_word/#description","title":"Description","text":"

The RandomWord transformer employs a mechanism to inject random words into a designated database column, supporting the generation of linguistically plausible and contextually diverse text. This transformer is particularly beneficial for creating rich text datasets for development, testing, or educational purposes without specifying the language, focusing on versatility and ease of use.

"},{"location":"built_in_transformers/standard_transformers/random_word/#example-populate-random-words-for-the-content-table","title":"Example: Populate random words for the content table","text":"

This example demonstrates configuring the RandomWord transformer to populate the tag column in the content table with random words. It is a straightforward approach to adding varied textual data for tagging or content categorization.

RandomWord transformer example
- schema: \"public\"\n  name: \"content\"\n  transformers:\n    - name: \"RandomWord\"\n      params:\n        column: \"tag\"\n        keep_null: false\n

In this setup, the tag column will be updated with random words for each entry, replacing any existing non-NULL values. If keep_null is set to true, existing NULL values in the column will remain unchanged, maintaining data integrity for records where textual data is not applicable.

"},{"location":"built_in_transformers/standard_transformers/random_year_string/","title":"RandomYearString","text":"

The RandomYearString transformer is designed to populate specified database columns with random year strings. It is ideal for scenarios that require the representation of years without specific dates, such as manufacturing years of products, birth years of users, or any other context where only the year is relevant.

"},{"location":"built_in_transformers/standard_transformers/random_year_string/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar, int2, int4, int8, numeric keep_null Indicates whether NULL values should be preserved false No -"},{"location":"built_in_transformers/standard_transformers/random_year_string/#description","title":"Description","text":"

The RandomYearString transformer leverages the faker library to generate strings representing random years. This allows for the easy generation of year data in a string format, adding versatility and realism to datasets that need to simulate or anonymize year-related information.

"},{"location":"built_in_transformers/standard_transformers/random_year_string/#example-populate-random-year-strings-for-the-products-table","title":"Example: Populate random year strings for the products table","text":"

This example shows how to use the RandomYearString transformer to fill the manufacturing_year column in the products table with random year strings, simulating the diversity of manufacturing dates.

RandomYearString transformer example
- schema: \"public\"\n  name: \"products\"\n  transformers:\n    - name: \"RandomYearString\"\n      params:\n        column: \"manufacturing_year\"\n        keep_null: false\n

In this configuration, the manufacturing_year column will be populated with random year strings, replacing any existing non-NULL values. If keep_null is set to true, then existing NULL values in the column will be preserved.

"},{"location":"built_in_transformers/standard_transformers/real_address/","title":"RealAddress","text":"

Generates real addresses for specified database columns using the faker library. It supports customization of the generated address format through Go templates.

"},{"location":"built_in_transformers/standard_transformers/real_address/#parameters","title":"Parameters","text":"Name Properties Description Default Required Supported DB types columns Specifies the affected column names along with additional properties for each column Yes Various \u221f name The name of the column to be affected Yes string \u221f template A Go template string for formatting real address attributes Yes string \u221f keep_null Indicates whether NULL values should be preserved No bool"},{"location":"built_in_transformers/standard_transformers/real_address/#template-value-descriptions","title":"Template value descriptions","text":"

The template parameter allows for the injection of real address attributes into a customizable template. The following values can be included in your template:

  • {{.Address}} \u2014 street address or equivalent
  • {{.City}} \u2014 city name
  • {{.State}} \u2014 state, province, or equivalent region name
  • {{.PostalCode}} \u2014 postal or ZIP code
  • {{.Latitude}} \u2014 geographic latitude
  • {{.Longitude}} \u2014 geographic longitude

These placeholders can be combined and formatted as desired within the template string to generate custom address formats.

"},{"location":"built_in_transformers/standard_transformers/real_address/#description","title":"Description","text":"

The RealAddress transformer uses the faker library to generate realistic addresses, which can then be formatted according to a specified template and applied to selected columns in a database. It allows for the generated addresses to replace existing values or to preserve NULL values, based on the transformer's configuration.

"},{"location":"built_in_transformers/standard_transformers/real_address/#example-generate-real-addresses-for-the-employee-table","title":"Example: Generate Real addresses for the employee table","text":"

This example shows how to configure the RealAddress transformer to generate real addresses for the address column in the employee table, using a custom format.

RealAddress transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n    - name: \"RealAddress\"\n      params:\n        columns:\n          - name: \"address\"\n            template: \"{{.Address}}, {{.City}}, {{.State}} {{.PostalCode}}\"\n            keep_null: false\n

This configuration will generate real addresses with the format \"Street address, city, state postal code\" and apply them to the address column, replacing any existing non-NULL values.

"},{"location":"built_in_transformers/standard_transformers/regexp_replace/","title":"RegexpReplace","text":"

Replace a string using a regular expression.

"},{"location":"built_in_transformers/standard_transformers/regexp_replace/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes text, varchar regexp The regular expression pattern to search for in the column's value Yes - replace The replacement value. This value may be replaced with a captured group from the regexp parameter. Yes -"},{"location":"built_in_transformers/standard_transformers/regexp_replace/#description","title":"Description","text":"

The RegexpReplace transformer replaces a string according to the applied regular expression. The valid regular expressions syntax is the same as the general syntax used by Perl, Python, and other languages. To be precise, it is the syntax accepted by RE2 and described in the Golang documentation, except for \\C.

"},{"location":"built_in_transformers/standard_transformers/regexp_replace/#example-removing-leading-prefix-from-loginid-column-value","title":"Example: Removing leading prefix from loginid column value","text":"

In the following example, the original values from loginid matching the adventure-works\\{{ id_name }} format are replaced with {{ id_name }}.

RegexpReplace transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n  - name: \"RegexpReplace\"\n    params:\n      column: \"loginid\"\n      regexp: \"adventure-works\\\\\\\\(.*)\"\n      replace: \"$1\"\n
Expected result
| column name | original value       | transformed |\n|-------------|----------------------|-------------|\n| loginid     | adventure-works\\ken0 | ken0        |\n

Note

YAML has control symbols, and using them without escaping may result in an error. In the example above, the prefix of id is separated by the \\ symbol. Since this symbol is a control symbol, we must escape it using \\\\. However, the '\\' symbol is also a control symbol for regular expressions, which is why we need to double-escape it as \\\\\\\\.

"},{"location":"built_in_transformers/standard_transformers/replace/","title":"Replace","text":"

Replace an original value by the provided one.

"},{"location":"built_in_transformers/standard_transformers/replace/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes any replace The value to replace Yes - keep_null Indicates whether NULL values should be replaced with transformed values or not true No - validate Performs a decoding procedure via the PostgreSQL driver using the column type to ensure that values have correct type true No -"},{"location":"built_in_transformers/standard_transformers/replace/#description","title":"Description","text":"

The Replace transformer replace an original value from the specified column with the provided one. It can optionally run a validation check with the validate parameter to ensure that the values are of a correct type before starting transformation. The behaviour for NULL values can be configured using the keep_null parameter.

"},{"location":"built_in_transformers/standard_transformers/replace/#example-updating-the-jobtitle-column","title":"Example: Updating the jobtitle column","text":"

In the following example, the provided value: \"programmer\" is first validated through driver decoding. If the current value of the jobtitle column is not NULL, it will be replaced with programmer. If the current value is NULL, it will remain NULL.

Replace transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformers:\n  - name: \"Replace\"\n    params:\n      column: \"jobtitle\"\n      value: \"programmer\"\n      keep_null: false\n      validate: true\n
Expected result
| column name | original value          | transformed |\n|-------------|-------------------------|-------------|\n| jobtitle    | Chief Executive Officer | programmer  |\n
"},{"location":"built_in_transformers/standard_transformers/set_null/","title":"SetNull","text":"

Set NULL value to a column.

"},{"location":"built_in_transformers/standard_transformers/set_null/#parameters","title":"Parameters","text":"Name Description Default Required Supported DB types column The name of the column to be affected Yes any"},{"location":"built_in_transformers/standard_transformers/set_null/#description","title":"Description","text":"

The SetNull transformer assigns NULL value to a column. This transformer generates warning if the affected column has NOT NULL constraint.

NULL constraint violation warning
{\n  \"hash\": \"5a229ee964a4ba674a41a4d63dab5a8c\",\n  \"meta\": {\n    \"ColumnName\": \"jobtitle\",\n    \"ConstraintType\": \"NotNull\",\n    \"ParameterName\": \"column\",\n    \"SchemaName\": \"humanresources\",\n    \"TableName\": \"employee\",\n    \"TransformerName\": \"SetNull\"\n  },\n  \"msg\": \"transformer may produce NULL values but column has NOT NULL constraint\",\n  \"severity\": \"warning\"\n}\n
"},{"location":"built_in_transformers/standard_transformers/set_null/#example-set-null-value-to-updated_at-column","title":"Example: Set NULL value to updated_at column","text":"SetNull transformer example
- schema: \"humanresources\"\n  name: \"employee\"\n  transformation:\n    - name: \"SetNull\"\n      params:\n        column: \"jobtitle\"\n
Expected result
| column name | original value          | transformed |\n|-------------|-------------------------|-------------|\n| jobtitle    | Chief Executive Officer | NULL        |\n
"},{"location":"commands/","title":"Commands","text":""},{"location":"commands/#introduction","title":"Introduction","text":"Greenmask available commands
greenmask \\\n--log-format=[json|text] \\\n--log-level=[debug|info|error] \\\n--config=config.yml \\\n[dump|list-dumps|delete|list-transformers|show-transformer|restore|show-dump]`\n

You can use the following commands within Greenmask:

  • list-transformers \u2014 displays a list of available transformers along with their documentation
  • show-transformer \u2014 displays information about the specified transformer
  • validate - performs a validation procedure by testing config, comparing transformed data, identifying potential issues, and checking for schema changes.
  • dump \u2014 initiates the data dumping process
  • restore \u2014 restores data to the target database either by specifying a dumpId or using the latest available dump
  • list-dumps \u2014 lists all available dumps stored in the system
  • show-dump \u2014 provides metadata information about a particular dump, offering insights into its structure and attributes
  • delete \u2014 deletes a specific dump from the storage

For any of the commands mentioned above, you can include the following common flags:

  • --log-format \u2014 specifies the desired format for log output, which can be either json or text. This parameter is optional, with the default format set to text.
  • --log-level \u2014 sets the desired level for log output, which can be one of debug, info, or error. This parameter is optional, with the default log level being info.
  • --config \u2014 requires the specification of a configuration file in YAML format. This configuration file is mandatory for Greenmask to operate correctly.
  • --help \u2014 displays comprehensive help information for Greenmask, providing guidance on its usage and available commands.
"},{"location":"commands/delete/","title":"delete command","text":"

Delete dump from the storage with a specific ID

Supported flags
Usage:\n  greenmask delete [flags] [dumpId]\n\nFlags:\n      --before-date string   delete dumps older than the specified date in RFC3339Nano format: 2021-01-01T00:00.0:00Z\n      --dry-run              do not delete anything, just show what would be deleted\n      --prune-failed         prune failed dumps\n      --prune-unsafe         prune dumps with \"unknown-or-failed\" statuses. Works only with --prune-failed\n      --retain-for string    retain dumps for the specified duration in format: 1w2d3h4m5s6ms7us8ns\n      --retain-recent int    retain the most recent N completed dumps (default -1)\n
delete dump by id
greenmask --config config.yml delete 1723643249862\n
delete dumps older than the specified date
greenmask --config config.yml delete --before-date 2021-01-01T00:00.0:00Z --dry-run \n
prune failed dumps
greenmask --config config.yml delete --prune-failed --dry-run \n
prune dumps with 'unknown-or-failed' statuses
greenmask --config config.yml delete --prune-failed --prune-unsafe --dry-run\n
retain dumps for the specified duration
greenmask --config config.yml delete --retain-for 1w5d --dry-run\n
retain the most recent N completed dumps
greenmask --config config.yml delete --retain-recent 5 --dry-run\n
"},{"location":"commands/dump/","title":"dump","text":""},{"location":"commands/dump/#dump-command","title":"dump command","text":"

The dump command operates in the following way:

  1. Dumps the data from the source database.
  2. Validates the data for potential issues.
  3. Applies the defined transformations.
  4. Stores the transformed data in the specified storage location.

Note that the dump command shares the same parameters and environment variables as pg_dump, allowing you to configure the restoration process as needed.

Mostly it supports the same flags as the pg_dump utility, with some extra flags for Greenmask-specific features.

Supported flags
  -b, --blobs                           include large objects in dump\n  -c, --clean                           clean (drop) database objects before recreating\n  -Z, --compress int                    compression level for compressed formats (default -1)\n  -C, --create                          include commands to create database in dump\n  -a, --data-only                       dump only the data, not the schema\n  -d, --dbname string                   database to dump (default \"postgres\")\n      --disable-dollar-quoting          disable dollar quoting, use SQL standard quoting\n      --disable-triggers                disable triggers during data-only restore\n      --enable-row-security             enable row security (dump only content user has access to)\n  -E, --encoding string                 dump the data in encoding ENCODING\n  -N, --exclude-schema strings          dump the specified schema(s) only\n  -T, --exclude-table strings           do NOT dump the specified table(s)\n      --exclude-table-data strings      do NOT dump data for the specified table(s)\n  -e, --extension strings               dump the specified extension(s) only\n      --extra-float-digits string       override default setting for extra_float_digits\n  -f, --file string                     output file or directory name\n  -h, --host string                     database server host or socket directory (default \"/var/run/postgres\")\n      --if-exists                       use IF EXISTS when dropping objects\n      --include-foreign-data strings    use IF EXISTS when dropping objects\n  -j, --jobs int                        use this many parallel jobs to dump (default 1)\n      --load-via-partition-root         load partitions via the root table\n      --lock-wait-timeout int           fail after waiting TIMEOUT for a table lock (default -1)\n  -B, --no-blobs                        exclude large objects in dump\n      --no-comments                     do not dump comments\n  -O, --no-owner string                 skip restoration of object ownership in plain-text format\n  -X, --no-privileges                   do not dump privileges (grant/revoke)\n      --no-publications                 do not dump publications\n      --no-security-labels              do not dump security label assignments\n      --no-subscriptions                do not dump subscriptions\n      --no-sync                         do not wait for changes to be written safely to dis\n      --no-synchronized-snapshots       do not use synchronized snapshots in parallel jobs\n      --no-tablespaces                  do not dump tablespace assignments\n      --no-toast-compression            do not dump TOAST compression methods\n      --no-unlogged-table-data          do not dump unlogged table data\n      --pgzip                           use pgzip compression instead of gzip\n  -p, --port int                        database server port number (default 5432)\n      --quote-all-identifiers           quote all identifiers, even if not key words\n  -n, --schema strings                  dump the specified schema(s) only\n  -s, --schema-only string              dump only the schema, no data\n      --section string                  dump named section (pre-data, data, or post-data)\n      --serializable-deferrable         wait until the dump can run without anomalies\n      --snapshot string                 use given snapshot for the dump\n      --strict-names                    require table and/or schema include patterns to match at least one entity each\n  -S, --superuser string                superuser user name to use in plain-text format\n  -t, --table strings                   dump the specified table(s) only\n      --test string                     connect as specified database user (default \"postgres\")\n      --use-set-session-authorization   use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership\n  -U, --username string                 connect as specified database user (default \"postgres\")\n  -v, --verbose string                  verbose mode\n
"},{"location":"commands/dump/#pgzip-compression","title":"Pgzip compression","text":"

By default, Greenmask uses gzip compression to restore data. In mist cases it is quite slow and does not utilize all available resources and is a bootleneck for IO operations. To speed up the restoration process, you can use the --pgzip flag to use pgzip compression instead of gzip. This method splits the data into blocks, which are compressed in parallel, making it ideal for handling large volumes of data. The output remains a standard gzip file.

"},{"location":"commands/list-dumps/","title":"list-dumps","text":""},{"location":"commands/list-dumps/#list-dumps-command","title":"list-dumps command","text":"

The list-dumps command provides a list of all dumps stored in the storage. The list includes the following attributes:

  • ID \u2014 the unique identifier of the dump, used for operations like restore, delete, and show-dump
  • DATE \u2014 the date when the snapshot was created
  • DATABASE \u2014 the name of the database associated with the dump
  • SIZE \u2014 the original size of the dump
  • COMPRESSED SIZE \u2014 the size of the dump after compression
  • DURATION \u2014 the duration of the dump procedure
  • TRANSFORMED \u2014 indicates whether the dump has been transformed
  • STATUS \u2014 the status of the dump, which can be one of the following:
    • done \u2014 the dump was completed successfully
    • in progress \u2014 the dump is currently being created
    • failed \u2014 the dump creation process failed
    • unknown or failed \u2014 the deprecated status of the dump that is used for failed dumps or dumps in progress for version v0.1.14 and earlier

Example of list-dumps output:

Info

Greenmask uses a heartbeat mechanism to determine the status of a dump. A dump is considered failed if it lacks a \"done\" heartbeat or if the last heartbeat timestamp exceeds 30 minutes. Heartbeats are recorded every 15 minutes by the dump command while it is in progress. If greenmask fails unexpectedly, the heartbeat stops being updated, and after 30 minutes (twice the interval), the dump is classified as failed. The in progress status indicates that a dump is still ongoing.

"},{"location":"commands/list-transformers/","title":"list-transformers","text":""},{"location":"commands/list-transformers/#list-transformers-command","title":"list-transformers command","text":"

The list-transformers command provides a list of all the allowed transformers, including both standard and advanced transformers. This list can be helpful for searching for an appropriate transformer for your data transformation needs.

To show a list of available transformers, use the following command:

greenmask --config=config.yml list-transformers\n

Supported flags:

  • --format \u2014 allows to select the output format. There are two options available: text or json. The default setting is text.

Example of list-transformers output:

When using the list-transformers command, you receive a list of available transformers with essential information about each of them. Below are the key parameters for each transformer:

  • NAME \u2014 the name of the transformer
  • DESCRIPTION \u2014 a brief description of what the transformer does
  • COLUMN PARAMETER NAME \u2014 name of a column or columns affected by transformation
  • SUPPORTED TYPES \u2014 list the supported value types

The JSON call greenmask --config=config.yml list-transformers --format=json has the same attributes:

JSON format output
[\n  {\n    \"name\": \"Cmd\",\n    \"description\": \"Transform data via external program using stdin and stdout interaction\",\n    \"parameters\": [\n      {\n        \"name\": \"columns\",\n        \"supported_types\": [\n          \"any\"\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"Dict\",\n    \"description\": \"Replace values matched by dictionary keys\",\n    \"parameters\": [\n      {\n        \"name\": \"column\",\n        \"supported_types\": [\n          \"any\"\n        ]\n      }\n    ]\n  }\n]\n
"},{"location":"commands/restore/","title":"restore","text":""},{"location":"commands/restore/#restore-command","title":"restore command","text":"

The restore command is used to restore a database from a previously created dump. You can specify the dump to restore by providing the dump ID or use the latest keyword to restore the latest completed dump.

greenmask --config=config.yml restore DUMP_ID\n

Alternatively, to restore the latest completed dump, use the following command:

greenmask --config=config.yml restore latest\n

Note that the restore command shares the same parameters and environment variables as pg_restore, allowing you to configure the restoration process as needed.

Mostly it supports the same flags as the pg_restore utility, with some extra flags for Greenmask-specific features.

Supported flags
      --batch-size int                  the number of rows to insert in a single batch during the COPY command (0 - all rows will be inserted in a single batch)\n  -c, --clean                           clean (drop) database objects before recreating\n  -C, --create                          create the target database\n  -a, --data-only                       restore only the data, no schema\n  -d, --dbname string                   connect to database name (default \"postgres\")\n      --disable-triggers                disable triggers during data-only restore\n      --enable-row-security             enable row security\n  -N, --exclude-schema strings          do not restore objects in this schema\n  -e, --exit-on-error                   exit on error, default is to continue\n  -f, --file string                     output file name (- for stdout)\n  -P, --function strings                restore named function\n  -h, --host string                     database server host or socket directory (default \"/var/run/postgres\")\n      --if-exists                       use IF EXISTS when dropping objects\n  -i, --index strings                   restore named index\n      --inserts                         restore data as INSERT commands, rather than COPY\n  -j, --jobs int                        use this many parallel jobs to restore (default 1)\n      --list-format string              use table of contents in format of text, json or yaml (default \"text\")\n      --no-comments                     do not restore comments\n      --no-data-for-failed-tables       do not restore data of tables that could not be created\n  -O, --no-owner string                 skip restoration of object ownership\n  -X, --no-privileges                   skip restoration of access privileges (grant/revoke)\n      --no-publications                 do not restore publications\n      --no-security-labels              do not restore security labels\n      --no-subscriptions                ddo not restore subscriptions\n      --no-table-access-method          do not restore table access methods\n      --no-tablespaces                  do not restore tablespace assignments\n      --on-conflict-do-nothing          add ON CONFLICT DO NOTHING to INSERT commands\n      --overriding-system-value         use OVERRIDING SYSTEM VALUE clause for INSERTs\n      --pgzip                           use pgzip decompression instead of gzip\n  -p, --port int                        database server port number (default 5432)\n      --restore-in-order                restore tables in topological order, ensuring that dependent tables are not restored until the tables they depend on have been restored\n  -n, --schema strings                  restore only objects in this schema\n  -s, --schema-only                     restore only the schema, no data\n      --section string                  restore named section (pre-data, data, or post-data)\n  -1, --single-transaction              restore as a single transaction\n      --strict-names                    restore named section (pre-data, data, or post-data) match at least one entity each\n  -S, --superuser string                superuser user name to use for disabling triggers\n  -t, --table strings                   restore named relation (table, view, etc.)\n  -T, --trigger strings                 restore named trigger\n  -L, --use-list string                 use table of contents from this file for selecting/ordering output\n      --use-set-session-authorization   use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership\n  -U, --username string                 connect as specified database user (default \"postgres\")\n  -v, --verbose string                  verbose mode\n
"},{"location":"commands/restore/#extra-features","title":"Extra features","text":""},{"location":"commands/restore/#inserts-and-error-handling","title":"Inserts and error handling","text":"

Warning

Insert commands are a lot slower than COPY commands. Use this feature only when necessary.

By default, Greenmask restores data using the COPY command. If you prefer to restore data using INSERT commands, you can use the --inserts flag. This flag allows you to manage errors that occur during the execution of INSERT commands. By configuring an error and constraint exclusion list in the config, you can skip certain errors and continue inserting subsequent rows from the dump.

This can be useful when adding new records to an existing dump, but you don't want the process to stop if some records already exist in the database or violate certain constraints.

By adding the --on-conflict-do-nothing flag, it generates INSERT statements with the ON CONFLICT DO NOTHING clause, similar to the original pg_dump option. However, this approach only works for unique or exclusion constraints. If a foreign key is missing in the referenced table or any other constraint is violated, the insertion will still fail. To handle these issues, you can define anexclusion list in the config.

example with inserts and error handling
```shell title=\"example with inserts and on conflict do nothing\"\ngreenmask --config=config.yml restore DUMP_ID --inserts --on-conflict-do-nothing\n

By adding the --overriding-system-value flag, it generates INSERT statements with the OVERRIDING SYSTEM VALUE clause, which allows you to insert data into identity columns.

example of GENERATED ALWAYS AS IDENTITY column
CREATE TABLE people (\n    id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,\n    generated text GENERATED ALWAYS AS (id || first_name) STORED,\n    first_name text\n);\n
example with inserts
greenmask --config=config.yml restore DUMP_ID --inserts --overriding-system-value\n
"},{"location":"commands/restore/#restoration-in-topological-order","title":"Restoration in topological order","text":"

By default, Greenmask restores tables in the order they are listed in the dump file. To restore tables in topological order, use the --restore-in-order flag. This flag ensures that dependent tables are not restored until the tables they depend on have been restored.

This is useful when you have the schema already created with foreign keys and other constraints, and you want to insert data into the tables in the correct order or catch-up the target database with the new data.

Warning

Greenmask cannot guarantee restoration in topological order when the schema contains cycles. The only way to restore tables with cyclic dependencies is to temporarily remove the foreign key constraint (to break the cycle), restore the data, and then re-add the foreign key constraint once the data restoration is complete.

If your database has cyclic dependencies you will be notified about it but the restoration will continue.

2024-08-16T21:39:50+03:00 WRN cycle between tables is detected: cannot guarantee the order of restoration within cycle cycle=[\"public.employees\",\"public.departments\",\"public.projects\",\"public.employees\"]\n
"},{"location":"commands/restore/#pgzip-decompression","title":"Pgzip decompression","text":"

By default, Greenmask uses gzip decompression to restore data. In mist cases it is quite slow and does not utilize all available resources and is a bootleneck for IO operations. To speed up the restoration process, you can use the --pgzip flag to use pgzip decompression instead of gzip. This method splits the data into blocks, which are decompressed in parallel, making it ideal for handling large volumes of data.

example with pgzip decompression
greenmask --config=config.yml restore latest --pgzip\n
"},{"location":"commands/restore/#restore-data-batching","title":"Restore data batching","text":"

The COPY command returns the error only on transaction commit. This means that if you have a large dump and an error occurs, you will have to wait until the end of the transaction to see the error message. To avoid this, you can use the --batch-size flag to specify the number of rows to insert in a single batch during the COPY command. If an error occurs during the batch insertion, the error message will be displayed immediately. The data will be committed only if all batches are inserted successfully.

This is useful when you want to be notified of errors as immediately as possible without waiting for the entire table to be restored.

Warning

The batch size should be chosen carefully. If the batch size is too small, the restoration process will be slow. If the batch size is too large, you may not be able to identify the error row.

In the example below, the batch size is set to 1000 rows. This means that 1000 rows will be inserted in a single batch, so you will be notified of any errors immediately after each batch is inserted.

example with batch size
greenmask --config=config.yml restore latest --batch-size 1000\n
"},{"location":"commands/show-dump/","title":"show-dump","text":""},{"location":"commands/show-dump/#show-dump-command","title":"show-dump command","text":"

This command provides details about all objects and data that can be restored, similar to the pg_restore -l command in PostgreSQL. It helps you inspect the contents of the dump before performing the actual restoration.

Parameters:

  • --format \u2014 format of printing. Can be text or json.

To display metadata information about a dump, use the following command:

greenmask --config=config.yml show-dump dumpID\n
Text output example
;\n; Archive created at 2023-10-30 12:52:38 UTC\n; dbname: demo\n; TOC Entries: 17\n; Compression: -1\n; Dump Version: 15.4\n; Format: DIRECTORY\n; Integer: 4 bytes\n; Offset: 8 bytes\n; Dumped from database version: 15.4\n; Dumped by pg_dump version: 15.4\n;\n;\n; Selected TOC Entries:\n;\n3444; 0 0 ENCODING - ENCODING\n3445; 0 0 STDSTRINGS - STDSTRINGS\n3446; 0 0 SEARCHPATH - SEARCHPATH\n3447; 1262 24970 DATABASE - demo postgres\n3448; 0 0 DATABASE PROPERTIES - demo postgres\n222; 1259 24999 TABLE bookings flights postgres\n223; 1259 25005 SEQUENCE bookings flights_flight_id_seq postgres\n3460; 0 0 SEQUENCE OWNED BY bookings flights_flight_id_seq postgres\n3281; 2604 25030 DEFAULT bookings flights flight_id postgres\n3462; 0 24999 TABLE DATA bookings flights postgres\n3289; 2606 25044 CONSTRAINT bookings flights flights_flight_no_scheduled_departure_key postgres\n3291; 2606 25046 CONSTRAINT bookings flights flights_pkey postgres\n3287; 1259 42848 INDEX bookings flights_aircraft_code_status_idx postgres\n3292; 1259 42847 INDEX bookings flights_status_aircraft_code_idx postgres\n3293; 2606 25058 FK CONSTRAINT bookings flights flights_aircraft_code_fkey postgres\n3294; 2606 25063 FK CONSTRAINT bookings flights flights_arrival_airport_fkey postgres\n3295; 2606 25068 FK CONSTRAINT bookings flights flights_departure_airport_fkey postgres\n
JSON output example

{\n  \"startedAt\": \"2023-10-29T20:50:19.948017+02:00\", // (1)\n  \"completedAt\": \"2023-10-29T20:50:22.19333+02:00\", // (2)\n  \"originalSize\": 4053842, // (3)\n  \"compressedSize\": 686557, // (4)\n  \"transformers\": [ // (5)\n    {\n      \"Schema\": \"bookings\", // (6)\n      \"Name\": \"flights\", // (7)\n      \"Query\": \"\", // (8)\n      \"Transformers\": [ // (9)\n        {\n          \"Name\": \"RandomDate\", // (10)\n          \"Params\": { // (11)\n            \"column\": \"c2NoZWR1bGVkX2RlcGFydHVyZQ==\",\n            \"max\": \"MjAyMy0wMS0wMiAwMDowMDowMC4wKzAz\",\n            \"min\": \"MjAyMy0wMS0wMSAwMDowMDowMC4wKzAz\"\n          }\n        }\n      ],\n      \"ColumnsTypeOverride\": null // (12)\n    }\n  ],\n  \"header\": { // (13)\n    \"creationDate\": \"2023-10-29T20:50:20+02:00\",\n    \"dbName\": \"demo\",\n    \"tocEntriesCount\": 15,\n    \"dumpVersion\": \"16.0 (Homebrew)\",\n    \"format\": \"TAR\",\n    \"integer\": 4,\n    \"offset\": 8,\n    \"dumpedFrom\": \"16.0 (Debian 16.0-1.pgdg120+1)\",\n    \"dumpedBy\": \"16.0 (Homebrew)\",\n    \"tocFileSize\": 8090,\n    \"compression\": 0\n  },\n  \"entries\": [ // (14)\n    {\n      \"dumpId\": 3416,\n      \"databaseOid\": 0,\n      \"objectOid\": 0,\n      \"objectType\": \"ENCODING\",\n      \"schema\": \"\",\n      \"name\": \"ENCODING\",\n      \"owner\": \"\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 3417,\n      \"databaseOid\": 0,\n      \"objectOid\": 0,\n      \"objectType\": \"STDSTRINGS\",\n      \"schema\": \"\",\n      \"name\": \"STDSTRINGS\",\n      \"owner\": \"\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 3418,\n      \"databaseOid\": 0,\n      \"objectOid\": 0,\n      \"objectType\": \"SEARCHPATH\",\n      \"schema\": \"\",\n      \"name\": \"SEARCHPATH\",\n      \"owner\": \"\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 3419,\n      \"databaseOid\": 16384,\n      \"objectOid\": 1262,\n      \"objectType\": \"DATABASE\",\n      \"schema\": \"\",\n      \"name\": \"demo\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 3420,\n      \"databaseOid\": 0,\n      \"objectOid\": 0,\n      \"objectType\": \"DATABASE PROPERTIES\",\n      \"schema\": \"\",\n      \"name\": \"demo\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 222,\n      \"databaseOid\": 16414,\n      \"objectOid\": 1259,\n      \"objectType\": \"TABLE\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": null\n    },\n    {\n      \"dumpId\": 223,\n      \"databaseOid\": 16420,\n      \"objectOid\": 1259,\n      \"objectType\": \"SEQUENCE\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights_flight_id_seq\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3432,\n      \"databaseOid\": 0,\n      \"objectOid\": 0,\n      \"objectType\": \"SEQUENCE OWNED BY\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights_flight_id_seq\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        223\n      ]\n    },\n    {\n      \"dumpId\": 3254,\n      \"databaseOid\": 16445,\n      \"objectOid\": 2604,\n      \"objectType\": \"DEFAULT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flight_id\",\n      \"owner\": \"postgres\",\n      \"section\": \"PreData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        223,\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3434,\n      \"databaseOid\": 16414,\n      \"objectOid\": 0,\n      \"objectType\": \"TABLE DATA\",\n      \"schema\": \"\\\"bookings\\\"\",\n      \"name\": \"\\\"flights\\\"\",\n      \"owner\": \"\\\"postgres\\\"\",\n      \"section\": \"Data\",\n      \"originalSize\": 4045752,\n      \"compressedSize\": 678467,\n      \"fileName\": \"3434.dat.gz\",\n      \"dependencies\": []\n    },\n    {\n      \"dumpId\": 3261,\n      \"databaseOid\": 16461,\n      \"objectOid\": 2606,\n      \"objectType\": \"CONSTRAINT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flights_flight_no_scheduled_departure_key\",\n      \"owner\": \"postgres\",\n      \"section\": \"PostData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222,\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3263,\n      \"databaseOid\": 16463,\n      \"objectOid\": 2606,\n      \"objectType\": \"CONSTRAINT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flights_pkey\",\n      \"owner\": \"postgres\",\n      \"section\": \"PostData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3264,\n      \"databaseOid\": 16477,\n      \"objectOid\": 2606,\n      \"objectType\": \"FK CONSTRAINT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flights_aircraft_code_fkey\",\n      \"owner\": \"postgres\",\n      \"section\": \"PostData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3265,\n      \"databaseOid\": 16482,\n      \"objectOid\": 2606,\n      \"objectType\": \"FK CONSTRAINT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flights_arrival_airport_fkey\",\n      \"owner\": \"postgres\",\n      \"section\": \"PostData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222\n      ]\n    },\n    {\n      \"dumpId\": 3266,\n      \"databaseOid\": 16487,\n      \"objectOid\": 2606,\n      \"objectType\": \"FK CONSTRAINT\",\n      \"schema\": \"bookings\",\n      \"name\": \"flights flights_departure_airport_fkey\",\n      \"owner\": \"postgres\",\n      \"section\": \"PostData\",\n      \"originalSize\": 0,\n      \"compressedSize\": 0,\n      \"fileName\": \"\",\n      \"dependencies\": [\n        222\n      ]\n    }\n  ]\n}\n

  1. The date when the backup has been initiated, also indicating the snapshot date.
  2. The date when the backup process was successfully completed.
  3. The original size of the backup in bytes.
  4. The size of the backup after compression in bytes.
  5. A list of tables that underwent transformation during the backup.
  6. The schema name of the table.
  7. The name of the table.
  8. Custom query override, if applicable.
  9. A list of transformers that were applied during the backup.
  10. The name of the transformer.
  11. The parameters provided for the transformer.
  12. A mapping of overridden column types.
  13. The header information in the table of contents file. This provides the same details as the --format=text output in the previous snippet.
  14. The list of restoration entries. This offers the same information as the --format=text output in the previous snippet.

Note

The json format provides more detailed information compared to the text format. The text format is primarily used for backward compatibility and for generating a restoration list that can be used with pg_restore -L listfile. On the other hand, the json format provides comprehensive metadata about the dump, including information about the applied transformers and their parameters. The json format is especially useful for detailed dump introspection.

"},{"location":"commands/show-transformer/","title":"show-transformer","text":""},{"location":"commands/show-transformer/#show-transformer-command","title":"show-transformer command","text":"

This command prints out detailed information about a transformer by a provided name, including specific attributes to help you understand and configure the transformer effectively.

To show detailed information about a transformer, use the following command:

greenmask --config=config.yml show-transformer TRANSFORMER_NAME\n

Supported flags:

  • --format \u2014 allows to select the output format. There are two options available: text or json. The default setting is text.

Example of show-transformer output:

When using the show-transformer command, you receive detailed information about the transformer and its parameters and their possible attributes. Below are the key parameters for each transformer:

  • Name \u2014 the name of the transformer
  • Description \u2014 a brief description of what the transformer does
  • Parameters \u2014 a list of transformer parameters, each with its own set of attributes. Possible attributes include:

    • description \u2014 a brief description of the parameter's purpose
    • required \u2014 a flag indicating whether the parameter is required when configuring the transformer
    • link_parameter \u2014 specifies whether the value of the parameter will be encoded using a specific parameter type encoder. For example, if a parameter named column is linked to another parameter start, the start parameter's value will be encoded according to the column type when the transformer is initialized.
    • cast_db_type \u2014 indicates that the value should be encoded according to the database type. For example, when dealing with the INTERVAL data type, you must provide the interval value in PostgreSQL format.
    • default_value \u2014 the default value assigned to the parameter if it's not provided during configuration.
    • column_properties \u2014 if a parameter represents the name of a column, it may contain additional properties, including:
      • nullable \u2014 indicates whether the transformer may produce NULL values, potentially violating the NOT NULL constraint
      • unique \u2014 specifies whether the transformer guarantees unique values for each call. If set to true, it means that the transformer cannot produce duplicate values, ensuring compliance with the UNIQUE constraint.
      • affected \u2014 indicates whether the column is affected during the transformation process. If not affected, the column's value might still be required for transforming another column.
      • allowed_types \u2014 a list of data types that are compatible with this parameter
      • skip_original_data \u2014 specifies whether the original value of the column, before transformation, is relevant for the transformation process
      • skip_on_null \u2014 indicates whether the transformer should skip the transformation when the input column value is NULL. If the column value is NULL, interaction with the transformer is unnecessary.

Warning

The default value in JSON format is base64 encoded. This might be changed in later version of Greenmask.

JSON output example
[\n  {\n    \"properties\": {\n      \"name\": \"NoiseFloat\",\n      \"description\": \"Make noise float for int\",\n      \"is_custom\": false\n    },\n    \"parameters\": [\n      {\n        \"name\": \"column\",\n        \"description\": \"column name\",\n        \"required\": true,\n        \"is_column\": true,\n        \"is_column_container\": false,\n        \"column_properties\": {\n          \"max_length\": -1,\n          \"affected\": true,\n          \"allowed_types\": [\n            \"float4\",\n            \"float8\",\n            \"numeric\"\n          ],\n          \"skip_on_null\": true\n        }\n      },\n      {\n        \"name\": \"ratio\",\n        \"description\": \"max random percentage for noise\",\n        \"required\": false,\n        \"is_column\": false,\n        \"is_column_container\": false,\n        \"default_value\": \"MC4x\"\n      },\n      {\n        \"name\": \"decimal\",\n        \"description\": \"decimal of noised float value (number of digits after coma)\",\n        \"required\": false,\n        \"is_column\": false,\n        \"is_column_container\": false,\n        \"default_value\": \"NA==\"\n      }\n    ]\n  }\n]\n
"},{"location":"commands/validate/","title":"validate command","text":"

The validate command allows you to perform a validation procedure and compare transformed data.

Below is a list of all supported flags for the validate command:

Supported flags
Usage:\n  greenmask validate [flags]\n\nFlags:\n      --data                  Perform test dump for --rows-limit rows and print it pretty\n      --diff                  Find difference between original and transformed data\n      --format string         Format of output. possible values [text|json] (default \"text\")\n      --rows-limit uint       Check tables dump only for specific tables (default 10)\n      --schema                Make a schema diff between previous dump and the current state\n      --table strings         Check tables dump only for specific tables\n      --table-format string   Format of table output (only for --format=text). Possible values [vertical|horizontal] (default \"vertical\")\n      --transformed-only      Print only transformed column and primary key\n      --warnings              Print warnings\n

Validate command can exit with non-zero code when:

  • Any error occurred
  • Validate was called with --warnings flag and there are warnings
  • Validate was called with --schema flag and there are schema differences

All of those cases may be used for CI/CD pipelines to stop the process when something went wrong. This is especially useful when --schema flag is used - this allows to avoid data leakage when schema changed.

You can use the --table flag multiple times to specify the tables you want to check. Tables can be written with or without schema names (e. g., public.table_name or table_name). If you specify multiple tables from different schemas, an error will be thrown.

To start validation, use the following command:

greenmask --config=config.yml validate \\\n  --warnings \\\n  --data \\\n  --diff \\\n  --schema \\\n  --format=text \\\n  --table-format=vertical \\\n  --transformed-only \\\n  --rows-limit=1\n
Validation output example
2024-03-15T19:46:12+02:00 WRN ValidationWarning={\"hash\":\"aa808fb574a1359c6606e464833feceb\",\"meta\":{\"ColumnName\":\"birthdate\",\"ConstraintDef\":\"CHECK (birthdate \\u003e= '1930-01-01'::date AND birthdate \\u003c= (now() - '18 years'::interval))\",\"ConstraintName\":\"humanresources\",\"ConstraintSchema\":\"humanresources\",\"ConstraintType\":\"Check\",\"ParameterName\":\"column\",\"SchemaName\":\"humanresources\",\"TableName\":\"employee\",\"TransformerName\":\"NoiseDate\"},\"msg\":\"possible constraint violation: column has Check constraint\",\"severity\":\"warning\"}\n

The validation output will provide detailed information about potential constraint violations and schema issues. Each line contains nested JSON data under the ValidationWarning key, offering insights into the affected part of the configuration and potential constraint violations.

Pretty formatted validation warning

{ \n  \"hash\": \"aa808fb574a1359c6606e464833feceb\", // (13)\n  \"meta\": { // (1)\n    \"ColumnName\": \"birthdate\", // (2)\n    \"ConstraintDef\": \"CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))\", // (3)\n    \"ConstraintName\": \"humanresources\", // (4)\n    \"ConstraintSchema\": \"humanresources\", // (5)\n    \"ConstraintType\": \"Check\", // (6)\n    \"ParameterName\": \"column\", // (7)\n    \"SchemaName\": \"humanresources\", // (8)\n    \"TableName\": \"employee\", // (9)\n    \"TransformerName\": \"NoiseDate\" // (10)\n  },\n  \"msg\": \"possible constraint violation: column has Check constraint\", // (11)\n  \"severity\": \"warning\" // (12)\n}\n

  1. Detailed metadata. The validation output provides comprehensive metadata to pinpoint the source of problems.
  2. Column name indicates the name of the affected column.
  3. Constraint definition specifies the definition of the constraint that may be violated.
  4. Constraint name identifies the name of the constraint that is potentially violated.
  5. Constraint schema name indicates the schema in which the constraint is defined.
  6. Type of constraint represents the type of constraint and can be one of the following:
    * ForeignKey\n* Check\n* NotNull\n* PrimaryKey\n* PrimaryKeyReferences\n* Unique\n* Length\n* Exclusion\n* TriggerConstraint\n
  7. Table schema name specifies the schema name of the affected table.
  8. Table name identifies the name of the table where the problem occurs.
  9. Transformer name indicates the name of the transformer responsible for the transformation.
  10. Name of affected parameter typically, this is the name of the column parameter that is relevant to the validation warning.
  11. Validation warning description provides a detailed description of the validation warning and the reason behind it.
  12. Severity of validation warning indicates the severity level of the validation warning and can be one of the following:
    * error\n* warning\n* info\n* debug\n
  13. Hash is a unique identifier of the validation warning. It is used to resolve the warning in the config file

Note

A validation warning with a severity level of \"error\" is considered critical and must be addressed before the dump operation can proceed. Failure to resolve such warnings will prevent the dump operation from being executed.

Schema diff changed output example
2024-03-15T19:46:12+02:00 WRN Database schema has been changed Hint=\"Check schema changes before making new dump\" PreviousDumpId=1710520855501\n2024-03-15T19:46:12+02:00 WRN Column renamed Event=ColumnRenamed Signature={\"CurrentColumnName\":\"id1\",\"PreviousColumnName\":\"id\",\"TableName\":\"test\",\"TableSchema\":\"public\"}\n2024-03-15T19:46:12+02:00 WRN Column type changed Event=ColumnTypeChanged Signature={\"ColumnName\":\"id\",\"CurrentColumnType\":\"bigint\",\"CurrentColumnTypeOid\":\"20\",\"PreviousColumnType\":\"integer\",\"PreviousColumnTypeOid\":\"23\",\"TableName\":\"test\",\"TableSchema\":\"public\"}\n2024-03-15T19:46:12+02:00 WRN Column created Event=ColumnCreated Signature={\"ColumnName\":\"name\",\"ColumnType\":\"text\",\"TableName\":\"test\",\"TableSchema\":\"public\"}\n2024-03-15T19:46:12+02:00 WRN Table created Event=TableCreated Signature={\"SchemaName\":\"public\",\"TableName\":\"test1\",\"TableOid\":\"20563\"}\n

Example of validation diff:

The validation diff is presented in a neatly formatted table. In this table:

  • Columns that are affected by the transformation are highlighted with a red background.
  • The pre-transformation values are displayed in green.
  • The post-transformation values are shown in red.
  • The result in --format=text can be displayed in either horizontal (--table-format=horizontal) or vertical (--table-format=vertical) format, making it easy to visualize and understand the differences between the original and transformed data.

The whole validate command may be run in json format including logging making easy to parse the structure.

greenmask --config=config.yml validate \\\n  --warnings \\\n  --data \\\n  --diff \\\n  --schema \\\n  --format=json \\\n  --table-format=vertical \\\n  --transformed-only \\\n  --rows-limit=1 \\\n  --log-format=json\n

The json object result

The validation warningSchema diff eventsTransformation diff line
{\n  \"level\": \"warn\",\n  \"ValidationWarning\": {\n    \"msg\": \"possible constraint violation: column has Check constraint\",\n    \"severity\": \"warning\",\n    \"meta\": {\n      \"ColumnName\": \"birthdate\",\n      \"ConstraintDef\": \"CHECK (birthdate >= '1930-01-01'::date AND birthdate <= (now() - '18 years'::interval))\",\n      \"ConstraintName\": \"humanresources\",\n      \"ConstraintSchema\": \"humanresources\",\n      \"ConstraintType\": \"Check\",\n      \"ParameterName\": \"column\",\n      \"SchemaName\": \"humanresources\",\n      \"TableName\": \"employee\",\n      \"TransformerName\": \"NoiseDate\"\n    },\n    \"hash\": \"aa808fb574a1359c6606e464833feceb\"\n  },\n  \"time\": \"2024-03-15T20:01:51+02:00\"\n}\n
{\n  \"level\": \"warn\",\n  \"PreviousDumpId\": \"1710520855501\",\n  \"Diff\": [\n    {\n      \"event\": \"ColumnRenamed\",\n      \"signature\": {\n        \"CurrentColumnName\": \"id1\",\n        \"PreviousColumnName\": \"id\",\n        \"TableName\": \"test\",\n        \"TableSchema\": \"public\"\n      }\n    },\n    {\n      \"event\": \"ColumnTypeChanged\",\n      \"signature\": {\n        \"ColumnName\": \"id\",\n        \"CurrentColumnType\": \"bigint\",\n        \"CurrentColumnTypeOid\": \"20\",\n        \"PreviousColumnType\": \"integer\",\n        \"PreviousColumnTypeOid\": \"23\",\n        \"TableName\": \"test\",\n        \"TableSchema\": \"public\"\n      }\n    },\n    {\n      \"event\": \"ColumnCreated\",\n      \"signature\": {\n        \"ColumnName\": \"name\",\n        \"ColumnType\": \"text\",\n        \"TableName\": \"test\",\n        \"TableSchema\": \"public\"\n      }\n    },\n    {\n      \"event\": \"TableCreated\",\n      \"signature\": {\n        \"SchemaName\": \"public\",\n        \"TableName\": \"test1\",\n        \"TableOid\": \"20563\"\n      }\n    }\n  ],\n  \"Hint\": \"Check schema changes before making new dump\",\n  \"time\": \"2024-03-15T20:01:51+02:00\",\n  \"message\": \"Database schema has been changed\"\n}\n
{\n  \"schema\": \"humanresources\",\n  \"name\": \"employee\",\n  \"primary_key_columns\": [\n    \"businessentityid\"\n  ],\n  \"with_diff\": true,\n  \"transformed_only\": true,\n  \"records\": [\n    {\n      \"birthdate\": {\n        \"original\": \"1969-01-29\",\n        \"transformed\": \"1964-10-20\",\n        \"equal\": false,\n        \"implicit\": true\n      },\n      \"businessentityid\": {\n        \"original\": \"1\",\n        \"transformed\": \"1\",\n        \"equal\": true,\n        \"implicit\": true\n      }\n    }\n  ]\n}\n
"},{"location":"release_notes/greenmask_0_1_0/","title":"Greenmask 0.1.0","text":"

We are excited to announce the release of Greenmask v0.1.0, marking the first production-ready version. This release addresses various bug fixes, introduces improvements, and includes documentation refactoring for enhanced clarity.

"},{"location":"release_notes/greenmask_0_1_0/#new-features","title":"New features","text":"
  • Added positional arguments for the list-transformers command, allowing specific transformer information retrieval (e.g., greenmask list-transformers RandomDate).

  • Added a version parameter --version that prints Greenmask version.

  • Added numeric parameters support for -Int and -Float transformers.

"},{"location":"release_notes/greenmask_0_1_0/#improvements","title":"Improvements","text":"
  • Improved verbosity in custom transformer interaction, accumulating stderr data and forwarding it in batches instead of writing it one by one.

  • Updated dependencies to newer versions.

  • Enhanced the stability of the JSON line interaction protocol by utilizing the stdlib JSON encoder/decoder.

  • Modified the method for sending table metadata to custom transformers; now, it is sent via stdin in the first line in JSON format instead of providing it via command arguments.

  • Refactored template functions naming.

  • Refactored NoiseDate transformer implementation for improved stability and predictability.

  • Changed the default value for the Dict transformer: fail_not_matched parameter: true.

  • Refactored the Hash transformer to provide a salt parameter and receive a base64 encoded salt. If salt is not provided, it generates one randomly.

  • Added validation for the truncate parameter of NoiseDate and RandomDate transformers that issues a warning if the provided value is invalid.

  • Increased verbosity of parameter validation warnings, now properly forwarding warnings to stdout.

"},{"location":"release_notes/greenmask_0_1_0/#fixes","title":"Fixes","text":"
  • Resolved pgx driver connection leakage issue.

  • Fixed deletion failure of dumps for S3 storage.

  • Corrected cobra autocompletion for the Greenmask utility.

  • Fixed NOT NULL constraint validation.

  • Addressed JSON API interaction issues that previously caused deadlocks and timeouts.

  • Fixed encode-decoding for binary parameters, ensuring accurate forwarding of values to custom transformers.

  • Fixed the RandomChoice transformer to correctly marshal and unmarshal values during validation.

  • Introduced the nullable property for the SetNull transformer to enhance NOT NULL constraint validation.

  • Resolved text wrapping issues for the validate command.

  • Fixed build failures on Windows due to Linux platform dependencies.

  • Corrected stdout readline buffer reading during interaction with custom transformers.

  • Fixed integration tests.

"},{"location":"release_notes/greenmask_0_1_0/#ecosystem-changes","title":"Ecosystem changes","text":"
  • Implemented CI/CD pipelines for the entire project.

  • Established a user-friendly playground in Docker compose, including:

  • Deployed Minio storage container.

  • PostgreSQL container containing both the original database (Adventure Works) and the transformed (empty DB).
  • Greenmask container itself.

  • Refactored current readme files.

"},{"location":"release_notes/greenmask_0_1_0/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_0_beta/","title":"Greenmask 0.0.1 Beta","text":"

We are excited to announce the beta release of Greenmask, a versatile and open-source utility for PostgreSQL logical backup dumping, anonymization, and restoration. Greenmask is perfect for routine backup and restoration tasks. It facilitates anonymization and data masking for staging environments and analytics.

This release introduces a range of features aimed at enhancing database management and security.

"},{"location":"release_notes/greenmask_0_1_0_beta/#key-features","title":"Key features","text":"
  • Cross-platform support \u2014 fully written in Go without platform dependencies.
  • Type-safe database operations \u2014 validates and encodes data, maintaining integrity.
  • Transformation validation \u2014 ensures data transformations are correct and maintainable.
  • Partitioned table support \u2014 simplifies configuration for partitioned tables.
  • Stateless and backward compatible \u2014 works alongside standard PostgreSQL utilities.
  • Parallel execution \u2014 enhances efficiency in dumping and restoration processes.
  • Multiple storage options \u2014 supports both local (directory) and remote (S3-like) storage solutions.
"},{"location":"release_notes/greenmask_0_1_0_beta/#download","title":"Download","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_1/","title":"Greenmask 0.1.1","text":"

This release introduces a suite of new transformers, significantly enhancing Greenmask's capabilities for obfuscating PostgreSQL databases.

"},{"location":"release_notes/greenmask_0_1_1/#new-features","title":"New features","text":"

Added the following new transformers:

Transformer Description RandomLatitude Generates a random latitude value RandomLongitude Generates a random longitude value RandomUnixTime Generates a random Unix timestamp RandomMonthName Generates the name of a random month RandomYearString Generates a random year as a string RandomDayOfWeek Generates a random day of the week RandomDayOfMonth Generates a random day of the month RandomCentury Generates a random century RandomTimezone Generates a random timezone RandomEmail Generates a random email address RandomMacAddress Generates a random MAC address RandomDomainName Generates a random domain name RandomURL Generates a random URL RandomUsername Generates a random username RandomIPv4 Generates a random IPv4 address RandomIPv6 Generates a random IPv6 address RandomPassword Generates a random password RandomWord Generates a random word RandomSentence Generates a random sentence RandomParagraph Generates a random paragraph RandomCCType Generates a random credit card type RandomCCNumber Generates a random credit card number RandomCurrency Generates a random currency code RandomAmountWithCurrency Generates a random monetary amount with currency RandomTitleMale Generates a random title for males RandomTitleFemale Generates a random title for females RandomFirstName Generates a random first name RandomFirstNameMale Generates a random male first name RandomFirstNameFemale Generates a random female first name RandomLastName Generates a random last name RandomName Generates a full random name RandomPhoneNumber Generates a random phone number RandomTollFreePhoneNumber Generates a random toll-free phone number RandomE164PhoneNumber Generates a random phone number in E.164 format RealAddress Generates a real address"},{"location":"release_notes/greenmask_0_1_1/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_10/","title":"Greenmask 0.1.10","text":"

This release introduces improvements and bug fixes

"},{"location":"release_notes/greenmask_0_1_10/#changes","title":"Changes","text":"
  • Fixed panic caused in RandomString transformer
  • Fixed wrong table size calculation. Now the table size includes TOAST table size
  • Added custom transformer interaction API defaults if not set
  • Changed docker workdir to greenmask home
  • Removed bucket name from object path prefix
"},{"location":"release_notes/greenmask_0_1_10/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_11/","title":"Greenmask 0.1.11","text":"

This release introduces improvements and bug fixes

"},{"location":"release_notes/greenmask_0_1_11/#changes","title":"Changes","text":"
  • Added support for generated columns in the table
  • Fixed transformer parameters encoding issue caused by spf13/viper
  • Fixed table scoring for transformed table
  • Refactored connection management logic in restore command - fixes connection idle timeout
"},{"location":"release_notes/greenmask_0_1_11/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_12/","title":"Greenmask 0.1.12","text":"

This release introduces improvements and bug fixes

"},{"location":"release_notes/greenmask_0_1_12/#changes","title":"Changes","text":"
  • Fixed config decoding issue caused
  • Fixed TOC entries merge behavior when data section is empty
  • Fixed integration tests for S3 storage
"},{"location":"release_notes/greenmask_0_1_12/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_13/","title":"Greenmask 0.1.13","text":"

This release introduces only improvements in documentation deployment. The core greenmask utility does not contain any changes.

"},{"location":"release_notes/greenmask_0_1_13/#changes","title":"Changes","text":"
  • Added documentation deployment with versioning
"},{"location":"release_notes/greenmask_0_1_13/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_14/","title":"Greenmask 0.1.14","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_1_14/#changes","title":"Changes","text":"
  • Fixed large panic caused in Large Object dumper
"},{"location":"release_notes/greenmask_0_1_14/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_2/","title":"Greenmask 0.1.2","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_1_2/#fixes","title":"Fixes","text":"
  • Fixed bug when raw COPY lines were parsed incorrectly
  • Fixed --version parameter behavior
  • Fixed --dbname parameter - now it correctly works with PostgreSQL connection string in URI format postgresql:///
"},{"location":"release_notes/greenmask_0_1_2/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_3/","title":"Greenmask 0.1.3","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_1_3/#fixes","title":"Fixes","text":"
  • Fixed the JSON transformer's parsing for the operations fields
  • Fixed database connection string builder in pg_restore and pg_dump
"},{"location":"release_notes/greenmask_0_1_3/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_4/","title":"Greenmask 0.1.4","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_1_4/#fixes","title":"Fixes","text":"
  • Fixed database connection string behavior fields
"},{"location":"release_notes/greenmask_0_1_4/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_5/","title":"Greenmask 0.1.5","text":"

This release introduces a new Greenmask command, improvements, bug fixes, and numerous documentation updates.

"},{"location":"release_notes/greenmask_0_1_5/#new-features","title":"New features","text":"

Added a new Greenmask CLI command\u2014show-transformer that shows detailed information about a specified transformer.

"},{"location":"release_notes/greenmask_0_1_5/#improvements","title":"Improvements","text":"
  • The Hash transformer has been completely remastered and now has the function parameter to choose from several hash algorithm options and the max_length parameter to truncate the hash tail.
  • Split information about transformers between the list-transformers and new show-transformer CLI commands, which allows for more comprehensible and useful outputs for both commands
  • Added error severity for the Cmd parameter validator
  • Improved UX for the Greenmask release binaries
"},{"location":"release_notes/greenmask_0_1_5/#fixes","title":"Fixes","text":"
  • Fixed metadata enrichment for validation warnings caused by RawValueValidator
  • Fixed a typo in the credit_card value for the type parameter of the Masking transformer
  • Fixed Greenmask Playground environment variables and the cleanup command
  • Fixed list-dump, list-transformers, and restore commands exit code on error
"},{"location":"release_notes/greenmask_0_1_5/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_6/","title":"Greenmask 0.1.6","text":"

This is a minor release that introduces a bug hotfix

"},{"location":"release_notes/greenmask_0_1_6/#fixes","title":"Fixes","text":"
  • Fixed uncontrolled buffer growth in the restore command
"},{"location":"release_notes/greenmask_0_1_6/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_7/","title":"Greenmask 0.1.7","text":"

This release introduces a new Greenmask command, improvements, bug fixes, and documentation update.

"},{"location":"release_notes/greenmask_0_1_7/#new-features","title":"New features","text":"
  • Added restoration filtering by --table, --schema and --exclude-schema parameters
  • Validate parameters without parameters validates only configuration file
  • Added the --schema parameter, which allows to make a schema diff between the previous dump and the current. This is useful when you want to check if the schema has changed after the migration. By controlling it we can exclude data leakage after migration
  • Validate command divided by many stages that can be controlled using parameters
    • Configuration validation
    • Transformer validation
    • Constraint violation check
    • Data difference check
"},{"location":"release_notes/greenmask_0_1_7/#improvements","title":"Improvements","text":"
  • Improved Hash transformer
    • Added salt parameter that can be set via config or via GREENMASK_GLOBAL_SALT
    • Added sha3 functions support in different modes (sha3-224, sha3-256, sha3-384, sha3-512)
  • Refactored Cmd transformer logic
    • Json API: Now it allows to use of column names instead of column indexes in JSON format
    • Csv API: Now it can use the column order from config via column remapping
  • The validate command was rewritten almost from scratch.
    • New option --transformed-only - displays only columns that are transformed with primary key (if exists). This allows to reduce the output data and make it more readable
    • Implemented json format for output
    • Added the --table-format parameter which is responsible for the vertical and horizontal table orientation. This works only when --format=text
    • Added the --warnings parameter, if it is specified then not only fatal-warnings will be displayed, but also those with a lower severity
"},{"location":"release_notes/greenmask_0_1_7/#fixes","title":"Fixes","text":"
  • Fixed --use-list option - now it applies toc entries according to the order in list file
  • Fixed --use-list option behaviour together with --list-format option (json or text). Now it generates temporal list file in text format for providing it to the pg_restore call
  • Updated documentation according to the latest changes
"},{"location":"release_notes/greenmask_0_1_7/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_8/","title":"Greenmask 0.1.8","text":"

This release introduces improvements and bug fixes

"},{"location":"release_notes/greenmask_0_1_8/#improvements","title":"Improvements","text":"
  • Implemented --exit-on-error parameter for pg_restore run. But it does not play for \"data\" section restoration now. If any error is caused in data section greenmask exits with the error whether --exit-on-error was provided or not. This might be fixed later
"},{"location":"release_notes/greenmask_0_1_8/#fixes","title":"Fixes","text":"
  • Fixed dependent objects dropping when running with the restore command with the --clean parameter. Useful when restoring and overriding only required tables
  • Fixed show-dump command output in text mode
  • Disabled CGO. Fixes problem when downloaded binary from repo cannot run
  • Fixed delete dump operation
"},{"location":"release_notes/greenmask_0_1_8/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_1_9/","title":"Greenmask 0.1.9","text":"

This release introduces improvements and bug fixes

"},{"location":"release_notes/greenmask_0_1_9/#improvements","title":"Improvements","text":"
  • Implemented tables scoring according to the table size and transformation costs. This correctly spread the tables dumping between the requested workers pool and reduces the execution time. Now greenmask introspects the table size, adds the transformation scoring using the formula score = tableSizeInBytes + (tableSizeInBytes * 0.03 * tableTransformationsCount), and uses the strategy \"Largest First\". The problem is described here
  • Introduced no_verify_ssl parameter for S3 storage
  • Adjusted Dockerfile
    • Changed entrypoint to greenmask binary
    • The greenmask container now runs under greenmask user and groups
  • Refactored storage config structure. Now it contains the type that is used for the storage type determination
  • Most of the attributes may be overridden with environment variables where the letters are capitalized and the dots are replaced with underscores. For instance, the setting storage.type might be represented with the environment variable STORAGE_TYPE
  • Parameter --config is not required anymore. This simplifies the greenmask utility user experience
  • Directory storage set as the default
  • Set the default temporary directory as /tmp
  • Added environment variable section to the configuration docs
"},{"location":"release_notes/greenmask_0_1_9/#fixes","title":"Fixes","text":"
  • Fixed S3_REGION environment variable usage. Tested cases where the S3 storage is set up using S3 variables that uses by github.com/aws/aws-sdk-go
  • Updated project dependencies to the latest version
"},{"location":"release_notes/greenmask_0_1_9/#assets","title":"Assets","text":"

To download the Greenmask binary compatible with your system, see the release's assets list.

"},{"location":"release_notes/greenmask_0_2_0/","title":"Greenmask 0.2.0","text":"

This is one of the biggest releases since Greenmask was founded. We've been in close contact with our users, gathering feedback, and working hard to make Greenmask more flexible, reliable, and user-friendly.

This major release introduces exciting new features such as database subsetting, pgzip support, restoration in topological order, and refactored transformers, significantly enhancing Greenmask's flexibility to better meet business needs. It also includes several fixes and improvements.

"},{"location":"release_notes/greenmask_0_2_0/#preface","title":"Preface","text":"

This release is a major milestone that significantly expands Greenmask's functionality, transforming it into a simple, extensible, and reliable solution for database security, data anonymization, and everyday operations. Our goal is to create a core system that can serve as a foundation for comprehensive dynamic staging environments and robust data security.

"},{"location":"release_notes/greenmask_0_2_0/#notable-changes","title":"Notable changes","text":"
  • PostgreSQL 17 support - revised ported library to support PostgreSQL 17

  • Database Subset - a new feature that allows you to define a subset of the database, allowing you to scale down the dump size (#110). This is robust for multipurpose and especially useful for testing and development environments. It supports:

    • References with NULL values - generate the LEFT JOIN query for the FK reference with NULL values to include them in the subset.
    • Supports virtual references (virtual foreign keys) - create a logical FK in Greenmask that will be used for subset dependencies graph. The virtual reference can be defined for a column or an expression, allowing you to get the value from JSON and similar.
    • Supports circular references - Greenmask will automatically resolve circular dependencies in the subset by generating a recursive query. The query is generated with integrity checks of the subset ensuring that the data gathered from circular dependencies is consistent.
    • Fully covered with documentation including troubleshooting and examples.
    • Supports FK and PK that have more than one column (or expression).
    • Multi-cycles resolution in one strong connected component (SCC) is supported - Greenmask will generate a recursive query for the SCC whether it is a single cycle or multiple cycles, making the subset system universal for any database schema.
    • Supports polymorphic relationships - You can define a virtual reference for a table with polymorphic references using polymorphic_exprs attribute and use greenmask to generate a subset for such tables.
  • pgzip support for faster compression and decompression \u2014 setting --pgzip can speed up the dump and restoration processes through parallel compression. In some tests, it shows up to 5x faster dump and restore operations.

  • Restoration in topological order - This flag ensures that dependent tables are not restored until the tables they depend on have been restored. This is useful when you want to be notified of errors as immediately as possible without waiting for the entire table to be restored.
  • Insert format restoration - For a flexible restoration process, Greenmask now supports data restoration in the INSERT format. It generates the insert statements based on COPY records from the dump. You do not need to re-dump your data to use this feature; it can be defined in the restore command. The list of new features related to the INSERT format:

    • Generate INSERT statements with the **ON CONFLICT DO NOTHING** clause if the flag --on-conflict-do-nothing is set.
    • Error exclusion list in the config to skip certain errors and continue inserting subsequent rows from the dump.
    • Use cases - incremental dump and restoration for logical data. For example, if you have a database, and you want to insert data periodically from another source, this can be used together with the database subset and transformations to catch up the target database.
  • Restore data batching (#173) - By default, the COPY protocol returns the error only on transaction commit. To override this behavior, use the --batch-size flag to specify the number of rows to insert in a single batch during the COPY command. This is useful when you want to control the transaction size and commit.

  • Introduced keep_null parameter for RandomPerson transformer.

  • Introduced dynamic parameters in the transformers

    • Most transformers now support dynamic parameters where applicable.
    • Dynamic parameters are strictly enforced. If you need to cast values to another type, Greenmask provides templates and predefined cast functions accessible via cast_to. These functions cover frequent operations such as UnixTimestampToDate and IntToBool.
  • The transformation logic has been significantly refactored, making transformers more customizable and flexible than before.
  • Introduced transformation engines

    • random - generates transformer values based on pseudo-random algorithms.
    • hash - generates transformer values using hash functions. Currently, it utilizes sha3 hash functions, which are secure but perform slowly. In the stable release, there will be an option to choose between sha3 and SipHash.
  • Introduced static parameters value template

  • Dumps retention management - Introduced retention parameters (#201) for the delete command. Introduced two new statuses: failed and in progress. A dump is considered failed if it lacks a \"done\" heartbeat or if the last heartbeat timestamp exceeds 30 minutes. The delete command now supports the following retention parameters:

    • --dry-run: Runs the deletion operation in test mode with verbose output, without actually deleting anything.
    • --before-date 2024-08-27T23:50:54+00:00: Deletes dumps older than the specified date. The date must be provided in RFC3339Nano format, for example: 2021-01-01T00:00:00Z.
    • --retain-recent 10: Retains the N most recent dumps, where N is specified by the user.
    • --retain-for 1w2d3h4m5s6ms7us8ns: Retains dumps for the specified duration. The format supports weeks (w), days (d), hours (h), minutes (m), seconds (s), milliseconds (ms), microseconds (us), and nanoseconds (ns).
    • --prune-failed: Prunes (removes) all dumps that have failed.
    • --prune-unsafe: Prunes dumps with \"unknown-or-failed\" statuses. This option only works in conjunction with --prune-failed.
  • Docker image mirroring into the GitHub Container Registry

"},{"location":"release_notes/greenmask_0_2_0/#core","title":"Core","text":"
  • Introduced the Parametrizer interface, now implemented for both dynamic and static parameters.
  • Renamed most of the toolkit types for enhanced clarity and comprehensive documentation coverage.
  • Refactored the Driver initialization logic.
  • Added validation warnings for overridden types in the Driver.
  • Migrated existing built-in transformers to utilize the new Parametrizer interface.
  • Implemented a new abstraction, TransformationContext, as the first step towards enabling new feature transformation conditions (#34).
  • Optimized most transformers for performance in both dynamic and static modes. While dynamic mode offers flexibility, static mode ensures performance remains high. Using only the necessary transformation features helps keep transformation time predictable.
"},{"location":"release_notes/greenmask_0_2_0/#transformers","title":"Transformers","text":"
  • RandomEmail - Introduces a new transformer that supports both random and deterministic engines. It allows for flexible email value generation; you can use column values in the template and choose to keep the original domain or select any from the domains parameter.

  • NoiseDate, NoiseFloat, NoiseInt - These transformers support both random and deterministic engines, offering dynamic mode parameters that control the noise thresholds within the min and max range. Unlike previous implementations which used a single ratio parameter, the new release features min_ratio and max_ratio parameters to define noise values more precisely. Utilizing the hash engine in these transformers enhances security by complicating statistical analysis for attackers, especially when the same salt is used consistently over long periods.

  • NoiseNumeric - A newly implemented transformer, sharing features with NoiseInt and NoiseFloat, but specifically designed for numeric values (large integers or floats). It provides a decimal parameter to handle values with fractions.

  • RandomChoice - Now supports the hash engine

  • RandomDate, RandomFloat, RandomInt - Now enhanced with hash engine support. Threshold parameters min and max have been updated to support dynamic mode, allowing for more flexible configurations.

  • RandomNumeric - A new transformer specifically designed for numeric types (large integers or floats), sharing similar features with RandomInt and RandomFloat, but tailored for handling huge numeric values.

  • RandomString - Now supports hash engine mode

  • RandomUnixTimestamp - This new transformer generates Unix timestamps with selectable units (second, millisecond, microsecond, nanosecond). Similar in function to RandomDate, it supports the hash engine and dynamic parameters for min and max thresholds, with the ability to override these units using min_unit and max_unit parameters.

  • RandomUuid - Added hash engine support

  • RandomPerson - Implemented a new transformer that replaces RandomName, RandomLastName, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomTitleMale, and RandomTitleFemale. This new transformer offers enhanced customizability while providing similar functionalities as the previous versions. It generates personal data such as FirstName, LastName, and Title, based on the provided gender parameter, which now supports dynamic mode. Future minor versions will allow for overriding the default names database.

  • Added tsModify - a new template function for time.Time objects modification

  • Introduced a new RandomIp transformer capable of generating a random IP address based on the specified netmask.

  • Added a new RandomMac transformer for generating random Mac addresses.

  • Deleted transformers include RandomMacAddress, RandomIPv4, RandomIPv6, RandomUnixTime, RandomTitleMale, RandomTitleFemale, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomLastName, and RandomName due to the introduction of more flexible and unified options.

"},{"location":"release_notes/greenmask_0_2_0/#fixes-and-improvements","title":"Fixes and improvements","text":"
  • Fixed validate command with the --table flag, which had the wrong order of the table name representation {{ table_name }}.{{ schema }} instead of {{ schema }}.{{ table_name }}.
  • Fixed Row.SetColumn out of range validation.
  • Fixed restoreWorker panic caused when the worker received an error from pgx.
  • Fixed error handling in the restore command.
  • Fixed restore jobs now start a transaction for each table restoration and commit it after the table restoration is done.
  • Fixed --exit-on-error works incorrectly in the restore command. Now, the --exit-on-error flag works correctly with the data section.
  • Fixed transaction rollback in the validate command.
  • Fixed typo in documentation.
  • Fixed a CI/CD bug related to retrieving current tags.
  • Fixed the Docker image tag for latest to exclude specific keywords.
  • Fixed a case where the hashing value was not set for each column in the RandomPerson transformer.
  • Fixed original email value parsing conditions.
  • Subset docs revision.
  • Fixes a case where data entries were excluded by exclusion parameters such as --exclude-table, --table, etc.
  • Fixed zero bytes that were written in the buffer due to the wrong buffer limit in the Email transformer.
  • Fixed a case where the overridden type of column via columns_type_override did not work.
  • Fixed a case where an unknown option provided in the config was just ignored instead of throwing an error.
  • Fixed a case where min and max parameter values were ignored in transformers NoiseDate, NoiseNumeric, NoiseFloat, NoiseInt, RandomNumeric, RandomFloat, and RandomInt.
  • Fixed TOC entry COPY restoration statement - added missing newline and semicolon. Now backward pg_dump call pg_restore 1724504511561 --file 1724504511561.sql is backward compatible and works as expected.
  • Fixed a case where dump/restore fails when masking tables with a generated column.
  • Updated go version (v1.22) and dependencies
  • Revised installation section of doc
  • PostgreSQL 17 support - revised ported library to support PostgreSQL 17
  • Fixed integration tests - reset the go test cache on each iteration
  • Push docker images to ghcr.io registry
  • A bunch of refactoring and code cleanup to make the codebase more maintainable and readable.
"},{"location":"release_notes/greenmask_0_2_0/#full-changelog-v0114v020","title":"Full Changelog: v0.1.14...v0.2.0","text":""},{"location":"release_notes/greenmask_0_2_0/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_0_b1/","title":"Greenmask 0.2.0b1 (pre-release)","text":"

This major beta release introduces new features and refactored transformers, significantly enhancing Greenmask's flexibility to better meet business needs.

"},{"location":"release_notes/greenmask_0_2_0_b1/#changes-overview","title":"Changes overview","text":"
  • Introduced dynamic parameters in the transformers
    • Most transformers now support dynamic parameters where applicable.
    • Dynamic parameters are strictly enforced. If you need to cast values to another type, Greenmask provides templates and predefined cast functions accessible via cast_to. These functions cover frequent operations such as UnixTimestampToDate and IntToBool.
  • The transformation logic has been significantly refactored, making transformers more customizable and flexible than before.
  • Introduced transformation engines

    • random - generates transformer values based on pseudo-random algorithms.
    • hash - generates transformer values using hash functions. Currently, it utilizes sha3 hash functions, which are secure but perform slowly. In the stable release, there will be an option to choose between sha3 and SipHash.
  • Introduced static parameters value template

"},{"location":"release_notes/greenmask_0_2_0_b1/#notable-changes","title":"Notable changes","text":""},{"location":"release_notes/greenmask_0_2_0_b1/#core","title":"Core","text":"
  • Introduced the Parametrizer interface, now implemented for both dynamic and static parameters.
  • Renamed most of the toolkit types for enhanced clarity and comprehensive documentation coverage.
  • Refactored the Driver initialization logic.
  • Added validation warnings for overridden types in the Driver.
  • Migrated existing built-in transformers to utilize the new Parametrizer interface.
  • Implemented a new abstraction, TransformationContext, as the first step towards enabling new feature transformation conditions (#34).
  • Optimized most transformers for performance in both dynamic and static modes. While dynamic mode offers flexibility, static mode ensures performance remains high. Using only the necessary transformation features helps keep transformation time predictable.
"},{"location":"release_notes/greenmask_0_2_0_b1/#documentation","title":"Documentation","text":"

Documentation has been significantly refactored. New information about features and updates to transformer descriptions have been added.

"},{"location":"release_notes/greenmask_0_2_0_b1/#transformers","title":"Transformers","text":"
  • RandomEmail - Introduces a new transformer that supports both random and deterministic engines. It allows for flexible email value generation; you can use column values in the template and choose to keep the original domain or select any from the domains parameter.

  • NoiseDate, NoiseFloat, NoiseInt - These transformers support both random and deterministic engines, offering dynamic mode parameters that control the noise thresholds within the min and max range. Unlike previous implementations which used a single ratio parameter, the new release features min_ratio and max_ratio parameters to define noise values more precisely. Utilizing the hash engine in these transformers enhances security by complicating statistical analysis for attackers, especially when the same salt is used consistently over long periods.

  • NoiseNumeric - A newly implemented transformer, sharing features with NoiseInt and NoiseFloat, but specifically designed for numeric values (large integers or floats). It provides a decimal parameter to handle values with fractions.

  • RandomChoice - Now supports the hash engine

  • RandomDate, RandomFloat, RandomInt - Now enhanced with hash engine support. Threshold parameters min and max have been updated to support dynamic mode, allowing for more flexible configurations.

  • RandomNumeric - A new transformer specifically designed for numeric types (large integers or floats), sharing similar features with RandomInt and RandomFloat, but tailored for handling huge numeric values.

  • RandomString - Now supports hash engine mode

  • RandomUnixTimestamp - This new transformer generates Unix timestamps with selectable units (second, millisecond, microsecond, nanosecond). Similar in function to RandomDate, it supports the hash engine and dynamic parameters for min and max thresholds, with the ability to override these units using min_unit and max_unit parameters.

  • RandomUuid - Added hash engine support

  • RandomPerson - Implemented a new transformer that replaces RandomName, RandomLastName, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomTitleMale, and RandomTitleFemale. This new transformer offers enhanced customizability while providing similar functionalities as the previous versions. It generates personal data such as FirstName, LastName, and Title, based on the provided gender parameter, which now supports dynamic mode. Future minor versions will allow for overriding the default names database.

  • Added tsModify - a new template function for time.Time objects modification

  • Introduced a new RandomIp transformer capable of generating a random IP address based on the specified netmask.

  • Added a new RandomMac transformer for generating random Mac addresses.

  • Deleted transformers include RandomMacAddress, RandomIPv4, RandomIPv6, RandomUnixTime, RandomTitleMale, RandomTitleFemale, RandomFirstName, RandomFirstNameMale, RandomFirstNameFemale, RandomLastName, and RandomName due to the introduction of more flexible and unified options.

"},{"location":"release_notes/greenmask_0_2_0_b1/#full-changelog-v0114v020b1","title":"Full Changelog: v0.1.14...v0.2.0b1","text":""},{"location":"release_notes/greenmask_0_2_0_b1/#playground-usage-for-beta-version","title":"Playground usage for beta version","text":"

If you want to run a Greenmask playground for the beta version v0.2.0b1 execute:

git checkout tags/v0.2.0b1 -b v0.2.0b1\ndocker-compose run greenmask-from-source\n
"},{"location":"release_notes/greenmask_0_2_0_b1/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_0_b2/","title":"Greenmask 0.2.0b2 (pre-release)","text":"

This major beta release introduces new features such as the database subset, pgzip support, restoration in topological and many more. It also includes fixes and improvements.

"},{"location":"release_notes/greenmask_0_2_0_b2/#preface","title":"Preface","text":"

This release is a major milestone that significantly expands Greenmask's functionality, transforming it into a simple, extensible, and reliable solution for database security, data anonymization, and everyday operations. Our goal is to create a core system that can serve as a foundation for comprehensive dynamic staging environments and robust data security.

"},{"location":"release_notes/greenmask_0_2_0_b2/#notable-changes","title":"Notable changes","text":"
  • Database Subset - a new feature that allows you to define a subset of the database, allowing you to scale down the dump size (#110). This is robust for multipurpose and especially useful for testing and development environments. It supports:

    • References with NULL values - generate the LEFT JOIN query for the FK reference with NULL values to include them in the subset.
    • Supports virtual references (virtual foreign keys) - create a logical FK in Greenmask that will be used for subset dependencies graph. The virtual reference can be defined for a column or an expression, allowing you to get the value from JSON and similar.
    • Supports circular references - Greenmask will automatically resolve circular dependencies in the subset by generating a recursive query. The query is generated with integrity checks of the subset ensuring that the data gathered from circular dependencies is consistent.
    • Fully covered with documentation including troubleshooting and examples.
    • Supports FK and PK that have more than one column (or expression).
    • Multi-cycles resolution in one strong connected component (SCC) is supported - Greenmask will generate a recursive query for the SCC whether it is a single cycle or multiple cycles, making the subset system universal for any database schema.
  • pgzip support for faster compression and decompression \u2014 setting --pgzip can speed up the dump and restoration processes through parallel compression. In some tests, it shows up to 5x faster dump and restore operations.

  • Restoration in topological order - This flag ensures that dependent tables are not restored until the tables they depend on have been restored. This is useful when you want to be notified of errors as immediately as possible without waiting for the entire table to be restored.
  • Insert format restoration - For a flexible restoration process, Greenmask now supports data restoration in the INSERT format. It generates the insert statements based on COPY records from the dump. You do not need to re-dump your data to use this feature; it can be defined in the restore command. The list of new features related to the INSERT format:

    • Generate INSERT statements with the **ON CONFLICT DO NOTHING** clause if the flag --on-conflict-do-nothing is set.
    • Error exclusion list in the config to skip certain errors and continue inserting subsequent rows from the dump.
    • Use cases - incremental dump and restoration for logical data. For example, if you have a database, and you want to insert data periodically from another source, this can be used together with the database subset and transformations to catch up the target database.
  • Restore data batching (#173) - By default, the COPY protocol returns the error only on transaction commit. To override this behavior, use the --batch-size flag to specify the number of rows to insert in a single batch during the COPY command. This is useful when you want to control the transaction size and commit.

  • Introduced keep_null parameter for RandomPerson transformer.
"},{"location":"release_notes/greenmask_0_2_0_b2/#fixes-and-improvements","title":"Fixes and improvements","text":"
  • Fixed validate command with the --table flag, which had the wrong order of the table name representation {{ table_name }}.{{ schema }} instead of {{ schema }}.{{ table_name }}.
  • Fixed Row.SetColumn out of range validation.
  • Fixed restoreWorker panic caused when the worker received an error from pgx.
  • Fixed error handling in the restore command.
  • Fixed restore jobs now start a transaction for each table restoration and commit it after the table restoration is done.
  • Fixed --exit-on-error works incorrectly in the restore command. Now, the --exit-on-error flag works correctly with the data section.
  • Fixed transaction rollback in the validate command.
  • Fixed typo in documentation.
  • Fixed a CI/CD bug related to retrieving current tags.
  • Fixed the Docker image tag for latest to exclude specific keywords.
  • Fixed a case where the hashing value was not set for each column in the RandomPerson transformer.
  • Fixed original email value parsing conditions.
  • Subset docs revision.
  • Fixes a case where data entries were excluded by exclusion parameters such as --exclude-table, --table, etc.
  • Fixed zero bytes that were written in the buffer due to the wrong buffer limit in the Email transformer.
  • Fixed a case where the overridden type of column via columns_type_override did not work.
  • Fixed a case where an unknown option provided in the config was just ignored instead of throwing an error.
  • Fixed a case where min and max parameter values were ignored in transformers NoiseDate, NoiseNumeric, NoiseFloat, NoiseInt, RandomNumeric, RandomFloat, and RandomInt.
  • Fixed TOC entry COPY restoration statement - added missing newline and semicolon. Now backward pg_dump call pg_restore 1724504511561 --file 1724504511561.sql is backward compatible and works as expected.
  • Fixed a case where dump/restore fails when masking tables with a generated column.
  • Updated go version (v1.22) and dependencies
  • Revised installation section of doc
  • A bunch of refactoring and code cleanup to make the codebase more maintainable and readable.
"},{"location":"release_notes/greenmask_0_2_0_b2/#full-changelog-v020b1v020b2","title":"Full Changelog: v0.2.0b1...v0.2.0b2","text":""},{"location":"release_notes/greenmask_0_2_0_b2/#playground-usage-for-beta-version","title":"Playground usage for beta version","text":"

If you want to run a Greenmask playground for the beta version v0.2.0b2 execute:

git checkout tags/v0.2.0b2 -b v0.2.0b2\ndocker-compose run greenmask-from-source\n
"},{"location":"release_notes/greenmask_0_2_0_b2/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_1/","title":"Greenmask 0.2.1","text":"

This release introduces two new features transformation conditions and transformation inheritance for primary and foreign keys. It also includes several bug fixes and improvements.

"},{"location":"release_notes/greenmask_0_2_1/#changes","title":"Changes","text":"
  • Feat: Transformation conditions execute a defined transformation only if a specified condition is met. #133
  • Feat: Transformation inheritance - transformation inheritance for partitioned tables and tables with foreign keys. Define once and apply to all.
  • CI/CD: Add golangci-lint job to pull request check #223
  • CI/CD: Deploy development version of the documentation (main branch) and divided jobs into separate blocks and made them reusable #212
  • Fix: Fixed type in subset documentation #211
  • Fix: Bump go and python dependencies #219
  • Fix: Fatal validation error in playground #224
  • Fix: Code refactoring and golangci-lint warns fixes #226
  • Docs: Revised README.md - added badges, updated the description, added getting started section, added greenmask design schema #216 #217 #218
  • Docs: main page errors in docs #221
  • Docs: Revised README.md according to the latest changes #225
  • Docs: moved documentation to docs.greenmask.io, added feedback form and GA integration #220
"},{"location":"release_notes/greenmask_0_2_1/#full-changelog-v020v021","title":"Full Changelog: v0.2.0...v0.2.1","text":""},{"location":"release_notes/greenmask_0_2_1/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_2/","title":"Greenmask 0.2.2","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_2_2/#changes","title":"Changes","text":"
  • Fixed a case when apply_for_references applies validation to all transformations even if they are not marked as apply_for_references #236.
  • Fixed issue with the latest tag disappearing in the documentation #234.
"},{"location":"release_notes/greenmask_0_2_2/#full-changelog-v021v022","title":"Full Changelog: v0.2.1...v0.2.2","text":""},{"location":"release_notes/greenmask_0_2_2/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_3/","title":"Greenmask 0.2.3","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_2_3/#changes","title":"Changes","text":"
  • Fixed an issue where the partitioned table itself was executed in the restore worker, resulting in a \"file not found\" error in storage. Closes bug: restoring partitioned tables fails #238 #242.
  • Fixed template function availability #239. Renamed methods according to the documentation: GetColumnRawValue is now GetRawColumnValue, and SetColumnRawValue is now SetRawColumnValue #242
  • Resolved an issue where Dump.createTocEntries processed partitioned tables as if they were physical entities, despite being logical #241
  • Corrected merging in the pre-data, data, and post-data sections, which previously caused a panic in dump command when the post-data section was excluded #241
  • Fixed an issue where dumps created with --load-via-partition-root did not use the root partition table in --inserts generation during restoration #241
"},{"location":"release_notes/greenmask_0_2_3/#full-changelog-v022v023","title":"Full Changelog: v0.2.2...v0.2.3","text":""},{"location":"release_notes/greenmask_0_2_3/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_4/","title":"Greenmask 0.2.4","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_2_4/#changes","title":"Changes","text":"
  • Fixed a bug #244 that caused incorrect subset and transformer inheritance behavior. See the merge request #245.
"},{"location":"release_notes/greenmask_0_2_4/#full-changelog-v023v024","title":"Full Changelog: v0.2.3...v0.2.4","text":""},{"location":"release_notes/greenmask_0_2_4/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"},{"location":"release_notes/greenmask_0_2_5/","title":"Greenmask 0.2.5","text":"

This release introduces bug fixes.

"},{"location":"release_notes/greenmask_0_2_5/#changes","title":"Changes","text":"
  • Fixed a bug where a subset query was not generated when provided #247.
"},{"location":"release_notes/greenmask_0_2_5/#full-changelog-v024v025","title":"Full Changelog: v0.2.4...v0.2.5","text":""},{"location":"release_notes/greenmask_0_2_5/#links","title":"Links","text":"

Feel free to reach out to us if you have any questions or need assistance:

  • Greenmask Roadmap
  • Email
  • Twitter
  • Telegram
  • Discord
  • DockerHub
"}]} \ No newline at end of file diff --git a/v0.2.5/sitemap.xml b/v0.2.5/sitemap.xml new file mode 100644 index 00000000..45182b0f --- /dev/null +++ b/v0.2.5/sitemap.xml @@ -0,0 +1,403 @@ + + + + https://docs.greenmask.io/v0.2.5/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/architecture/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/configuration/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/database_subset/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/installation/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/playground/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/dynamic_parameters/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/parameters_templating/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/transformation_condition/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/transformation_engines/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/transformation_inheritance/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/json/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/template/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/template_record/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/core_functions/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/advanced_transformers/custom_functions/faker_function/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/cmd/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/dict/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/hash/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/masking/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/noise_date/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/noise_float/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/noise_int/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/noise_numeric/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_amount_with_currency/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_bool/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_cc_number/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_cc_type/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_century/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_choice/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_currency/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_date/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_day_of_month/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_day_of_week/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_domain_name/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_e164_phone_number/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_email/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_float/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_int/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_ip/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_latitude/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_longitude/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_mac/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_month_name/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_numeric/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_paragraph/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_password/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_person/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_phone_number/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_sentence/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_string/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_timezone/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_toll_free_phone_number/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_unix_timestamp/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_url/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_username/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_uuid/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_word/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/random_year_string/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/real_address/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/regexp_replace/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/replace/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/built_in_transformers/standard_transformers/set_null/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/delete/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/dump/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/list-dumps/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/list-transformers/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/restore/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/show-dump/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/show-transformer/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/commands/validate/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_0/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_0_beta/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_1/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_10/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_11/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_12/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_13/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_14/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_2/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_3/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_4/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_5/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_6/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_7/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_8/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_1_9/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_0/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_0_b1/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_0_b2/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_1/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_2/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_3/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_4/ + 2024-11-16 + + + https://docs.greenmask.io/v0.2.5/release_notes/greenmask_0_2_5/ + 2024-11-16 + + \ No newline at end of file diff --git a/v0.2.5/sitemap.xml.gz b/v0.2.5/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..ff082ebaa9beb93303806b9975ee60dcfc93dd51 GIT binary patch literal 841 zcmV-P1GfAhiwFpS;5TOi|8r?{Wo=<_E_iKh0M**fa@sHu0N{I`g5eIvgrrG_kXxUi zJ!^!t*lP6S(Mk~d^py#rIWU<{d(bWyY>#YxBdxWP?e+7kvy(kUG{HYj+xcQT0k48K zzI&Sf`2KD7Fn!+KtaG#oX;KP%e46$t4PTq)a5&7-Bye)Td5B$usxLd(oDVjO`QvnR zGbz9E0&iQV-`WPX8LxunGCC-ncM-ssb6@5rH2cMTIlpVx%~MO7rRP1LWSy8@H^AxC{yW;3iWH5XVpYf~w_{|X4cGaisC&-fmqNzyAILzH?ydNj>D_qy&U5(>fV#PiJzOqe2q3Q-f+ zs*EW(vCCeK_Y-pCmL>+i`kj1%c-beTFOx2>Wh6R)UDqk6i3_z+i8!&B*b^s?r&5~F zU03>G%DPEY%2uC2cQ(kxLTWq@r_W`_DB{+#txH0ZuB>sBIGEH6m16|2jy&Ys5G)U= zQe#YPA+q77;{Z&s;8TuFLRR&`C@u}lYA|4sZZFcK2s`0|PdzK~0pNuRI5=5O@X|4f z325(EV(5bhR*3>iGc!rS9A>#^D*b8hJ9OaT9Nz+@teK1jHu#Pa*GVP|om0YPloMF3 zBFFb`U6e!5g^PHg^nm_zZP_OOg!tXcZW4oK0STVVsti-4{{-}GO~%2m5)MqX!CJ8^ z*J2pM*_+o>bC*(%$*inY!vu;D`Ai#fHcZkQp9Fja8JUc{Agz#EM?fS`?cj9~5e6&i zXI~adgjCX&wN<`Xb*_-GX4M)jB&aILRkH7;erqtzMg&$@RQ`PAf+-_m3bATbU>^>% z+M#hmeCU*#mc6v5(hHkd#)$E=b{`U8b15Mfq7@5j9

L8!E9XSd|gXr^~1ZDT5>g( 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 Vzx4I7F9W&3*R%|-@5HQ literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_8.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fa5417a0684147e4bc5e96eb6fae1e0a296a6b97 GIT binary patch literal 31942 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 XI7cikT>sgPmg!}Us}~B-TZjBFkK!&Q literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_1_9.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_1_9.png new file mode 100644 index 0000000000000000000000000000000000000000..a890040e5f482f2b80f2d3e50cc60886095d707c GIT binary patch literal 31701 zcmeFZXHb*<7X^r2kzxT65O@^@0RfewQdI<`*AS$NfRs>_P9R_d6a`e8^xi@Vy$4VP z1f&x}3yAcD5Gf&&5ZGUQU;q1I_v6m&hh1heJi~-1`L%n`J@=gFjlQlrD>Dx>6B84w z#{GMSOiTw$nV9zb96b#FqIWyMf{7_0S>xUvW4~k~&Nt8qOW#|ox!4_`ca@jrF$sO_ z;(MlJ7oR_t&e9ml)uBuUWD{$eBP(^1gmk_+-~aaN;N7z}By=8k`(fV3nkxiK*nze< zh1Dt->m=;P+7td6v&AXTOWT@oLULc(vU~H^QShnYr}T0F%=h0*rhN8&Xa2ps62Wx* z->W#aXNUg1(h_Xh|L5vi&dG=S{#>;T9tA^S{5*6zX!`F}sr3FU|6ZB${QtN6|Ipl> z=^y9&v+yn9AA>h2BdhzzOWz4742)YkLeD<`e|I7(pN*_CJqrzyKLGh%=kD*yzP(6- zER?u}@b7bE_mK#^CwNM3cvO}`$5yR;?=-<1Y|O}kgW6wx@*(#Lo*%imI)r zc+)#OsCSg4o`h5dV{(at3M9h`Ax}Vq^UPp0!j7?>o>Lsq_mu6Zx zFmF@|iW!k|_^|60d2?HSX6f;c$Bv!PNW_V&)_4j~z zJZo!_;7^N3$Zu9f2yo-Mz+yZR6l`(M?x3<`Bs;VX3>`mVNsnH<;5^Myq%=@w_I^+= z_^h&}9&x%L&BZ!zP_qeh$Skq-v5}X4Y3SiYFvq};`~+oV;SEnRhE^IDOw7HwCx2!%fvW%6#QRU;yVuLrTayw~Y=1)W8 zPxDPI$tqsRstR0Hq+)t?sB6{U-c!9o%LScM?Xa}wiCKcwI;L>hc~^s`z` z!@yb~h{DgfIi9+=93NWbVMdkQkXF*ra*&L{J>Kv{F?}KzUNhQU9)4boV?E0;_r!55 zIVAK;A%X5VcTiF3iC;?d9xdhp<1e%-$97_U#~k4x7|^qJn}a5b{HyY&6f*aZDjacb zsp@oC<r7`SJB_U7FKwx=7b9pX5amk%^l zk-9F;$Hf=G{9@dQBSw@h{vYJ|&jP~Q*oM3)v5M^c_N@Ro1p$8<7*lVBaVpkmz7rkEcSdavx|} z4^?Y%R|R?AZl0>s5L=ka0$UWevrwp_2C_uYT%gT!lN7y;?S?$|)e%&OE{0w09jZ)G z;^sXHh5H9*;OF{4L_#UaBTfiS&SbXa#JVb?ppgQ@!I3N2t_f1?Z2bu_>6U^pD%)Um zL(TB$R>v`^#w|onk#SA)UMMtU%X)Rvl%Df7CZS%5|G1|dIe0b?w!3~Qx9=pF|J%4v zcTK|%p{WJ7jy!?u&WORoQpdfBk~ zmXEiwx)019!uDriH6uUvOTTMDzC_hS<;$;=-Nx786MTK$1G(S5P)=Hcr{$e}x7uKP zTad3l-EGHt_7*Ng++Ru;h)T>q#wXwHPL_no^1a)o~XxH^F|d&(YHJe*4{iX5bgpxeAmEq8L8&Sha^2a)G;bGEQm{20`itcm&ciVXz5=pi>~ zkZPUo+@hoB!XdQR%I#>VG>!f{X_IJUi>}^#N|HsuhVVkf2J!X#W)XTlh)nE}Z9tE+M+@S}7O_nZm;^Fp> z(y_pi9)J4Wj9QiT?-}!OHs+EtqK8wf*h#fRhn;jO9O4Py(1`h&hER1(t)+))?U}x0 z)EhoDZS<0Yq2(7rkX^!qZhE}nH>)y+NhTLlYImp7j1^T0VlUN~DYNeDX80x}(^qG* zH-}!t1W~8rs;D^cA%Fa-(;S&)8Yz`?Bk~xLE1B)2dewUc=J#ThVh64DiuUyT&W&f$ zXe`6ZdA){y#ff$xEMo+(o29Kv>04XW+})F_%$xH3J^P9qUP}50Bhf0b^yKmdITJ*t zEg6K`arp9!RqO2%U9P$9N$hC0F8pb`1$paa;>B05M9*I|o|X3+sR@l35bI#aza=P1 zL(&+bl*)pdQt&pOZraycSm@D>-rId~u1PW&M90ncB6&n)_A z232~e?A8aXr*ya$bl|v>vXym{Gf-^&^N{1BGIF{F15c?gdl~SVZ$U;h_hka6bLSlD z*KAU2yW?`gX;Gvt$H<2I7GWFSD=Bo@G|O3MJ1#q(w=DCalYP$AP49cwJksUuTi{Tb zU1(wUJ&Y$OYn8MI8UsqEJ@?7ghSjZr-oo{Z^;=7M&_ zNzzeBU>Lr+55>Ztvn_CCpoGx$%DH!Ud!v5f9Et>jOmT?FD>7o?XEn}n z(RByiT$t;H&u!MOA0t>e(}=ZBiOG{ypXuax;Uiu0t7MQ9xgORK+@l@vM+DmmZQPz{ zknYA@W$B2nBDp-D_CsNgJ&iQ-`zUt7rgu8{?5M@y@x{s^5YAxaMp|Id*|qsyr2|zy zQ*>t5C$ji0s19k;Qco{oz6wFeISzk_3AirHpMlVLv))9i(0q%o?jcT@Pn=Ph%y)Wt zviCOKez1p1shkMhZOY-N)GH{GO%RB0OK|8N?@_GG6x49Bgwb-}J2mBmUvzh)@3^_hlgNXX#j_*Vca2FJv_%5cL1fRwEAm zSq0kY-VGZ#x-X3}N!}d@&4?|8WhtJZ>WOYTz{FH}X8#p|dUZA0WYBfxya!RdoM-1` zJhVQF79y2Tgx*SlBNhTtB4XrYUN<*?zN=GuDG*E|!F2;>Q_W;Grny%YALUmcbx7~i zAHY5hR`hX33yh;YMqQ{QrPq{#DI}*FrzaMf*sbp$FAzJM<~Al)!PlUInAjM(_Ve8Y zTFHXLI0iPB5DniLHsI^q2(n_Jue6BN;UBjwFp@%6?o;si{mwX2-tl!W8qGbwa=kr; z#}LhvL5caHI3|<#-Y4Squ-1(LWfRtIu)VGNY=RY6%_Xe*@tacA+DLwyFQq?J z42UL`j)$YTdbX)-AbpyBy1S%emrhF0PX9uYj$JUEU;E}((Mi`Reka_aV}vpjsGa1G zN}a5FfJ#%iP}7lR@P?0ESZ3thxG#d0ZNN7)ij35nCDAb^3njzuzOExQ2VLYOaipd8 zAU$x?4mGYaB<~wPE>r5HCum1Zzer8A_P{@zh@|#d2K#h z7wsBW7P4yQmd6mxiRKOPDE%e=lR5s1M(Aqg>a7EczJ4eLWKh=LX3PV4wsp^d*l{E3 z@>_z5h1eBEk-9?o2=hJmc{|vkxuj)bnqBm!n1I;4;-LHMrUrkVmx6hxRK5UM8xqdU zf-F>-wHtU3m3qV!#Bbr2NFWS%NqoccuOp8p+J}YqE&ULq5DA8YuwgI=`0xPOa znkcE!jhOc4xY=#2{`*tA+afFGpw{uz+CGe4=kd%~F8*h^$}3N6q-4dIZ`^+5g_MY6x@b1n0_8eNc}mO$6s-iOp3` zRlAMuw5ni%uFjGAcb;-yq(zQXznV9GYd4>#j^tvncP|8!P}QPQ>J{ z+ri$BY>O5n%P$m&X20)8OsF0?ROspVYVa*H%9S@ZW<`e84!WhP7~n^$3WnC=sQA#R z%71dKBR<#w@DzHhLqmyLh%6B~Sg>ppcpG6G&pdWdqm^7L~CSy!3WT8+61GKgzzx)&8bjOBAB`B4vC4axe{$x+n<3b?Eac~_pgyGxn5*4N<}Nu#nbU@`WrzwtteaUR$1_>XHa z+QeLfRn|d;kNj5XVFv`i@sS(sC1z%}6OE~eMz@;vK(mNncqD-Tbmv7OIt*VdQ{6{O zfQz>{uXdo7jO6{J^5s57TM9PTBfDk?;@&Rj9w>^dx3VPNU$u|$qu)}LefX*AMqo0C z9sallQBZ12vYpG257@%s#HNOGzi;w1*KF60)5b^Qw3kN5U=v3i^hS=NO2AEvRc?We zZv#rtL`P$-b2M)Onq+a&uz-&{CX?F}<{}UsGwDL#zG_w&Lc}YjkJ56T0Xapni@Ml4jvCZ}wn|Cizzm7bJpZmZTT#Q@g7;X_{&+{U_mteLP$vu@#mOQp(Z;!WPUJ}mE=K6%JnB^>~BdL+bdsRD4NRU{rc^z_xiXoDF{eW z(7jPVZ@{tKd#InK%mK>!Wieh8d|lGx0J@vs-7ucQe^S5qVYE8fmI~n%uprJ982GzVAs@hbcdx1y(Gl&rNj#h=&Odsuf^ioX6xqb%G~BE*u* z=O)p|`&g8**&VAwg;nS_wL#%yKwT$ICNrl*63mcRUvmGTlrYCC%P>(9PRM9_>FpWM zZxxLB9LXe}ddnJNwYylg{G(}=G^#fIsvcQFHK?=K2|m}e?%ka7y_-C-n*`T!(dtmL zHvUm1-an)7_-ts=*r>44>K7y9kBb3Ng{SJ{ZU{BC8%t?Wi6uRZmrQkW{j3r|i#Qa5 zS?a22y2J-8r_vT>cbpd#!)fml^WE8bVSbSM@m){5G(aLyJ7N;7s+>yVPjP0YMWq(G zv+-peF+t~1v?CL@XTBYSlfFMiLAKs`1SqhMT&j5Shi9qE?Wmh{n}@~#e&l{UPg!O% zisyEdnwAA>n7B@ruMbidr`KA~6WkkexY8XX2wEQs@1ppXv!PJ}gU?0}0u-#RQvgYC z0>v-?eZKtQV8gT}yC&b#)7)pX=SqLU-!@xgBu6NY$(3IeR1g$lYe7w3(MMBfcN>MO zV{IFd$hi-`51wCj=wa%1MsYQQ*!65H9Dw^|@$Zzn74mPk2{PgY-65L4LLlXO75`F16bK%a~ZyGIe^h_k+H4#l8hl2u(x8MU)jHuBP z@fMsGV}Av+=%A6p(hW5F$P!fk28Q;yyv}YrpBEs8cNybC<`TQ8*QjO+Hud{zTqcb+ zTqF*eUt3}isK(FR9`UaKhctfV6{Gxs#i(0?t*uxUoR>P@Y&3A^GtYEJw9qAA3}7;> zykX~LlY*3Yg;>pZEMC$qy_Ixq<-Cw(^_cY9dvpMn=uZe85%`IS5+9u_8dhTRRw$6B zvH9Xrfml;mNe5aY9Dw(6+{oO*n zkQsfH4<;^q0iuj5VSiop8~&Lf56}+kXes^|{*8*&J`)B&b8ESpR_HHNWBDKfUNllZ znxUHqux#5Y8ceUmI${~QH&LN8JyAaLtI0X)lt^LGaKe{BfaI26R^)90R+qX93VLJG zE_{AL-ucQ~CBS?dJip^TVi%oF=}R59?4BOBrH26mwPyG?&NnP-NIoyhN!=uOCTQBR z+On&kPtkc7Jv~wkO$jE{cr7nix$eyu!Kz{tX-`poU`Kgbr|pxe#!aDXg3zAP1@wd& zu!jaF#jN&?yz5o8s~N-7@1Ac_C!Y5$KE!{94@csB*n=N8y5YNQKsvIEV&^W7%$VBO zk!edKxD1`zvhExNt0z+p0s?)!QbTITpAl2|7j0kR2F%EF|K}tzxW5`bfsF^p36iJX zN4~@ac~`$Z&Srr9b-$Ui2nOG%lpg^KRT7&3)FBCwTFPgyO)VM=2b21o6R*=U0*Vr*FT`{ zcEbXTSZ>ORjKN}F8`ID6N6+mQ4D2>FU6G%)pp)G?T#`!1q56HK?&pu*!1P`^%gS%QkUG<8F^~uDdVmBBZnaWQzG?w>7Qhz># z3??k*onjgt;R1@`?Bk$B{lm1mH^dD5o59fx7*Y`wA&s(?Y_V z)50!YTz1G3qV4GWp~>8fUIcF$Uj|VLn09IxH5RKzxR2SVlD3pM-2}pCqe*R154qFv zBf#ismK)Evg75=8RVZrPS3_4z zw+c?hYYCo`$8%)~2Z-BRgJlHSw1hq}9Tia4eF+Q`8#cCg<7wz_(8G98<;OtGilVpc z#$yo%fd3o>%mGggB8Ym992J4(6^_dP2FU=ykxG3(P~X{iT=)KNb5o#~l8$`Eb(!*! z`vr`o#cf$nV1%n5n$_VJoPY_%M)9E7jcEhh08p!p z^aS4q^{Jybm3uxWoU)hV>tT2cUJcB^>0NSH-bYpC~V{3jpX(2yY zyD=_V4k>1zgXiNb6o@>FI*Bc&`eF(@V7lT}KM98z=q4R~p#|9y;3T}+fu7jx$*^q< zx>0OY!z19sTP{y~6iwSe_rPS(p1$79Z}ZFO3lfTW@g0R*b%j$&=-U->O}Sl!+&;$A zx8XOXd+=tS;iIo#vB_;OOI`*g@aKK|$R*O=^dnz{eccC&+|bS(`-1?j*h3glpOCP> z3>XGLa!Y5}I-oM^K%l*5%t8e~m;M<0nC{}$V<0kpR?f^lO=&^q?r|A}cdPoi52aOx zzxjzndeDtkA-db74!N2>wndgPDTYOM&;fJIs+G^JDXzWj>w0eqR479zr39hhba5D? zn zNJ-kP>6C)G=&>9dYR^c3>l+Ze#%@5i4!a z`GwJ;>C|hwg%X#&nf=**5GAl(sx+J2)VQmHngE=uGa!-?a^C46eXdcjel&TXhjKNw zuO&6(&=10#b;QdiT;Mj;WHrS5h7WwTA9KP?Bq1RauKBpP0Gj$%Id@BU%w3azqH{RZ38Q_hHO_#OPU>h%uy%02`G(5A!Rc%Ia3kDuol)VBsg4} zB!Tz|ie8R+b(iSaB*ZXQ-8m$rBQc^w5aN&QLzR#C)9Ry2_6nr8ruawHKnpS|+uhZy zc&z&j!O?BD*;3LIidR=(L2Ya(`Kgd{`A`%e5T|%K$G2&Tmt}UhC(m^> zO?7QJnFaoQg087EH7sJZ{elFBZWizS0VI_+5dOOQ_CiPMZBD(_!k-#xJKEZi&e|za z?&!>q28s~5%rMO`AEU7r2~j;A6V<+Zb#m?bqSx}8br?^3?5xbGN8D>p>qI~la?&)9_`=Md z+nF+}T<2i`8b)&!H<=T*Kwio+(CEZ-a~A`mRa4Zm-ogY~H28>E8&iN;cGz4CsmO(% zgna{SIc|5Cmxm`Un^BU3zv&iRyng0oK4t1SDze1(KFVEWAxeKOUE@8U+S1D=$W z-nNZXKr!B~h(6-zclYC?mv@bqkp0ia9x!+_`06h!)^M%O#7A<4Fv*ZxDKfd9jo#Ex zpe0@`ACQCJT1CrTRMODMumMCkGCk7*bl9urAJtna2IY4a9(F@}-3eAM)w1SS0IdTQ z3wI6xF++fq(isP=>$QzWDw--Oet$V{B4BgmQ?@S19FTNeMz?*ATw=fjvA(?JZ9y6@ z3pahc7NkWlLU|iJu;mGEBCq-ISE0*SS_&G&uk&^HtR?2I7?6#>v|zrHnm@hEvy7hIV_&TSAfn)j9W}7LaDnsZQGGZ6 zgk+zF%$Lq*W`h74h`7I!-vDha@C=DK&Yx%wx+e>W(tDl_lo1Ci>z`2`JqEd>TDN7@ z^rzy=%%WBOlaq$6`oa}#eL6w`pqUi{UtdF}B+9x#6$Bj63Uamx(*<=lWJWkR4Qy-d zH2VsYLZ0mU6DDu-+DD(;zU1Nk7TTFTjCWlnsCB?gXlaFe!LBhM&8ycnZ+X0(|Naf~ zWBJOV)Lz5eCeK~wB|2^5J8V8by^@MQY4XvSlfNju_Zo63Av@e{4XORk7-IJt`6A_G zs}1atNfr&P$SW zQpRj`^hrVHb4ebTw4IJzd`r6V$79!EJ*W%J4wGK_JV(M@eMA=2 z&pAVjC$B-1EpsG0t*-j+Wgv(U@kvtf3AhXzm zHG3BW;Eq>cSIsdL7|yic{sSEEEz?JXOH9@(gG4_`X{Yx8(`lc6vkqhzlOtyQVJh=< z`GQ7k;X~Prmjj75Au9^v0ZyvjuN3*CTqJ5H%VtDVC!v>4Q;nk}8hFg=bQ+_|CoYCr zeh%mp!S@iEzkQ4C;7%7RA{=`Ai1|EIr4&OYLfvM++_Gvpo&JSbQt_j9Vs>D~{%yj3 zhnD=Wk#NFD19^8W8vY0u4u87)qI zRFRNEYspZVY=MB4Vf!t;HY^Y6J=MLWgo>f6K?H*Sd7QMgr`Dvb8UuNP7X zlF-(gn2Yn%x9a5r3$I^O{RNjzn)AB+%QQFBdRlZb!NotBO)CWYOBu)x9UZEz>eHXP zOAMw7O%*+`43PDsRlZPA++Fi1R!AG!kA?*w1*>*jYwh4oyFxFq^^_E5xwwLzL$>pH z9^pDsUWq4G@tQSu(VFTMLsis0Rf(~Ze!e`q(Hze5(il;+(fc*CJFlqT{fFMxNf%nq zn}=x42&_Q9b{!~()b8-selGWm*_X}-!mui%eUk;si4rTsAN&hgHGtq5A+n&-w4p*0 zPaNvloT(cU^-bDY0NfXoc=zLIu+Zs(+~IpeM?^o#TeL;fOt3Gm8>wg_*_uT~=OfvS zR1fA0OiD)ZfKr&Fh9cj}I&O#@baB zIF6iv2&sxtb0R!A;YC}V?yavNOi>61mH4$5(} znl@SLa$};RkSSEO2Y*5)@>6MU7<3=oA-j38^#~A+e0BN5(Do+Uujchq=2_-*h%|sXteT zJ0_c{;YFmC{>~m6^&ag|_);w3bl-8;GymyST~k^m#)!-le#ZNjZ{@n7xeio5 zb401aVx-ikb|G{#dh)YnZP$*Tw>x7T+W z!(~c;Dq3hfcFpWol(vDrhc?*}wQ$8~zVF4RvKU-DwD*5gB6 z2;!1)zx01^PZw$^UZ$09+X%G$eN&5!Y`po_&Z*9USKnHM#iL>cHQt~+I<7dFsCMoPcUK{?Ol6v^ZF|W%@ONUgO>kHtQ zTH1%dGPCISXLz+W*4{yS(d;*4ia(0H%KuMpeLG<0gYkTtzb^=wA#U-!I)-DX+@IoEX6WZ!Qvf&iQX@{I+9+l3$o3oK1n&IC5z+I86&8 zThp+)%a=baIwL(LtLyZSS~r29qiH+Ri7c)H|Ls=d>tdv4P;shTg+{pue9a`pMRB|Ngjmb@j-35% zyPmPhTpsgJ<(y?<&cEl@j7cx={yOpZKeaqr%*rRSk)o>2jRv0^2D9Jaz9qpWx@uiG z-}ru((+Waq6%Z`F{4>&dAL}$jO9@05+^fjk2(xv+KrE_!!rl`i`gi~yOS)P7Y*Wm` zsw=)@Oncx<)r(D*&-?#=N?3G|y=e zk-sf}_t_tP^6h}1ZVUY#k2e(UOJ#$LLhnBd(bGTh-i^wY{*k1FJ5j>85czSLqg!a~ zZMU7|<=8N$;}`x_)u+=-$L79?tfRvpn*S^n`|+shT-*G|6sF^UKZKXRL1*8CL*+8| z_!Lg(hhr|x3en;QU-{Dh`R@kk(uw(RA|IuspdO!S-`qF+>|n$bg@eWEr@6QhA+Wz& zMAGGBai-ztBSRBzzh_IkKNwwE+!k9OeIu?P;qb4%pZKP=Bwb}04ARW~kaCh;q4a~W zZX0O-hvVg3aaFhzY(f7U)X%4*03ye3XjiW}y#jf8&3La;&Brc!&O^*=ae3sH(v`P= zLt?v$K>^66JrNJr{mfAB8(K43h8{30_-pWoWyQ+v6Z<<4DIhmaA|)3Aw)ixJ+fS!?i#A!0{7KNZqRJ?hQV7`F$qORC+6~gsjMm=`m%Y^o@A^&j5W6 z_z_gt#}?wMAfz5wW?)*4)N_7Vbu;Ppc6UyCPRHzkbHdlF z|1Gs*{pJC)h8v~-{C$^5)KErgPY0*pMHP?gxk`m3V+iJ3(zuqg#B;*53Nhg(VDW%-(;8$+vNEl+$mk{KE9ur7_-<2aF*a z5OL!J-OKtv%CuDjYpqky@SP8>4*ffQy|XO(qoG;Mmcho%mG>h=!YsEMPpLMSYk)$9 zxhBi%?}z)!cG_0_0giGpQ`GZuI3e>K^8rcsn2o!U3j4mE&KKxA@n?G64*Ddm%uBRg zF_T=Z6Z7Wsc3&NPDVt@@#bfS_*uq$qhaH!uQh4qJ zI0ycTB5maw%%x&K(U#16zmLvv^8Du{GS#>V5 zA}txe=4l*tfdWH^ZI1T+8}Qw(^5>~McNz;vJdRj7WZ!e@(O8LfXMZkebF|XK10C`d ze0WtSY>xhSuy6dMm#*?WPeNoX0pl?jyW=jG(P2cNm4vEW6;Gl-w7mZcdiD8#lgAsw z09LjM;q*mkP}CKwT!~Ujpe}~JUye?M&U8~m)_aKW8ejaiuuQfvFsWc!s?{ZR-4A=t zMwZYGQG80uyT-fG|C^4DgNH9)6*s@OXIA`7ECeH%lUT2(0q!Llo(TPQV5IQhh=q|U z({&J`VtUH`6?78sEFF7t`L|=}-L2G1jW4XP?*G?gW9&I<-zOQ1Of>z96B^SLLx$O$ zwEE2c*E6x(!9H~4(n*WYsK0+<`hUiX^PgdZd>jN0>K6)2m56Tx=T6_Wj8PQWA0ITyAm0J{$F8jnD(M_eDT-7zaMd&wTNMgY#_mx0Zh(CXfQaMn8(ziq{PH z1`LW*h`*fQC370e&dI?fw+pvAqQnWBy*VW(KLCXx#P;LI*i)Q^sUHTyS=mfXZ>R6) zV~aJeH(v1&0bYo_;~w79lyKR{saT+#=ByVrYoNLI*0QB+>Q8^B8fz-69y~1aL!jA} zC{dLN?!mZY>nY^4uuz!lWx31u4W55SK51Y`+b7qrr*!pUdW*Cfns(|tPtoEc7h=f) zrhd_*r8`%^pf-DPRabM;7AV>fZGFIW`QALo>~WJZthv%B8X7V|)@Bb1dboywnENT( z=VxiTmR4dJ1>~jRwa*#we9}LP@8#~R{5(xSy8;ObkSuy1WgRMgwTD&%JPhEaM1Z(C zeM-*T*exort^xO$(E&M7aDe;}{|`Ab5?xJKYwY{^LS^$lkQ{+_9M6aTjNXY`L?6H) z;elxNdD*f0EOh}5!;Hea?x}J}Rdx2I+2ao8$O$GU)BXG6(q7$4p$?{hpf2=Z(>!{N zJQ1X_f4?*!-x)f~J@+px=p-MD<_WYa(4*6R0F-t+2-pwmKajLA7wQhqY zgL9c&MSEXYhAK~&-H{ZKU&>3ZMu6dfJ|&brmu(P;;6ZL-t12J;aRTAFbQa%OY= zOdZz@%Wx~=2w|q_Wfg-suJDfl?ZIERdi$74CH5ByF@sK1&K*HAdS-Tq$71^wAhAJt zmM=E{Owm4g4$e_csD^MWtKD#x2WV9TK5$0u5gHake!=kg%{XW~4!2{w`T?eg0K@6@3(J}8q3u&cu~G*c>%IfAsgxY0-?ye{0O-G~f3JbBAr>U< z@gnHfW6cTy2eo+qar7^P9@@h1DXyZ z*QB*QI7{^?mO~h`W%7 zn*!6D4c5FkY0ruEosQ$ctlHtj%dNogL~TGZ>^#rdr)Ir%t>*xj2KqhpJ~vRM03Y+CfxbX+huT3HiD3X*njkw->WfrY0S z3A>k_nkrXV)sXS~hd%nIty_}Ca}>~IG$}u7jGWr@cWt2AAfEm>+D5HA>L0M#acs!j zXmPc8JdE*n=~6jhwL2)3} zbSAppM@p;&1v_t?S=)-gnrFl~A4vJtp@bu8z$K##arUx+`4;wk0%6ITTLD?sa9*Rn zz|$828~ya>3kRvP7O5?rmDG`81>~lf@ZcI7183}p*v)r7g>-!XkTwF zJ~PqUUj0UrQ1s0S@ODOzWt{|o7z0LVV@Z(|)xY;J9f-l4)D~C6rMcU8{pRkWpUgcg z*L<5aEXl-F^n$7I0iT0S(QOq`XL~1*QgQDN@f$8&31f zny|gR!#L>-Iqa^_!@Po~&s2uJ?C__efT}&sI0o(9_hRq-zJ2x0eYY7x<4|?ZQ27Jo zXoJ(_9I`+n!|Z0#%JJp!_my#@iux^SoDygbT2K7`P=5uk$@mSvGZ6?|41s8e_j)e@ zNJX4~6Z)KXlHMj(zW5GYSNeISM~8@DbHM;h?pXhZssdV!j{U)Dm~PPWVL@FKLFemF zPnVkvP5D3YpSKTcxm^iHVU{X3#wA;}vo- z(XM`b42c(LR%(-3nV1UCw;;oCkB3O@IJrN&wsDQ= z%B#4?_|fNV>V;SM*qCm^ws)S{gihFTZ~+0XyEHrz13Wy`O?6VI?XR062G@$MCV6{o zgZhlg@7~Eyx`Ec7Vx_ZF)|6nX_;;*p_ZgsS`qqC9Q0@%H>rB%=riZErP06*WJ|@;T zdeRt%2`O=Ft6R?elRNcyECj+3y;8fI_;SaUfk$t~32;=EsWK~(|4 zEW!qZXr%s-Xzeijc0r6d2*`TbNulOU3rcYyv;>J%tGNX=O;1+#P??BhDc_I8^d(pVnu@Uf2dl1d*gGu2N+PR`@_z8d$d5DP?G-H@5LQjdO8 z?+nBL#NOJmpQ*+9@=vQUkVAP=VqB0!LD&@3$LY;96{yOWfJ)nu_M-1>(5!s3g8%|} zqNb^XreM1zPM~WRd`QJJ$AIlp;jYcUwo5~&G9P=(Vc^VzZM1ncpOXYW5e6#@{7j5C zQg;7Upy(BmyK4H;*kaibc$<1T=9Z0vQmY;89gQA?^8Zv%0XkXT5`IsO5GSDs8rWRq zh&M(+mIA6o$MvZ0C7n?dIFN@3bZS-aFB^~E6;Jv&D(cfmKX+IM}`%xCt(>7i#9jU{;IJuxRy9xP#D@STwtx;$Y>9V zNNa<+WUiDqHkda7ogILiVjdV~NBh??bfv{yl8z2OxuUG^kk5iY9Xn}tv)mdYlm-Jb zZH5pzLoNZJE1q-l`GBiWkjstryGZ=rH4G$3%YZ`lzDOxo(A!C`YQX$-TOKs}%x3GJ zcU-iK+^5o@Bd|dM$2|1&ZP2-%GJCpOxoo?i>ER*ZVZ3TC`LMGfE3}y#_ReyQi{Z3& zll>iP5BydUO|H*y5?HP#2gf~zLV+C>paLXHn<39z8Q}&|GI^HwTqekZKun6wNL~>- zWSY_{xOp4@4{oBN`EVOX86yRhjUXl0tKV~S&U0f}Q#1y_JTZ)UdkU52U|_klK@Jne zD8NuVZ%+pBAZS3O{dsRE1?!WP4UDfS;lmOAUn4E?E&{78#xOn>(bU_>&#YD(DmZABw;8|dYswb(J7!s<54OmmX;sIBm^Iu6%4^0I#baI$RKNFQ(mh=?daHO$?lW z_Y}F@#mE&*uJ+!m$%p~qGmF~f&D6_dGuAZLM%S?V9K1YwGW}EfLx!$DhM?APre3sC zn)u4v8V2>mvE9C;vDvJHe{EqlQ#adx|{qtC~j@)B= zNUYM$08N0FoV}8OP)d{SI8?2y?7}Zl${gDl#}1~41yShD$Z_MrIZp1OgpH|$S)kVq zWv-ZTm1Wgh>USABnswmiMF@7n4AFt$0n)am>R3p-Qt#MBP>@_!yycd7cmED;m=#nV zW4kJhGK0F13jv!ssCjh{PMlW=e8b9Y0K{EM*#Z&C`Du}EY&Xh^aJ6e z%ZGxePd}f>?(Q+%3~9s2*0%{mu|A22D7)o|f|&so!Q_s%s4Zwt4}8(lAd14>VnUQp=E{ zh9t2t^A3W_M6$Qm5-0#P*-=)=)?4vO^EY>|%N9ffFjl?1m1aq60&?9A+bAAk5M9f# z^d8wz{2@^Yx8C!1YZ#q1oTWvxD zzSBUbnPtKY^D-=-x`k-$>^RJnUIiSb5ADWrWGkhh{yxQmg35iACImZ3|apKS@kzqPl9IjcL_P8;E4SQz- z)HDL_=Dx1xz+6+D;@e#RN}Wpg0|i#TXcR-%v{T;9u(C@Hxk)MB{eCnFndcov?AHLr zO^K9_DUOT;R;e>RpC%p^egVfRKjk?8z^s5I7HE&KpE;T1>oDzFo7x9y9xXGF z8i|z?|uMaz-(T{*geAxpPz|X>sou+B_b&^oO^5f zmD-U*1oqjyq{LG*ZgU)87|$<|A_XzfTOdmX7Q@I39<4A01Uta1T_EEtt>@>B z0XzdkVv?%l*yLAgj3Ze`CKx)fmM&bsDtm`O3cPJJ9rOSQue3?R-);CWMJA+3bD8aa7+Zn#wya_C=4jO^g@40TRJHJSsA6-^G z6uQ3%h-vxmwu(Pcc1DQ3ONDh`IPj9i`iN)uj?|%{?=tTJG1otG66~`Dl^!4j7B{@S z%@_#nh_9gA>Yz%i_Q(zA??;OOlrZz`pyPQ40tN7d>ka1NXJ}59dI7hhLKVRAR!b~8 zY5x^G*KS%a31#Bxkg>i&M)0{wj5DG(we|7P z&x8#fosf^nygudf1%xuC>l5|Nt^BtGk}vTdo%hh6BW*@lN*`*^3EOkL`&Rf%?-|7L z5yV{T4ydF|1~*?w5VgT`GE@`%RLTX#D!Adc2=LgEZ*Jx71}dtPS^HmBK3Y{QK1H>V z0XA{E%jTRA5o8Z_+sb=>mmpDg+XLT@^}ydPu%Svc--HkJ0yk6{P2vl8zCdCl$&E0g z75wQcu21oL3D64fD*5LYR4el;KBzfs!IE`r2Y6@WL>B0IZ*C-|jsz-5ssl@yQ<+nj z_cbYxqVz9*Oh4Wxs2a+J@+A2jhFv$Bz1FgjRx=eMl-gYO`7`S@cv#SJ!4~ADOXHI@ zMgcqe?>E$j`i~YZ=Jl0*tqD=)moYf4bEPi`5^#&X&>y6cnamy&%;1om(va`#nRKP= zSMP&(S=^S#Ix;_0aDWvncJ4${Iw|Vxw6@}PA;7$WXKqmKZJy=+{@HSpK}O|{TLJA0 z&@{vvftIJX&PjnsJ7y0bA54?HBr$ua*Y?HHQ{xAu+K5>%-UVym-zFRq|Nidm0j3ts zqovN*c%_p!jl?5(H4ud-ltAKKph(v?>PnSqz#oqnhnghRBhkrWoFNAfItKMA72_gg zMZlIgS8@-2L<#b=><%KR64|QlqDdBlf=c&_JuVF?605DYvPVlNIs0JoeAZz-1 z9fdf*Pq)=|rz)|auI)(!x`BFdt8G!jP6` zrmq1biPR|Et~5KKtfRet*hnr}W?6U^#+s z0x<$`W-NO=DA>Q^!vJd5+R32Am0phcKiWIZn@|7%h2lGc|L;Zvf}P}UHNqGYmV z-%=6Aj3taLqf#WHO<9wD88Z|^c2blj`_eEZ$xdP{!|;7vz2EQu;Cs&Je9q~IetDfb zubJmu&uh6aw`)Z}g$2vd@=AAG5GtsxN|@D2Vx9m126nH2AP|=mrJ89T0mujrq8wj% z_GYwC8UUsSreLSbSKXhfZfqKV0x~3jA)hq}UkO6T8`|AePZ7;4dW-a9rQ7^hNpSEW zDHCEcJ8X`K5L=*DA>i=A$LT3#AWlpN=H&`Z%0Ae^b!D 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_2_0.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_2_0.png new file mode 100644 index 0000000000000000000000000000000000000000..9485ab33f0d94154b805ffe761689154853ca21a GIT binary patch literal 31130 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_2_0_b1.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_2_0_b1.png new file mode 100644 index 0000000000000000000000000000000000000000..f622b4b65a928f2b7603b739383e1514afb3fd35 GIT binary patch literal 32557 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 GqyGWeZG;&B literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_2_1.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f6e76ce756439fd307bf19e268c0825f5cc1a7 GIT binary patch literal 31328 zcmeFZcTiL98wH33^+N#*SU^BUx`0TNt|A~^N&qPVMd?kd5CSR!iULXzrS}p_=siI} zx^zP5i1dU`LLecqZ~XjzJG1-m&g>t%%w*L zAKcfcqdQtmM|ar!#4+%W?j4vp9i1Pa`u)3xFA`TKeEbct)Ps$x>zy!HC#hp)q{*Xa zA6$HOD!%VSwzhF?Yn3+1Wi)_-uhJgyyxygwd|3U&=@YL`Z%@MFAKx6dVs|zBOr$iu zdZNimGOa{*;dfu$j&v*ZSgVQh=RtXOFANi~mawDXhrypo45~uz-$S~=P`Z=<9)4DR zN&oMWCil0)e~w;eov}Lf=jdDi32^PSKP&sACjTB4OB}xO?~w`Hq4WP9-3b5xPxt?! zu{&wE!t`h2tyBaWe6uU+UP>)DGAG-uh?EO`_xycbDVeq3%|Df{t1?UI#U(CzHc$%=g%3J!|qYGARCN*%s&oJqZB9PF;4Sx(yIDeRHW!A5cn#+LREt%~%n7JPxHWc#d6{#qI5jARh% z@Ty%$RNC4up*~of2Fz!UbLyTXoE5%$^}3;WUFK4Rh{B+>6!hKI$6*Yo`eQfspRr!B zx9wIz!8hL;*(QI^M|AX}lf3I}yjJpjCk76}T)a%UbjXNXVbZ5KK*k{|>RwZQz=d-x1z%FFh+z>J zls%jfT4F#XpgG9xl@)@8vt|~lSu##iD#z&^-5wSnYvo(oKnHpKc1T8}1F|NSJW4C- zLV4ewI@OO<)$U)QFzS75nkG`1(x!2z*^1KsY4@vNvwFrdi|=$awrd_S2p>I|Q1HVu zTf6F2wb>!3nvaF@OWnTDeO7MK@raroHQ0mPQOjJurr~X%OA9=Aj+`iF`&B+h>?oHZ z8}^{XUCzzAEy^jY+MDJS#aHflsahX8|M5I)#B-4{a}mH=QW(lOKhpaxP+e z9P7qr`q*2U9l+3Z2ng%B+kH9K%(vtLKQ7dG$z-O|I?8}Jx8Fp-Qsqn$W8bvrRt(gL z%dadXE9r-waOW=-QefKyZ(?+y&ik%=g?^$l)eM3iW{3p4bWtK#_I}Af(6KU&Fv9Y_ z#VBkpYO|wrP)1&(%4ewvd~b`q`73fJ+hHTmx8w; z;BmFXXPvAFD6?#sEYTCPnaY`d$KkLyj}KBkZFQ(?*8K4+qomID-8x(5<$k1^?htcG zcwvcx$nE>g+qeZ*|L?W_@UO)r_e$P+YAJ&StF)6s4mN_Lw}E+WphJe#`CR!eE8DL@ zZq)I`Jc|TJC(2BSU=Xu+4osC>@q|55@cwR zH<#Vu1m4XxQW31r)e34KMic(V7*iAzi~G)eAs;cMVQa4^2Avu{Vs}YtbhCtMcK(I4 z>raP};)sBf4d~c@xsPMvI<7&nL%y&|=koTbqCkaac%afa?4^EVJ(B1nYH7G27!)X1 zY|t=_o^+&)uc8L!c)M-cX>+d)=3aIO0jp4u(|j);ff-vh2`G}XdFH2W#+E#Mx6WMz zdQgSDR+%80j2%`HwKus}8X*6qzQt>iKW8E>E@F8Ai-n0+DQ0;1Oibmcv|P^;l$5{c zouDm~#WM<%G1JuL!fL8*vkSg;^bSN>|MuK@B|11<`D^FuMAfE+*Soj<=Z=IdRq9M& zc&_QE9nzVLiM2B@%1)kaP{xZUZjGiODf2U1wi0s_SeDgOgK=bL4DI@bWR1>rU$M9$ z&>vFZ;paCM!8ZM5;q3!>$<)IxTzq!-89fH~+c6OHOyZ*jLXN^%`NC$F>Vzou$vIEm z$jSK0nmXBFH9@iKhI0@XS}+^SI_WpFb5&Rg)-P0DAly6MJ23&nuW~N2#eXdL@$sh2 zinm1}KXxO(W;DhNio85AHOtx+ptOA+?gL`RO5k`IWNM_kR-NMVUOoy$=V?i50oqi9 zDM8zZv{+aNBMhzoU;^_iQrDH;`HV-_jYlp2mN;QA4b>qe>bSn6?K{pqeo#%`{UYU~ zy>#JVfqXE9o@GoCT4B^(PHm+y4GDA93G&=9=ZuVbWS$z?lY$wbc=MO#-r0=|tW!-0 zygXhg8c@GSZYXp^xewPjxaPSTV|-!iroO8&$9`by55gSjp^@8Qhr2v)5i3NwRZhYW zT(CB@5ktn>D-FOtqN{c@{KhIXYbIbzp9rsL)Bo;jS_hJU;Pd+ngymOB;n1%oQf1it zf$}L-FNGrKJLc(Vg%>f|nclQ0!C*co`#B}wNAYXA`LesDgOU*(wN9b{g!Xdi&da%= zCY!BC(hFVZLfJ3@`^Q~{WcjOGDm$|nk@qjMUd()CF;MQ-G9mdnbnP-HWX4+7VE?>G0;=ZJw4%gAZG>)z5JDA)Lp8|_cKkh9*T(A(CY(jdq@9S2@ zxs0(4Op#Zfu5gI*djG))Bm#J?aUk4xg@HQrYt^r38ib{#>B%F8b*BPTo6_Dcn$U7n z&H%-+Gi%GwZSF~uU>m6h*{7c8=R4{|B%F!A{^pG!NT1fxayXD1mMW}|6Xq(oz94!C zHRvFCi1B+J&ORU4#&ukLz57~2!(%MNbS#ROh9*_V<5>gz zVQu`vGH`PhuMdrW)9Z?;hdsN^N9i5!7Ya;85gfRUSZ)*+44UyV&do_xDWby*gcTz&sS zE%$eH{()kHl-rwmRKr6#*PXKn8OlNrUe%)>eT0s#{CxIlaxc%dj{J*t*PZKPFuB_o zG{d~EuW5v*fX%>IsmU1GD>N|wf?m<3Cs6IuDeVVCMY}1)U7PYso#{`eVid)$C z=RH(|BX5>>Ukcwi&P$|%>iv^NTWe|j*M6;p#h5@wN{*9xF`&3E;W1-55q{3>pFb8% zq>u~dbBJOrKg`9iUmaPXmR;?HJvv03A}R3LzXyC@P!%};m$3(Eza4O!H+5JPfmp=Znr2@I7RK-=91o~jb2N9 zrKqf8*-9lYwi5&F8d@HgErI2{yEoC0J)ZXJ`MW>ayj*S}s>iiXE?5mmvUc5&ZRrG) z39shQ<;V69@Rcvlp5f>u1wa|Wy!NQ-*sWhKS~_Ru*Z-p0-c zc-1U7Wc-}>#OH|;*qd=K-{z3*n%x^4Ow~1Co7=NBl>faVw!uE8Fl6? zVe8X5lmoN&$}mKy&Y}oG#*f6*P53!rd4=0=7lk1N8QnCnkeFM65>c?BUdv<3 zGB?&^mE@P0iObWU;*{5*y=)nfI84TILe&vDue4z~LhXi0g=BWoNT4eo=J3MlBPqa4 z0|fUqX7-s11!TRJ(nO^W*Ry23)TW|$0!hSyGv`=lxZf0XSz_;t_t*wPBk{ktUl0Oe zRZA<;YF;%3_fhHA#HQ()`o`W34q1EuP#sCt#YaS9dX422sMAc39Qw@cg=yI!-rdL( zGa#VSCb`Z#P$r7H$oun>jFUx~{aGn4W;xQjmyK-n(he_s)5{%ZVZWSCTm4>?H7E1J zgR#05as%`HyxmH0ne2;$1=h3cQ(HS)DR;@;Ef}owHQG`Vj8qekL+3@_(zTrOz9Ov# z6Sc+vI+B7E>$*04CY4i9O!l|6L{s>x*>1$70&(gZnSy+ZcYpNma~C-V>wHiQd%tfx z5Qy)++<_`Epx+&pIVfSPde6jQ)VhA+*?Cszl+-nWW=FQR?!@Z&_EhF)&&bpGfM8P-d~&9 zts$?Qhj@1fY9%#tBVCyp-EbQLLBuj=jL?82X$G1C60zdRXMxWqj*}^`EU*Xg>uX_? zowtkT%GS1gSHt`CvH6ab7PYBjCoTH}T@v!|ZcK7RiL(-$~m|st9l??Zl*L@ zt5frA^6@};YyCzdTYgdFWSZjkn7)m-x`Dr&UAQwRBvjcQW^*?xHZ9-+&GMFc54EKmW0tzYY8QgLUm%h`qs??mM7G zH&m%>v{Z-kU~X7NR@QHpvK{&^8M-ARlwaNEI6}V7#eLPm?0E}J1>vRW(EDK1mlNQ5 zL>pvUl8sM_KU4K3ap+xBY0~X+tH3aGRvLPHT!FLWd9z1qvPMVtU1lcWa-<`;5MrCT zKP~bGFC6s$5_6>Be=I>Wj><=ITA+T|!Z{6(OEV))^{vMMF0Xf~+B8=U2cRag|18y^ zRh4SJxguHFgHH}n_~x+Mic*X=K&csWv~}g3fm#^MZP;x!YYiMS(zHOjc-~$s4MFYJ zbFN9>pW>2LwYZjE@8S_Y;DU{#Fb`M&IG)Vq!{h-v4?| zvN7Kg)J2O{tIv>*CeHs2|3K@$rjQUZ)WVF=Up^vP8L6RRU%9`Fuk9O0u7TpGFqq9m z5kytRs?hQ~k0&vT_qf#AzRsfbhdRn~aOPoSSi9`I(u0fZr2P-;l3Bt(o=)Sg83*^Y z=9fmeMj$2JSwcR|V7;xWNRWe2s`j1$rLOA2jpP=TvX#P9vS}r4yi~tQiq6_v#fqAl z;t+c)d)1TqE}On~?)aT9U@;fowJTM(9!(8^!+zhfQc7=p@DR5c5hWe*fa zIHtYT=gROh(^xs997RZryi!>s;i>JU*}4t++2E>GzeKGV#H%=>X+S}OPt|JIts-JB zH{q5x_eg{B5qWtyDJ4z&NnrrF|Pz%Lj?gD;sw0OEaeKF+*x1cX=@OUQ6*zedO;b~Q!sP%OYB@3!i2d$i)C5T z=QfJjf*fhX+P!0st+jv#s!6ZrWO0!k{i)7Xgu^U_&*1{@kVT^PaU!`S2zMbN)s|Nq zn`ugqqXD%v!afcWr;x@xHyX%1`#D z6fh+2PR5W}`Ard_)AI$FtRAfpUt@jf=z5`I!M&m4AU=t}6r^f4I?E^tpBfvzKv}tt znWB`%XAhP5f|7{p`QweO(g(xp2|=GacJr(2@t{{>gpEt-!ww+_KWi@F6FaU#0^MFv zwqc(6?X~v-=n>UUD!iiz208%M3_#eHYg5++K*3%0#7 zc))#!`LmoSk>2)(>`=(Ju4YBgd#^!ea(uMRlbk`yTpVgfIv&J2A*Z?)H>YCNeCEsv zyI-_4miluQBQ&>*q`hvhxhFMGn7u|8cW^~EG$7wOPY>(VO)Lnhue4$vkQY{{v|v46 zfAQ6vGU!M}-s*Y5>Wyx&RRWQ&#cxVWD$a?^D+BaloO3JN=ieU)|Hgxz!bj_%euqjr zYC?SF$xW-me#FH?pj>R&KQv7%KiKB<;-185>aLBY<&ah$dOj>};mvWlr(p{k8S{`T z8sY|^y6+=>k974EWZ{;CpiD&z&gjVRvou6PXcFdsmq+%pvpsS2QhwC}NJg`%ExzwN1O>WW+u>ZvqG30R86`6(T*8!}i#i^b#P z?TFSsxfR224XO3DVpmFk|DPKL(S&bh_M6M(D7XrGHe>U4G`!$gRoNk%QHysYo!G?P_QS;lNqz zXWu@l3qUjOXW|ytbFUxhhHsOI&z9`hYOQFq3>GAA+|u0bEvF9GuL{(*7d4BU;?>t` zI3Nu`)^m>fBd65;_)!f3k^shUv)bxP)@+*_?3&7~t#YCy`6pqJnt+mj!c8GPpulY( z-Wr)|-EPJ{sJ#=aJjHQq)R8izc_F?qaKF~2oJ5O0Zd<>jojC;a5rl9?E{6>c($FyH zqMO}!f-kM#ZTjN(Tb=W>?GQ*-=Es}iIy!whFru-Oc)_GcQSKcir`#{%t7U-1B|rjG zfLX;w%v&#+$JRKj?|HyJ#$q--=3D6dqKtH`3ZqK|wX$kwCAJThpiX$UQ=7QH| zbb62S*(gHUnRD;}{`$V!leS(IMoAx#d;DzrPr;ohI`A1@nYfo}#-3fSQx*^iRLFd2 zp8Qlo9fXe_I03!wk1LaOuq3{FhZR-R?)Q-{Eb>v3t^*6wzH3)J-d)-1S#NhbJ-kB?b!R-9O!^5U!bns zgs*6x#?-9T_^SuaL_3Uc2j`X1xE$A{+XVp1{H>jE=aocnU)?<*Z%)^oT50R z3b^&8KHCe2FplKx-4~J(bcgVRhADTHKHaguCC@;SQk`T%l7cE z(}hW-kDs4j#saY0AuI|3m|$Y0Fpf9Vb92=7Yn}d-$-(1{wTzfzxA3)JC@#w)qZmrT z!dxf7TQLxQ!T9`p4Q*!1%(C4h&M-B=P8s46i0e&`UfNWyF8cw>&Y^Uwzo1qYVH0f1oY zS{c$b6Sa64;QN(E`hW%#RK?>$vb^AMpP`SIe340u0FH0YJCMm_ z<_co6nxlLGXv0xmehQN(zL?>hDP_)hhXPaVfX0Ar@A#sD>~!%y7R+p z3js%j^l=)r~FK^YzL|B-;oG9W84aYdc(Fz4>?|xQvXeWv+LLK7AGe`pASO z!hZb6{&sxR1J%1|bV)$$H2T0B%ga$9S@FZAY^gb~jE#7A)u!@5qmuIx>OQEn(!52v zCXiDYgzx|uV<9z?bgiyXcXEFU$;EXiq^oTT8>d_oC+WO_r}0u55ULLAEGS1@vAz@J zj!|X;ASXjeW^)^hC%HtioyRy+=C=VQW@?{m( zP!9TZumJe+mkFwnSSQxlNhOi0wG@pir&vg7O@5|eW2isiGyt!*!^ zi5&y`Wt2ieI9>iBPIW*yn2N`V^nR*u39N(87YzbB3X+07NHdP$TsI5chIS7D&|v>A zGX5qyQKTLLGp;WLP<8Mc#gRG8LPXnQ&orpQY17|kL@j3lE(nE zz{IA2DDsfR6<&Z3N!D+8TbecKZ+#Z6S0v_(f%a|44?fJ7+ObiDJZBgDKv=l@w$a*( z_fuO*!SXGVq@KebZN`e?B8>Y6 z_XU%O&6>|C?p{hMiV{SPf(Fpnh{kf5`(P0;f&HE70`7 z(w0m9kx=aLeg$aRbmwK5!ls>~x2GnZ+hlVTkq62&8Ya<2K~hiv0*EArayieM0z9ARpDY;d&hEF+K@!T<%9gsaMDc>v@+GU+)>#AFhhk{x9=Ou zw1gf%RFbdXc+GGrufMNeh!*;3<)rOZLaD|9HJm~ryJr;`>K0J%C{5HtNtwhUP>)Go z5xM(Uj8NU5HD0RE@e@@L4p_m_k|0@w7ZrU}IB8H!SOI}EH~L2!Tj-g)3d>9NX??~K3m8rue$2s8A942HJ;+17 zA{w5gRbBm`;I-0)k=TmH3xSsB!U1arUuNg%Y)D5IndJefh+QBv4Skt4Y(5@}SdVV# zX};7-__?1%L?@g5U9%ZZQ8Nzj%q@OHZe2zBB~U{8N|M?47e)^(xw2+I7uM@X)IX6C zofTL&tURpyOz2A8ol5t(+2YQb;$OGV>k>~0sUsMejZ|7MLOgZ#RpMSicvTUCx9&r} z>$E>cGG#hRVZL}8$Yr`8YkMwWsfTn$px2h)n5?|g4y1aSbv!vl7f|lrO@&H62izbx zH30kB2=}RiC*;ji;iWAJkRq{be`#ubP+5*?nk^`hWit2XzYfW`#i~^z1Y)>D)fk>>Y1g%6L3>$I`53gXpKg`qYE|90^_-VL4S>~SHQ^+~OV&zKhQ%`y00!h1z zSp1sV|J?#IDfDQy`b7IuHRsQEkCmKP)RC2_iR_Qge5||O-t^`IQLQ6>+;gIPzupJ$a7@ru~53^Y!n-)r?*%(Pczkag{lo%)G#tSi-gFX^>`Cl3Gyt>a}p zcO2+O5~9z{5cTGl@Ir3@A^+t`RlBthzh~z^^vURgd{Tt|NNP7G;~fI`;JJLtUTcP~ z%U1jA+d83wwLH1$YEfY>?5W?PM;InNwZ2n&+M(u9j`ecSk3@C1xrp}<+jBVuIYyL= zV!q(c7_B03DItgJMh|n8F2wTVCO8;I%oT#sl1)N8TtJXkt_*O#D$pDtDSq1n4NR*; zC)Kv?d*(C|ZgsINY}w#l48Vz-rmMeR&{+B;$5_QG)>sGxbhUgxX_x?B32BEhiJl@ zm9e$HQgJ@Qk5N|Q`7QtloOScHuNJIC|H?@>dtKDcRTu{4Kqwbv*OS}~b*ntUJiH~5 z_@AzQ#VJb~gx@gBG6Ofo8mVdAS9oMr=j}(q39m?g$5T1V+rQmaZcG#wM>2QL?>}|O zRJj@4+i>v}J>ANOR&LfB!TPXpO@vQHy=%e2$MufXm61m{Qc55q_3QZ+&=CB1eZ*<= z=rR8FpU;}9b4OUaF6O4&ADR8d=hu$z~j7ihJ7`lS6ulCnjMlheVSke znn`AOkdC>g=zT;2^4?si=UMrkwNWnGto7>4A7UC2oCx#x34I-5vxGxs%;7Hc)d;eS zxIyDIs-8w`sBJ$~iM+2OGM?SLlCx(pJ7K{yvLaXy|H!a*@rLdLD=*80Yu~P#1#3>P zt?B*fpq4_a_t>kym%fNOl*%C+<)cz1>Z?qf4O;C5N+7_o8#=kYbqB;wUbzYA6yuVB zwCDSXfuK*q-aJh;C){Zh-FhiCwdn%OK@JIW6P6psw_Q|3|13Ks#*iZbV%WjKkzL=T z^EqF${@Trr3 z4IXtp4|JNn5zal`{oBh0L#s5=>E6#7&o(3dv_-76z~VZ+1t-H66pO$J*|tS&XRKLpnL)G^#Y;`{mXWbfy1^7~^Bfi=Mc)04?4a=9n} z8=M!A(kk8w^4_8Myr0o#+XChIMnlaLDH7&TdAqii8)ArXdSE=KdQ@n;CUUM?e|Yhe zPGy(|ZI7&4M;o%98zQU=eoK3~oFC@zn163OIkxq&>sQuuk7W#RgN`bQgN$28kF_OR z7JLZ|ELb#_YJ-~g5y${LAQnFr2w5g)cf5Hp!lrj)(nv3_be|)Z5^QG3$}w6l5ER8? zW!(E|E9_wE8N-N2wrq8&^hSNJ&0k$>?~u%L)I?D+qZ-S{ua33e5XK^n8rfDM(pFU) z2M4d2f@Gyr5x7nry-C}gTtSHk2#H6LcvbJZ#GF!aA3tL50>u;U0((V_yCWM#F3s~A77 zm^$YRMj~D(cEF#e3mRBwsSdUu{(0?R?PY3Gv4z>IVi}tWh*6%~{OMRCp5II*%ZW3x zXi`C+6|SFv9=*~__gBU{8a*HHwXo54Zm}1m8?Fa=QLLewmG|_CYdhw{G$b}K=X&}| z`Uj;y*KC*AAqeq)YebvAuV)PuM)PGl4R_0~D2)Cm3I=EE_7|KGtv^6)_SDPiTD`nim25aTHkN;+fE-pT z$KjsbVf3>B+X0=Ay6inNI^giu&g-uVyPQv(F+!ev-M` zoxX}#p?bt>sFJFc-VYAUVK($1EhU|u_&7wHy<&D_r^xbIRp&gy@TVr;5KWCad<)s; zyM&PMwh235bRpCB#QDFQ!%j(_b7Z{BM7qNzt}tEys+>-{brq(-7xKQaW8g=h6(>jo z+9QWX&-`~)=X}IN6{Ql^1cEAdttIatzTy9x?O%m^Ik%MYIc2W=8+*ocp9+6ApSt(p zzl~*45?2#n8H5l#05GdV#7Szz++{>lQ1KD{8ELuy&U^;;+}F`3%@h)=m180WpbRhU zZl3&6lhgk#z|byUHJ49okfUQ~LoE(nKz8Vvi;VnJeCOZwbEj^)WQ^sb#T7Gy?8!%I z$3Ayue;bfFt1`avzm0IR&LU#`noQZ|_0XEgJ*h~w$|0r_!3hT0fKPqK)e-+{@xd12 z9T5~{^}kZK5~9RZce$q7J-O~$WYX|q%nRN>d#^Y7_A-O)7Xh=c`9!1jGWAN0Xs_za z-t-)bqOix0#u%r6`TV!uxH&^Dx=;GLCwGe}hWFY;%O~SfhT0;WqRd@_S8rovTSK4y z7hJoC!LQa*V`|Q5aq8k(-FfP~JwSO`$SdXO?G{mP2q@^lf zU@4`1knesuw90tn?cYK3?wIl9cN!3*=R{wTF>^Of)!@F66<3W&azG2;alY4Due2KCP|BEQh~6 zgg|5>&LdvUdGfE@eZHnR%%}T4;yajoKioF6X} zUQO`AYBa?}3!}G|V{6~nN|ToFCTN$AupF(o+nxKnld9EUT=tgP3}f9I zXOnSf;NemkaE5S>$alp&8M#hB%(^kD6CCLOWt}1XuXE&^_K$PFK5pGhesZw;>9Vhi zzK8bI)(eM-`O=Y0y3oeBHOTBHN{ju?Re7^N(^cL60^mBES^n)5u6F3dp&M5}ue8LT zaz-#A6^C=$e08nG93pu(O9Cy0)u7M4-p=*$8651Lz6ICc67=7Ns)&rXvs!mMst-tMyG3^bvWK7#6gD zWO}YIy^FhRqB=fVYtU8;NM67`}e_S6XCAKi^~0=XAZT-2JF7o6k?reSfQ!Ev-U%GNROa-0*lOK7>C zgZngjgqT;Z742l=B<$ zhd@li6B=UwpfS)g1F#gP&$lz7GJbblQ{=A!`gwf9#R~|!X-Y?`0>wc!jx&sWJs0tQ z01BV-I>CrN&0}v9SB`IxGd4^GnuNvJjN|1(3r{?JP}+DPs0r<-;HL?PaF;k>a7x#D z;t{%Esz*%%&dz({fbJAO7NjO{_4=SIh4G&gH2$1ciBKD!50u}Y`4Uj&SO#1vyDJv~ z?RqNxa1hW;Srag?npjs)IrXCxf#bwyC6CsC0o^I8KgAE_M|hdy=OFxwDU=g0{$Pqt zqEz)|KMN2E5yS8Pc~z`7KB7LM90S6^l{k3Sad7Js(L-j;In2G8gCeCB-l24K#dL=Y zco{rz6JifF5vgg`du-;rXRWG$931846FEt1wV~1b%D_V+jTbvaXU7bjG(`*9KMjFE zs$oq|SWp$Im5`ywTuXbG56N5E&=mQrFR^-78Yw^^2jf!4%IBiY_J(N_0Z2&#s*7uB z2`*>4w*%&tRf$ber{S_>-bkc4P)n`EA3W-U2c}6qO>*3xk>mrS38nA`h$ZLEf@al& z@qvu07SI>j<*F|vUKrh`+TL#%KB|zYc!xQgWZ>}S;D`~h6`eeMBU*9H=i|QozErS` z+1gmi$Cq@}XN}JBy=l?3#(7q3Y~j!afP)uD)Wr$S`^sj^FMz_9CPl5aZN3J2YU#}p zc-<24*6kS)ZS|G@->o`Kj02$_;3u&c!Ah)cFt$|ahoy#q7FimtCOc}vyZ2=9KJ~@U z&d_R$7w91BJ+b>@BMRTjhMxI{?j<|bhA?}c5n1$)`)$HJq0Vy*c3|(pUGgMIxjbM} z8OJ{6Z*YwLERdGLK1N&!OL6Nt-q&=;+i*q~#nyT{u_FgaRK)lH96MXz#iaK1dJrLWL6~8z4>jjzAhB zTuT+<2@a|7Hja0Csvib4#ukqv1GL|}G?@8##Aj{q%7$*iOq6`25;^=b{+y-C+J^>%F>LIKiln37+86TALc3uEURWshmB>CNjzciZIeW|0g z_l7n$KwfTI2a;bo``|Z+H^4;YM;wwV9or*uIFxjHp`Z}0hsCciGc~MGXlp=k-rhn$ zh&ZMQcEw5BicgyG`|4u3i0BPDxd4m{x%qQ*8cd8pW@`r|`I1z{UsV}7i$FaI(O~qZF!M!M& z@*CW}#PzG~gc4f+FJpR!(8ZV^KL|RQqwy&pZW`y@0_5q`WVI>K>2K5^T*1~>5VNXA z%RMc>d@QH{h%EdHdah8t4www!jxIC-z&}^hvPW&sv*Ox?9SJ~J2Xrp*NgFM91WgHi z&OkOnw&kaYeHb$nX0G(C!O9`JJCtuMjmNas#x2BUeWWK8f!bkecs)%PMJPv?Oe=#6 z?+~hw$^0)QSc? z5XRz8A+OtSHE+dlt~!#pCRef}&Vi`cy{e#H0Sexgx-RrM4mMu+!{%|w^-kNxW;KCDAZ)oP{lhKcWV1>; zy)?ju=8OD3ld00Yc>dh9sRspr#eu2KF-KdF#>v-mJsF&pdW8)je6=w z0QN3Br4z-tjXTHyHkK4S#LE2p1O@P@phiGoAMKmrO;jWo$$(Rh>xl`rja zt8@9(SK6(x5U93=EcXT>wOBr^8k-jA^jbCEymGfB^0PqBU|_InzC0(*lj2-Q5)YZ$ z>BdiL0#dYz6FLjH#NP!qHe{&!Q>51 zMDP!XY`%|HBJey4-Mabk>LHz2!&*bYl^7Urc>#?wkXa9fmE{;dy){@l=EN2olMbve zj#lRBKn^LSc>O*wdjZQQ_)d(4Y5IrP{wv)zz}jU?1agHYgE*>y|2SCruSP*bI7s5``Y@#$`G`m2{xd&}^`{H^P5Jbl(jy?i7 zagdJ}3aBCt21WxgoQGGKAci#%(?@wg%SzMR-493x8dJN@=B?3B(ODYjxD9$GY#c06 zFJ7b|v=p(o-ZRiHN7?JvOpvnVO%Xkqh~+IWtw8pq#3ws&m9+eOqMTBkcP18r%+n9J zXOx{^a~uj|{)dRCv90D-`!{6^5wDp>Hq zIP;J|xeT12X}-8F9%vO#RU|}>X7yDu7LU!5`$>!|fh|$e1kkj_9ynKx5VH1_iGbXI z7mZ&8LUN$bph-=>k0V126hYK{bih4ib zYfatuKJEv&#ev(?CS?f}_;G@0h20z>Ns_ncT&i9l?8_lnq|{SzBgVR?E*h;#Q-O3L zSndc$Kwf`F&XZ>E%Nt)AO5kI{OUp^)9whI&=5)zdg`#)sy%$~twj~1BG7ugZ8pwI& zdq~{*7ma3xsMy`p;DhHKJdCXoA_AKn8OY>ijSYKq6|V#Osq;t(?j$utP^Nq}_96F? zAeKuPGs|-?(m2(9wG0TzHzz|$IOe*l@?j4-1z8=MkQtCC5ai;ppDP|<<;6c(*@8P= zLaHW%(7ue!XPxt-%<3rwzKE2v+2xyc`2a+wv=9%MMK$!NKf$4#i@EQ7kDvn%s(fS5 z0^W(6qZL5L$#bcdI9hUqW}2QhRX17(J_c>%e4H^f8%WC?HqP+OXnnYD8nFE|I-&+h zd8dP+AT3sEy_A%=I^vc9CNdA@%PP`ih-7?e7o@x$^(}>soOMw!T~-L$85)qN$=E19}pX-;UPx~0AotCWn*mEn%%9Zu>ed6e^IRJQ*jVd zm{;ZZ1PGl59k!?;z!H43BGM7u4FR|m2q1A1H~XmM>CY9}IVu-1(C(S|E1`e5;89+h zZ|$r40EiLo1Vt{5H5wy@arJTO@2NscE0{LsR{x6E>|h4wL?C2+T+5^hMhDD)wwfPv zZvk0aEU-fs-gZ;==T)LF}=JUR%nkA?B(8r`pd@Ypn-MnOscl zIZN6mB}7#KRmfT?uV^n?AmOVj=p&z8*ei9l)NgDgcIrjb)~w8mcFH3zaIPaLGK~@U zyrE>=Fj{gK$*It5^SS`YuEjZ^km`we(te}SS0>5PU%5+Q6R)5WCo-*F+HURFUw-E9 z>Ep4;m0(pJu5@qib(lNg#!p#J#gk1(*nl_!?zS2O#@|p=H|1gSJJuT@TT22r6=2{6 z&_kiv7L&l~#BB@v(S&Joy$|^daQ37%E`#|2a0+~K(>?f%G+ zNUW}!&U)v)!+?fXx+Df|Ivedp+Efv~B?&}=v*ZIM8K;5(G57Std#7FA$Q>c}2>9gc zI@O~q9>-$WqVF{Ui0m6+_FU-a(%=Dr|1`1(*o&#M6@>;bGWVtILu|aXx5gA5*|BLE zL*1|kJzS$1NaR6rpHQ;o5Y215);gK)7Jc`zvY$#TZqD8V6kptgMI4W846No+#EfW0 zv_5eyPh7j|U_AaA;QtG_V1u`5Nd-0SS}C?CMkE725%4k4vz;*dP_H9ZbvuakHIp|y z1f>U*QPXst2!jsCI*@&{a~-BhvZ6w)ysTR6c3fEYa(@ef*cb$$7*OglAvlAzWe z^^q}CKKmiuMm;jZ8BHg|Zvr%t=ck?{r={mq6(8_{*Z|}`p0GGh)jGQeAe`;PJ8y)m zujV2PD0f%`m^4N^eFu4f!157~3YjEaMtJBK*svC86DNUsJ|;g=;s3ZS(&imAlOCwC zK}AQibnn0qXz&gQ>;me&R*23D=}*dSR)cUXoJ*t`nm+>}-`|u!xz)M9iXSmPNOTWf zI`c$z*ifMm=IM?ArHesMLUAo#62uOagtPbiLI&w;B|+ZflrQL=4R>G<34DKfAXns! zo~is6C%xQHl;lqHHlyF1-4>c@h(|%T+btnuw?P$EEFbc%VDk8$aiY#A(k9&>rmp64L=dXFF`LekZr`+D%w6+i%JtafWx%OH@#b zm@48GwI7H<#q$L29Y!dZ0nwmBg`>xN&bq6hY8OtDoU&bMY=w7i(k+ zyFO5BbP;}n?pxOzy3XU`Tn-Vl7WSX+wF6ss#fVZh`*X(}7q%y*XgzCHD}XQh)O-|k zyU%oy($FF_(a5V5RSEz|c5MdM*>=_KY=vQcKBgGndm%!5( zB%XfXGL@KFJ?|T^2kf(c3xj$VH^hv&S3ndid&3wnIa5IT4i|&(-*{*r3#2Y&siI1=|2h<`O zJnn*HOKIQ<$pR#BB?;fDiN37R{hKa`6xdVqwJ*07#GlvZRVuN|=v7@ZKb0Y~=i6BL zSzw-;vr!eFJme4JH}HQsmDqQ9iHW-xq^8>oEm>IGe2M`DCzwn#FWV|;$e0t#6Me}K zC^SaT9xgELPY>5s{+Kx-bAdV@y^TyeVl{xu>`82|z zkoQt%v0upw+8bXdgH9bMegau$Ax6&Bf7HrCF==wj4b=#;sGs}runq2$7|2@CMAJYYbdIozqkoBnO^Ghj1HlAd2*x9qEQ;%zF zi3gGfOKcVyL8+p7qS!%9iD$$QOxSgyqB))_sPL7-lY@+7wPhj!9N$t zfBnjxty=bj^IRCB?L1rk8d}No12BPWafyRE6l|hDHV$0hAE2>h{{g!<{wuf9GBWw8 z1LP-YCW5D{WYSbcHEW`Sg=t0%gGVh87XGP< zcQ9M^b_6xF@Yd*sC+SzJ8;r!gAeW{h8;nz(HIpyi{J9>-+`8rA^^G}S^)TJb%9VNe zaY$%+u8G0Qt@wuzcWfY7mPP<5sip5Ey(1PD9L%=qEd&LOK;V4y@nQG_EisOV+W>6R z?4xVP!Yr%ew$?+reT``XG?BPi!EY|chE^W|yw9_Adc7o&t51}OSzulvTI;fVgXKUe zdMcDtejhwQLG12#w$pLBgfG=Lmy&2D1JG>9nwg~PS7`#U0Kzcvj|ym$Ps>-C)k0b!=YaP|9@Jjl$KLcB&XAMB1D!boRcKWkSt-0HH?v=EM+XC zjYF1JYZ5ZHG1f75p{VS}nCvOLke$)+d)<9Lzw7(=_qx7+_Q(0B>s&SSp7(vA=wz-cK{$l>?NP$o^KZN^U5bBR0ZC2PCxoFV!V*-q zph2k+U$MsQb=KOlm0ba+fXFdQzpuwS^F za)s?No=&V(RF+K6<=|+6rOtcsaD2(B)B2Axrxn)!#x`H7+@0CO^IQBMZ_3YB-YXUk8BS$(4yW|PtCRxhqPX~RGYKWHx5JkngPM&rP=KGv7_B*+*ZMkDvOlgQ zHiowRa6(wfJemjq6$H0YCfDgG11hH9wws;jlC+*$)YHlzn2b^eT=72V?<&QY&0lxa z^|mGMza@OIqg_h=9|YaV=Fx}*A_8Hwewi|+tktSlKx09Ccg`&-KOH)ucHEf^FycQq zHB9}OE>`3l@&*taG~mqGFPRt}3@^`}+|Xdgu`d&~4<8&JO8|dy`Ho)cbH1;&FFdoC zySWi|vmJSj0s?qYF6JP?+FoMFg#-+jRC_TLH}@osBnvN})xWqQRu6g2|&F_WH1Z1jD~EyN-twnD6S9G?qU(%f}}jQeof9 zesPSF@8io2B-xX{M!qJ`zO{z%+k91N=_ItaPzP(Uc|;zX z+*XD>t<}xIUP#5FFKUT&FPZX}XOZlD51XE~>#z@Pd3;r*I1j6bIbGD+gCY`5!3<&C z)loR+%gb)iEu!UXzvqxNYFWakESOUAmEX(b<<4N}&@&pGRRB&=9zR_eAS{0eCRMIv z=;@RuaB1fvtqae15kWjrDYmrSZ$t# z(9@G{q~}yPYXZ=yB}-yo6l`eim7A$%^&xM>ZV6l7Nmb@FP2U@v{+RdEg1=DJK}t!5 zxRymiJe8j(V1n~1+R_= zdq%xMWq#iT(ztn;!~0(<{iUheQ4rR070!62i&iWfO17BGNHR(%K!!@zQS_-nNvgqN zm4AERPfU-H<$bSlqAI%RrclU0M-PJ&B-_rMK0aQGfz@#urP+$J-5zuy%)-2X+ zS}2=LxK3WR%XR&p?v^t6c-rwi^5rv+-Q5jlUKJJcMS$Kor{Zj#R{4FtDpvc-B*B;s zLP-4oYRk6K4B*RU^z$f&lyx877@H9or61Los_(2&Y-V9UW^%C`04}PccGp=oPROh2 zHX8fU<&Iw>*USEkyFt<_(n85sN>LEc|F?_?3iV%mLpa`0=BdH&#eX?Cr5y_u-|Dw; zUj_9)KZ2R+?s1J}=pAgyIi@3uh0aYfVvjK2KgUws(-f9|{(410g99%4D>LfV>ms7R zds0)5 zJNq2lCoekWw}OqGC!*Ds$C8nxX?)<0+qU%NKbp0UjO0*NFv zf-x`%P=0dIf_?$)+l%Dd=E)uy1g)MSrl%Dkc~o~-415f;&DqUI;C!iO+W7?WZdg zv=2aV^l4h492iYn+{AAaKZ*ow{bV^iFeFE++tIH?Q~^zVoQ0i|l}kq{F(mRdG$ZF@ z`!1`>-#ImJg`Z^@M zr>w# zSwDkQ6pW=0fH4l=MOAc95QsL_&(747&biww&HJ$T5<-<(hT#Zbq^EZ7opc*8g{6@n zw)bQun+lUBS(%)BP)?u>QnC7l6VkFeFbhB?_D{Q-zpxwVf{kO)1#{jViz2AXoKQdf z^vYcQ>rths*d%__=+0-)(HVyUy4EKtyugLoF~Y2D(B+b8LXe=6R7H(2x8UA_RyT z?^X`plP$|Ur0?c^bGDY`GE|1?)q`=t{6kE$Acz0)k->=P1T|v{TDPdsv?A(04R477 zEXV^fQ=A~LM|enkpxeRAr9lGcAWbjl(1BI5wGn^`q3bMskas#gNHv0uL#!Kvy)$7S zv9EQBHB0@YH0}*LG`3Fb#AZ$~Y$+qX0xk?sh30_QAPlnNcKmhpWVdSaaAi*HY%mstOs^1!K4&L}yB8{+y9rZ<7Ndb2>T zr*x8Ss{>L0w&n@I)O>B{VG)n5AH=0jvm_PUmKb46S(|sy%a|G9#QW&*V~p8=91G=V zz9$+}IuSie+6^JIGoif~KUfs9SFtzy{xui^hN0Nz88zUS@JW zw0rnX3cwO-qOM66KM-jwvq_JO{?Y>x#1pH_s{08~mq)HX7i#y6xZ!d#gY4=;g&)UX zN=i2_8TJZb7W(xAP6hJJ_ zkJnv==1OjLGZWXf%W3P1vY#+(<^EF9kDoYg0>K#LKzpk5nInfZA-5MeME*&l}YXq+)vysFc2T}zP%P=Z{r9hm6a3aR{ zlBI{FS~%6hM$8;9fgm+b<5$Oog;m-h64L;oB&L!FEBpR-KTFN;K$eMd`{oY>mq|94 z(*^#BVida{UaEvo8kehcuJ(t(Wf-ps5#4e^c}>W1vbY_|vBE*itIK@Qyka_Aqz5Fg1qtu%2Sp;4$i#kK@X=W(8KNo1?(jBEqXys~o2GAT8y5&I}CC9sapPu`ux_w9}%d+F_G1`Y({+nmENl|Z}RAn?^5>`+X zx!NpE=_Holwm>Wr83hCMd6|z2mRtcP8#XvBM2!4>FKrWP!71P%oxF)Qu#b59SW!}6 z@OO?joSvU!KBUF*Grao0Ti_h4)zgKOpy1yG;WN;upUr%+oMSqV8`|8oE9z3Zwdgig z%Dvu2LL#1KE3D)zx{g8pzV#Em+B@cQhn&oz6XL*t-nGo6OAnSS&KFczs;of5Z8<_rZG zQ5NRs?sq-A?)vy?MDE}hFEvIu3~1im{@OGp{Buel+rYch5d$IlS1HGJL0h^!Y1gyR zOMYhAt0Z?2IRn&MuLP1sIx|JX_qi0}T^8Ttxjq9Id|hTW8rt#}(tyS@(IL2v{Agw9 z^J8?3*6A1#q=xUbTfZ~fToRqS`Im!*nj96r%L3wd>qfh=PDw#S^)RDvC!GoTOgJnOEHOWWNNg zXV;u`O7!Mzd5d!noZAwkw8>G6vHEQ^bN0ra zvq}FnaVsFCwdUdQ$%@=(tWp?p^?y!*8F#soRUuGJV=Y%^V8HXt)bJIQ@y>^5E##4Kgs ze?v{~h8=m;t;<|dXU`C_wL#2PK~88F_z6^W4pD0@7n~JXjSwZC#}3EDn7N+D0%;&^ z$F7Ql%BH}_<+g`sZQDl^A;xq zZkKdtTnH^j@b{fogwBD`5Xm8{V@JLR0`X~_zi@08jzKe`SUV@x#m8iH-uje1S@C&Wr;|$4XYG6evwB@ItDsK;yLTk_^477rNjmrS_>B9euqGha-h-;c)DikDp{!Xx8d% z-XiC|@?&P^m`K(M(4pifJ{I8%ap={OUJkP#(Px$d7q4GlPp=ds!XH2b2;C?MSwbr9 zRZnYHZeai`y6P~3mxxxhL`x?&)=iQ)di8n}a4?y*w1!QHwtq@z^$2i6nJ2HF1MB8`+7x(0WqqgtFT}-8o%?gl>0UtWDi-0yDyM7C<4~S=Fl8lhR z_~xma?nDT=%gP=yMIMd}rx=8xwLACY{>uaM1)5X4KvEsQr?`0H^WEpq(`^=fh4My{FG?x*Su}2tsB70U_%N0SnsANBDPv}) z8om%=7lz6!E?@nq1@6?W5fiQlH2!39wru{)I7|XZYO96G{5w21;sKuh)7fNd_-Vuw zCZy;y^gG&NrRbCC?kK;e=Uo7_N+C<}Z$E8t8BK8oI%P?)wCG?iog8~fOziL+I z!+a)x2L1bh_4AS*3q}yI!yP!=+FUgB^e_2OGxQKU+348aDza{oTD;R|?NBQXe`JmW zH_P}e{H8u3&=4ToWAF}ndD8b7xo8J>7#U$WXXR}wgQ`QfQ?OrFAr>Za@3)Lyer0Y+ zh#T`^J}BVG5mwZ}2%H(UDwq%cY4Dux>ECAPa|xfpQp*W;A(|v3LTJChA6fgKJbDfK z4zf}}e$Yd9Di~2OAkpmV@Cx9I0Cd(>`}$NE_cckwFa#~#6I11sCm(AtY3N*t?a~-- zii#1FD_1)%Qn)tD`TA1A?8Oc9<1=nq>;UA_1=Vb<_n@yVbYRtY^qj35IVoqkv!98| zitf||k_AwzI#<$~MoVHJ<-(f(p@7_SrX@N_f?vK1Y)7sxwL)-fq{L2b-Kl=d$X)1AfD`Q^Sq~g za$CLvVsu2|8ni=ohrp`H$G|R9O%s*bajwt$yXYn$V0@mBltX=ltPH@7(;uFtnc zoxpVJJ*rO7JP{`csd`I}9Q5Z~DNW4o#XdsYp65_q6&6XH^*#T9#;1N}13v=;_Epgu zT^9Uj1X?sS2Yk19W578OA22q54a|Q)=^e-N8Xta^o-(HbS~)Okua!mKFb7Sfxg&8s zPC_b@X?+z2)38jPv_wfmK+ZNb>UL-GY zvW^6Kh(a$t*7j*fI$|h%b&4>xF`Eah5m>>+p$E1Ar~VvlMmqF3mK+8~GT+_8>sLO1 zJK+mWM5gDDF{!P+@?52F`3kgx1gSe1e3ymm+PdGGS9e-PXAib|g<|J&kFF2uL`z+Hzd(wd6nHoXR5;3F3;ga4b-@`sEoN(gvcRQDfQ$-$ zm}+MbtYl3#jmH2^r1_qxBr*FhZ?{f>b|5B>-DL4qL1zr2rhtb@ht8e7kBv3l*4?)X z_)tGKA9DnTPX|}m2$v=%7pZ zEZj62h*c@jiT{xRw?-g(hvmelPhSonN2a?0tQ5!YdG^o8h^k;@Pi-hzqdxgF)O7Ai zzkm$fK9OK#(+5o#L(;Fu9YducV*ti)(P$9svu8?>O}p%vJnb*hX=AV@d5mPz*PWgI zj#dJ$j!E+cC@O&gpanHS6E&u0jX(PnPv zgR~6vl;TMf08`CMGPG1>~G$uRfm| z1FNiq*gk?I)YhZJu;K}4^R#0QjylJs-G74UvyNk5*w0()nPUt9np(T8V(S`T;AhIg zleAjebld6&{4b0QshoOr1fg#VhHKO%qBh7wRQ@1k5x3few21Wp*cNiAhEK8sY&p}y=crF2l1Kxp(Qo8DS)jX_Yk z>fRp=dCPNs1HMJd2f0&|nQ+*v$4Q)gbj08=kEo{TD>yk5abfU>b)L z66UQ@o$*l6g?&2-BE&ysKG(<(1x8SfAIn@7?+_{(IodGUX#fsubMQ5u-t*?Uu`!`C zNDX11lwQVTzutnsF{Ll$CG`)DuUk*l@&@9;D4xc{=Q(WNDxxiz3WqqF$f-PU*XW7K zzH16ijZyS|r12HKk?bgtq5_1l0)trj5 zu6b7u1buoft9PG`>b#1Og-!7-0E%{kkJ6A^Wfxs?<mF z{8y~iAAoW+c3uAt@&ki`6s4(>ysn!0D!PipiGp0m;2M(y@u}y}B)IiK3wB^gyC6dV z9DaysBPr1`o#BO2QD^h=P%&C}Um0!cvzl=Fir`w2e;EkbZHlEFFW~{#)b0smKlNx` zTmu{0BxFMCRYfN@WUxHr&?PHy%<>288D@=~0WI6u{qiFihwyE2{W$2E0gZH>U2?I> zmDjtk&bp)J2x|!Bct()p-P8ym@N1^U$pL>)ImwnKA)^K97QU^U4WVK{0WO>*TA~9i zACZO%^wQB+s}yn4`nDgaAJTAhCh`A3`YY*)TE^Bvhv$17)!G#SdK0f=@6kcJfwt_0 z|GBE_|0l|S`*o4kuUor*T~YQkm5QA2|KTkBS{1+Uviomx{5O+d7x(>I6+Zzs|5y3) z|2c(!9X-E}o?k}~dIG<$QT=si?0*>|zx}!(_t)jZ|J$3C7uMD_9;j+<8_;8;?L<>u L_X6#_)!qLGmA(qb literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/images/social/release_notes/greenmask_0_2_2.png b/v0.2.5/assets/images/social/release_notes/greenmask_0_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..85225bff1738c1f8e607c03991ce681b820a64a2 GIT binary patch literal 31087 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
a*f=cJPZRlx zsrj%=sd+Bva+Mg$=3L*$aHRHjk8B+xao}_xH_S9!TwL+*k9QaA)vFKm!;S*?UP7hI zG~mo;{#y6aCQ2)Br1q*0NmIyN4V{dB&a_6S7vZH8=67L>_Fp0&OkMSMQ1Y}wMRRWv zjVtJe_iav<=93r-tH|u2XY+w4;4zP58UCRf(Odl!PZl~l5 zRThJ@%bfC=fWsbKkl>8Fcp>+`PCcWY)!?7`a0+ZzpwD7Wq~36o14tw>;{Dz*PKU7D zr+l#-b?g^<<*bz>=it@2()?T#SZ*1mHm&yiA8-%YpcyCy|?61FOrtH zri&=VdW?{{;5{*m0LYO7YaZ7CNZpv>R3KRv2s;cPOBjoE{(Pr9;Ztf!9?Y@c3z(>nUi0elemjGI5Iz`5OUVkEhyaAFg*Kg-61$lV(1sKqZ z;gq^I)7?@}B?j6Eia=(|db?0wpC`9t^c{q(#KubhbmT>RZFfb|hDBI-=Gh6_gd{)m z%ShODHg4<8yB0Vft=(|3AwE33pvtKtg2r1{tv11v@3ES8NA*+f^diOTwLaIxHHlCc z>CzRZ8i5skv|MjHJAcTAs*d7{s1N7 zIBdgmC|=JnQ;mLRl+vI%-Yb#w&N?s zpaXZ712@RMfUJ@M2Ysf_Wyn)(jQHj6WZkd_Y7OX%6Z9v!5|pfbPQ z_~o#24X^ILsQs7z>{hP;+o)-2TwTNk?VB`L%2FVXMq7+yKB6NJilsaQ{KMGVpnAVO!AwPF9J`Ma(pO|_^ zN<_tuCuKp^*rj5cc_$Gc1qn#dOF{%D!XNkp8QjTsW{xkJKP}phokHn&_YF7pUhTXM ze^5%lKg*0LWnQl8{&yK%WXXjnp_P6n>UyO=2Y^mcC z;Fv0T?ma%z-{mp~kDKC^UZb1xF}p`!b9=?2My~hT$TLe3lS>A)Co+?+j#pHV{tSNd z(07walk4hNP2DlY6`co{i{^KyIS2OF<_s*6Qn=+Cigdx>fJqRBymecDBNJZrN160HcwPc!jgAYryL_hIbnpcic7v{q*Au zmr8>lCn=^fj?=4OB5Z3b7t7pEA$1KudH8X;hMyq!D#lu+G6AkAb17^%f zS7+lNnu`vOkeWpVYSS;T1Frhx&2i_Q(`Wd94=dmLLpE5{SyHryJyR=`+A~>g0V0^b2KV~s&96MggYchQqBF^Y{kjEkFBd<71DzA^`x|7f<6_J|5IrEOZKxgqlx;^>}5B--=oa0_;)sh z6W4qfrzWfdY8gKA-Kon)`dnD}STda3spHGo2vgDXBQfjHK?2{ zA+y!qUU{)XtuvsRZX9I)xgz4dcUHjz+53HX5Y!1ER|$Be{8<8g7ZpSIi`b5)7ZzuDAviwa2Pb>hS_fYz7^MO3^#a;jO>O?Fc(8)bLVDpj zhH`b*ZRiif8#@!v+6n}h3pLxC8cnZ<_gY@{QO??Dr>1NHYcM6%;ykGGM!;ddq}r9@ ztYAqH*k5O$llIq6++^eR^VFQmTdMEAm7;ZMKq|T;ty1n*9Ls|o+ZvWLFElURKid`T z9n?l!-ms^JpdILvkFY@N=y7j;ly82k2a&wC;Q`)+iYoa=qZU`A(lc3omLOcV@XS3! zWhGgoOUmNr98>c#>fMHNWp667AF&+o2uKSr9?B2?FgDBklwJ}~81s+sP#%_VqVv3c zd%hxj23ri)<)X(J`-`^6CX6h-e_!7In_SDoisehUHx!F5k=kXze!@eW5mlPGY38^= z3}4Y5elrQhh&C*^(`0^R1sWFHW!;LGu+{zadW}xn+xXpat;w@SZKKnWeVKID4M zCDfJL)piHmP>Rwx)VzB7U%710Yb~(xD*}EBtF0(GBw28NiX)7jjt{3Mr6${Z)f-JH z=#59~=myyQb@+S-Ew%Qc;q}dbpFuZv@P7Qhx?V4e$2L{~XJh%yE3rH6O5s`uZzm`F zh0ie%OnLpOEA3fo|EX`q1^EpI{u1tL%tbmwoXq0`4Y}qFM|tKAM`fTpIog+>UjFZ? z-mc^5-V*NNON%W6hG-CVe(d7_aP9hgAND>ISRZfLC}KESeeEAnZ>Dr1($tSDTCRoB z5^eXTi$}>ws_8vl2jQay;R-bVjIa8QWZ|yg6sZ#x)p1;WQL#~R1s6NA0>t70D8V#O z;3M_wz?Xl8!TqVjeoF>R#%eP)EVC>;U-}>Xs}r_Yab~z6K~xZzO(#4B*e+|(E^SJ;;h4C-~Rih7+;UWBKn25Kmq%ILzpyWd;lLiS;q8>?%yA| zNA@fxkUg^&3Y2V~#;%3l(&rQ{rZLsKpmp-U!3k59@Z)^MouXAUc)tx*{SZv3{>OJ? z*QB0YC}QFdB46OY-5F$cGw=Ky+kf|I;r-znyF0AhhH5aY`KJHF^_mPVqy9<_a|GNj z$2r&5hwBx!h4R00X@Tw2vX?wpil5Iwt;#QEDvFoCesifpQOg5~jPIH}aaG<{(3x9dNP|5Ex1H3VL4%}r97U-D6L~dS@^ahzG{q(&OHv|kHuvE zeWK*p1{zf^%d;8IJ5p~h)j!X;k+@ch=1LgK%G~2Bps1Mz-5ITY;npt3ok7&c_ z{vF}WilX`$ux8gHj_e!1LAc{y7hSUTley%5R55pqdh{?UVCS@SDOQ#0TRv4JuhNj} zKQHw_^f|yG4~p`!&Yzqk(rVS7r9{CmJg1gksQXy-J47gP*SSVcTXpe;4?~7rdIVgT zmg~m9%PXKT`k{tziXpUgOcKNI9f-Je`A$ch+^s)>p{aJ2Kw1(JeERw6%gU2_*9-Pj z{$6D-d0Q=^wR##{(VIjg-$v)s`)xgzIiE`SF2(t(_0lIUdW;%WxtCm%S1Nn(@AK`> zZg(z~b~NaL({pX#7_;y>2QRMJvZ`0DdCn?Id;Q%%lK7V|+MsI)EMr&qDT9|N;l{FY zkk@TR?w~5@Zn%2?JHTQ*`>#K>Z#)X!@l4V#cm9ORG})iL5kOmZ?Z2sGO3{ic4w@;V zmAJ*&_`26BAt&>31@qHa|J|h3x|aVo52U6+6IJ<$;ZBNH3!mt%h`RazmUuFKqb0b2 z^ibuk@cQUK649zP?TqDJlXTLs^Z`g+*uU3V`o;@3{iOzxlGQLp#zqcPYR~lgo6%`w zCt3V&{yoh7sZwin;~Bi>i%yTN>_kO3F|IY$d6j}^sVZ4zVf2O2B>q{=~^GqTz>rDGGFwNxl}&;*K4Nq z*i;5-p+4UDL{fl3igTN=a!3<^5|Y)(U(EkSlK39plp>3JyOQ1MR?a;!CfeaQ5;qOD z26l(hkE;KRd+l-$eW^1V3RakEHGCDHzufUGYFT_`&>G?p5+O?cY|7Un);)e?aH-Cnv={)6s@-y#r#pynUsbM9SYu*D`;> zVeKx%|Aa?L+UQncRo_>0P$<9Zi}ZyY`-YN9o|OD_{W~dNt~F*WOq6ySojHsACHe1q zcD)AXF?G3u<#=w{(`H$NAP(=FFO*9LDCadtghhqeg5+B)c?J6M9?)d|B3PDu$f>dkqRWK2Ph^UBj}2B#RS!)6cx1yOISKm`}tO z-H8_3e^Q-p%d4`V~Kd*|MRUw{4g*IS`fn%r@Z-9ul3aQOFCss8tv zasIVz4BzQ=O~gAXiVf!hb<|4pk*hokOs~)Ypo3Hc zok)8)EIG=u*L6YE-oiqWis}Q;SGqFr7C->jpDHXb4jL0}p>Ie11H)Uh&W9`AYq_re z?ytBwi`4_5;+$|-(4sepUP%LrC{sg|Xw(_1%tMWH3>Y4HA}(tKKB8Ez99bLbNdt7# z#X!{0_Ia<(sj8^SLPLie!ybOH3cMT(`~J8_Y-F!%rGrX%DG>6DXt~Uo-h;eOz)7vM zU`m07f=0k}Xu_|4zY%l@DXP9{sU{szCSd$9La*>=s2)s>?M2T>9Q#=?T>G{p#CywZ*coM508G>gGtj+eTChgCr%qm*XTUb2o4x-4@# zdPKJ__yGVIp$*r*(%p%u!#u1V^LJ_5y+97w`$EHjyh$0tiI5q{o_F(g1{ko;B_~sS z7`dVwC73PsPrSA31)N@7n9s&8c!Cr|3lO=0PP+Zb+8OqnK{0=;)O!Qb#pV1KilWIw zgi};sSx?@H<=Pyvl3kK3eW)hHUc&V3;X@*6%zSSnZk&!jJM}6Rl@aQ0Fd|q!DCiBR z2RCT02%3 z-wj=w^_K93+*I@PTP?gLx?yBUg%1E5VVLat{WPG|bl-4G0^wGp!G`@Op7J@R)+*n9 zB_IKZ=Mb)gpT92j^CW9Jc43&PUM8P^dUdby0`uO`b!)apb|{5X1A?z^hh<@Es$b|* z6yfJDy-43bWtrFD?$|WI6ph=%?+O4dSKH8X0VJqZGoVPVtThYBM6(vQ{%YTdn5hc} zVil1=##2C0p_zleTH5n{be(`aTPxu!30eq->)F|aZ*L1Drx#H{c?=`d^WO34g27F{z*f*`C)wdV!o1&ZD5u%kMs_)OeNoV2unSp zwzbq7vco46HGmOIP2b{4!6S~Sm+K^o_7a#iECqz=#uQFa+0#*$**a%ql557Yz(|9a zU7Yd9{O((~9ItX^Y2PcS$W`}9FK41Z7aT-$8$V0x_HM=*I6o;kl197ojM7;MmjD?o z->xUcuJgpM3`p@EgVbd~+$tSHXIzz22OUbQeE2XQWuh70P<1mMCy7}KeZv_mU8^k6 zrP#u9^P`=X+vq_g)LlJ@>3zzesXhuQXNr{v97@280Uu4a>9mIjPVLALt^&{5lATh| zNa4@h0{wm%WdG~=a6?1mB?1X34`7JR^YD;gw9@BjOu?qwqlia4rd{%g#xv-tkk3FB zuT`zp-8UqfVoVW$fIv%X>gh}JfwzpNzuw$>lxpzXRw`KxgA`0y6V&w-(SZGQbX4BF*kXKxj%)*uap^ z83Qf-&^j1wM_31+1CT3)VO`Mf+VEpi1rTHO+46H`LhsGDg7ZgEPKv;y$S$PS^V391$+?dEyDG zes|yzds;ib7ak*--DdQ7V;FVDC9Z4fs16iV$nP9rb2^& zL@n-SkOF7So4@Tzx&njAQ~zX8C2PfK4T9!ByXyfM*wv=!m;rIqAlzp_Wle3BFPXT< z#0NI8Z4R}~J(6#jv##&zW~e0t!b`yYDw0~FN?EYgh3zC|>xU`5G zlD{ORD`W-5X4Oo+7}{F6MDd9Loos=fMfSzkZ02SO1v0bZbJA-o>yKu!~kBp|W+Vi@e-U4u=86HBCg8OcD^%;u8BG0m|gA&(8g=3wv-p(X0gCB#)%eYAhdJxGv-H<3k`B4S$C%=?@{dI5lbwQZ!4zCBZ;9)@DiUW>TOt69``GKlhG4N(00PNA+FP za>SNTxK-w)wnTW+6aglyJ+Ep6Lp-Nn-l&P>7%QO&$SI61Aq#95^t9hc^hDrCvoJ{W zMMrPeXV{AKTzc$s{!rMggl(Xzm;oS?eRkLFX%V ziJ2pt5l9wBDk8mY_c4ou7f~U9%AnG9fN(g)>`BUTv8m$1k6Qt+X^!wc5AkV<;R|1M zRX+mTE=2)9k7Qp@2B{2)KqxjzA)sM$FS#lBd$G(T53<`W%s<+B=;b5T@n@#^YL3>2 zx2B#%|Fo$3+k}GIP$)=-m6|WbZx`myN&q-E8u0dzmpP{^Hv)53koqnqWwTudt`^{< zWAff~L98QdOX=O+&|A0``LI*P)7xqhXBh_;VQg)l@Yz9-MtV~2cW>UPw&n8TxdaTr zIEo(OA5-w>i4G&n=W~1W*K-KuS3G+Z{(n1fBrlx6K4Q^3j{q3^g0@}m1V@fp%>YF> z`QUlQDqLY06}_=Oq0u~pe%L(OFuG@dHs|6aL6LU~Uw|yf>yP1(&*Mj&4=J-tF@&Nk zUF)GTWknNMn(=j_N^=&mt*jhOV~PwkPSk{An2J8&$mDi|+BPJlD^eyl`b_j_oJ{c; z3`I#jg?5UR52z|A8PjpSUi8FxtqA{x7$RY78&(i#CB5#GVag4};2_9TxM820d>TNF zs14E-#^!Y~fGHB3P(U6flYji7VFI}HZHwMel5!|81>|UVSR}gs@sOTeSlJ-<^C|pr zPkHdRt3LM@kf*W*2N&U;Y%~APzb3<9cb+xjDb2s%Sm=RPOYQUp{VRvnYYl5XjRnN)8@ zF-}03tvs}3-?J8e@-oy&yupaQB%S;bn(Utfc;OQ>$6!AV&Ynphww5QIx!Ht3m^(KC z)v7_t=Fulu8y`*3@hgcN_0>nB4#}(gR?vDA;J;ve8vQ4hgDdMd{^$ky!e50LQssRk zM|Xs)8*`Q_Tvk`wY*}M(M#)4E)4~nk}dx_dovz zvQr_00Nf3Un})!-dU@Knc2;sx#qoO;?fZU;k=)JN&Dcbj%)s%1{_IGIYjPgs_OU%X%7n*K7qCKaYlR|MICOaj$9Yu zy+%6cbJ_uzGKtH-3nR`w&^1W`)R6;4ZV0q~c(Tb0irWVOeE#8Q8}+NeY`hxTN+8LY zq=76NhUMt}f!Or`B%t=f(iO)c9^sbzf~Tz%BPOiId0#VI{X9MRO2#+SodWkvfTH-> z>mOA3Sc8s}lgw^zoa6b$pKd6*;3}_pQjo8h^ysrauINA znt637QS?w@N^kJWQfX%Q$ z;;Py@lA?1DnxxG)@SthUsH6@6*|uo6{M5U@f!>X;J1sxMlYwNF?ThYChM!C60n>)c z*jur9Rr?-g_RzKl^8fg%L*z!w@^5N>29ccAhG?2~Kmuh$Ze8^Z?76;}fd9 z@sTCKG2^GK&ya<~T-%4pVV{$^p1;+i$j2Rl47utlE{$R5_wUw%l)aXBtuj{jr79DC zXU<{V5Fa?4o&a%qwLejwP2pJFVCWf#L<*2}mx9<+dO(U{244q&2-(0++r#V9TVD(T zLB7_=Zj3-)pW^=E9MwVB=j6-M1yKVcZxCKBk5Mhg7e;Bz6r?=r^rB?J{+k^k1qmSr z#wc~5*qyxd#sdO!gIl!@pQ->~$OW^815YJeFtd-5i}IxPYo#jhc2wj=qJ=o{G?Sl? z)yb^q)Tf3kvfXIBVSSh%i!w3alg^;>&U*Rw=#htJ~EVg?}DJ?F+(M7Bopwgc^_D$(7b zmw|(SMkG$+N7RP2wCK-PQGE9IcoXcJ5#X6e&F(R_%?sAC3@TI&X?+L>*&Ukd zZ~jJyy|@=ROsB!$-a)ehuz!;0-DCU{fU?t6Jl%d5J2kt%tV~?jQ z_eYeUf8Jhx{eY!P*!yZmf~_|Z;&t)zr7veRHARoNzQ@2;w1!$iMLXF^TZXvHF2+Hx zD-_ADrd4!a0T_S5myJxnL=~oM4Zde~6E`}C0*}Z-fz`fz^D~cfvV*(syuoaQzfnN| zxUy>f;u4Gfc#F@7)1)-TQXkLC{cPi%WmXj zKs&G0+GK1einG^FsIf^M3jKDHdVF0Sm|OZU^XHxFO80n2=|GXYA8g~7Jh@)E-zI(9 zhj#V1&D{X!0l=ZxS9coNEAGov8zDZcYa^DSkr@V9U*EwL%2HzIoP-kfgI+DYU2Ag-qPyXat)c{VlhCR_&o1fKM z_S@-~y0z}aJ%2%6zjO^?V?_>|pi4H^eZTV5FNs&be@&hcz6A7|9fNR!L&cA0trw_PL>;K$V5E0MVz1wXB zEoI$z!OR>u|F8DWE2`-%YWsFa1yKASIX1S98|Kyy#pXb@X zL-wQ;fYN|++W}|1OS4Z{Lz!Hx!7)u3g0SiElGj85aAV*dwJ}Oz+mGB7*=eA;Nm&mj zfe>iLzJB(+iuyw&7gqS00ms7|#|dmCeG8l-l}+9zREKCP#3cKyy^ZziD6Raa|#LdW`Db9mbI?@gT*GEL4 zv8Sf4vDlo&BO0oVYW%8lmFmlyoOqH#acMROdwu1kb@2%I9%S=s{LKxP-Lt|*KooFv z2Nh%gE4yhh6$G=^-oij=9fh-zkN{I1c(>`&GMgj=d_dB>cg>#{WY>{FaINjODIBqc zIXP}JCYiu(n(6*#v2a;CS`5GPWO|vszM)GUAR4w+$r7jFu#5G8ZX2Y99H;!{+{O&n zaRDJFgmmp`_bN%Oj@Q8ta<1l9-gvfBWoVq`GE}Sam-w&0^swlGNOP^6fe$Mgv zy3%*ynwzf?y6OuU;c^u$^IEd5nb~~y@Q7_?Q(BXOi~{G>!s6a_NG04{K9m8h7*cz#3~(hysa3XS|F>3Et_U9%ri1!qf@9BXyPN@qyEDeCOHv5XSS0L5kpk zx*Ma>(G!&Oe(aUm22j8A`fsRs#N?ha0`^yZw_|H%Uf$?eMlpgoIka)WX-E{ zV7ZJC>&%_w2(U-llsnO2{*Z?v@|>mvf=^x#89McpWf`Ssgo;x>`YumQRjUnFyLt?7 zuxqz878Kk(el39nkd;^hb?%EK(dzTzwbMHtH-J3A?mu7|$aspxzG3`{6ArehC6YR^ zj=WV)qVUQ=rp17Y$!6|bsBNdinB8BC1BB+-SLwIPwz6P!QM1ki|Q zfoOjk{8sl6-0Z2X6qQS85#5-cwQcR>fo?`$7q)4wTpXp3|n9OzlszuSx9CV?oqX z!F`FWPf9#FKr+#NoNc*>1IjQPAR458vG=uEP_<<(W;fXeK#Krv8{;bttHJGy#$bO; z>_erqnfV5N0qd>gxe!xd&!$VtB`#Kp3$oCXQ#haQPjJvEwpYVADe`+LaaDwq68gibw2|toD-j5!IHKq#Z(QV@q|SYW3g(hidpWpm4)$x&w`y|l21!UKEB59 z3m~9G`JD+B@0uyBFOq|Om7yt~E8RaP7h9V{mTq5yRk8l&3s!vltLs!?9#HZ_gg%~F zaE;kb$QQdsFpV%v>(BS9Oz))?J+43iE7yu5J&}TUAeWX#4(n;JXY;qT&3_`r3UkVV zFI97S)&+gP9?}G;Fw*3a=lAQMZOJD`+)&<<2-{!EkkF zmxuV-+iWe@fe2k*eC}EMQ{d4sQH_1c+O+N?M{2dZaCzX!ix*f7Hz15B`i`9aYL4{Q!M2_sgU&>;p=z{eO%i< zP@e<`;|qf7vC|hDp5oX)zDf22L&Ae;hjc@TI(BCVBnl8c59yg1)qpV?bO^ki)ace~ zgN{wC788%6itAp-ZvOpI#M{aSy()~v%bfi^ujLcWmDcK;04ohUFb3QJbXIfPKYR#u-G^m8lrj)NgeXeJm4xa@N z6e*NCU&(#1D4r%uByx13imGIIkfYmXJydXk|ERZMRFoaeRlC1?EtT7{5v|{T&=@U9 zj#_^=onxykAN?ISwa$*hOS9cuc1R(k&9Q_D@(U+%r2*4^@6kG4 z%Eai6ngH(tILWYoFCo|m&`B^QmIfM~+11UcsD;V;yV?Cl;Zsn}v8FR-u%6iV2LS%* zglTRAU_FhL!LE&x)e1>V ziz+GDLv43oCEkFO=nHHM|Mz?G$RH(};ps-`;E67yXe0cljGMv_L@I=Pb!{4}k1yMxx{^L6j02srTqZ8l%0@?I)Ehc9 z78r9B7*2FIT59EWeXr&n@Zw{@G3jSi*>t*LBon#h0N7vo%I{{pjvU z8#ocNhWzkTJ~sDSvhH)6vTQ z_3X_yaz)8wJIrAO0=2Xxb@P=vlXy-^i~YI*GU+}v-gjNP1BC`(Znri$NpIDhod)wd z>f1Xr9*Tw^+l~@ptJqwz)XWkeSO!gT{nyVFjV>_q7aON9sZ}V8EqixK5n=dqMP)%S z{7zrh*@z{0IYPIW779-clmjh_NdNwWFO@5cg6AL=J5XKV}Z-p(k#`jDqQ%zYCG8`cYMMZMmE zd9N%=n2AQ#Ou%_)Q35}GRUtaipRQTVVWPEdF1A)*0GtsN$QX6Dq^MphyCWSx%CX>C zkvus&RVnauXDVb#J$O5^(-(#|aSo5(y<^V>nIMD}D5PW$VRmTwApP&P-Fkq%qNhGn zhuA}~*vx4)*d|i+Ife{pbDd(O`HlH=&(?@a?AQf3s8`>zt1RE%Yn;9k-YPIE;>gdx zD>g3JdR;Ehqs{l|MH;>yojhF;^*>8JEd%>i z-VYrF9!*jYRQzEGFWWPcJ(2nMn!xjcX_s4CWCyHmAL$3pTo(OzMSR@9<{86XSF^Av zTOZbsult+SLn5Z%b#(Pfm~m~y-<&Lq9G6`Ayqbwd!T?98_u-`3Uw)S#>GLk^{W>pg z?>=12hgoblZE!$*u!7n0?(+rfECZuwxlv%lvHS;igf@JAB?TH!+`#Tac#RprC$Y=< zNkw#<^^@`(uE2e%gd=vtCc8&`hv#J`p+y_<1ew07&VI&s;>LVAOl^)RNEnrEG2A(% zW+yYg))BMrg zJ2%OYdO57Yo#uW9x{7>tB;XC;%<1+IZKrn=H40HM+B^!ws&`Wm}E}G(eQ)cm+oSL~2^e>K==hrMC?j?7j z>N9D9Gtg^9>-@0)Ft1hD_mU7taj=yF!WzYgd*Wd#YeYeWccDa9d7!2sNd)^wm$Ck) zkVmuns-CvSCz^NZIVc>hZOciyT}8E;cLq(n6y0Z+7K9#cMa%(G1UP*-zGFsN zZ8pm0StishTU^t8Q$cxNS6g}RZ2wC46QXaSpSTw06!$0;L921jWNYF{)$1lau~6}d z9Mq)ty9Tu{xEt{z;yl&heqtMY>aY9@Zn! z3tR!MP3vSoL)W6bxZ-gs$jlryMm zq8P)vVwgpp#@wXNL3OhyKac|x-j&MTG9xN5@CAt?6R#Td&_;DY63gE4?Pw07wVb?Ns>74-Nqe5~o|+3G3lT>lkVYdjTRL8* zk1C1|!!ZVS$^^hBjF%RbaMm#S_b_D{6{QDW;4NmlJrlJ=C;5Q?Mh<#%b)`4@iDN~} z{Xs5`84Cl-A&$v79i7Zi^fzW+P8|Rt31Pem4Pg%RJCZ}i=q=Qy?ZS@p0~JQJM)L_p zg^awUFLM7t_(B{zR7Zwz&qUzn@b*+Yw^CxOB?4ec$0?`}i=WzWZt?N&^k}X(cW*=5 zT>8U)0?aBqoVsx52>PYRsjSPz`#UXf6^MFaRCNj@7}Z9tj+{QeZoAtpqh+F$kydp! ztT^e@=Oq4G8P0DZ^}}bfYe3+$nx(C>=-}wg7hKy+X)_KTbrZIqI+)t}(&tWwFIlKxt7)^eMQdsVPzm zi495dWrL-XT-@rk6xw21He(72E>bha2+V>oJxt=`Yj&BuUMi`8^kPpJt;fT;1ZXMl z-abh5(Dq4P0vQ)n1tY*+nIxuKPC9SWYKF`KN;5!^tizcBPB_T&@kqM+N$b-V%airz z;d3Rx$&OHNFrjWwaWa1P>Jt{ct8Uo3wk-=^@ZS#djgl(ZA6Big&RF1cpt^jg@A62EK0n%K$~xz&nEY zn0;4piDCj#1KI%H>tj0L3ImFe1`5jkT}E7!v{X0E1eGKOb$(UFsQd%bcvP2+T~{ zBmeHYasi|s`iX5ZoMqnR$?yih&pB4X?b;nhzVJv$1aZ7YePpuJ%`_z?F9Y@aX0af= zvWEGc=b5VL0Md9fwRrU4tGb=GweJDJ z29L+12qs4B*8QHJ?6hJEKmXhii2VV1X&PUp#uz^%)}Bg{ezl*rKX>KPhq&*J<+4+4 z?`Q}l0R~{VohmrcD69GHx#wDDPvPip5aWzWRD9YBB&DF$bhb3|pNpL{&VU$$h$91% zq=CX14fGEP+R!~nb?&*7bHZPXK*m0cPR^{G>C2h<-7x%mPHg8A(%hloW5Z7EQ0c6l zIq&9CnSMb#)C91!h=CH8$3QSKQmZ}Wq85w^KlGRYMMT;%QE^_S!NCR^kkG0{S$0aD z%2bv2StMUVViQYOft}~;Z~6T{ZcXBGWVg6I%gggAmb`;PpiRAZcJ9;tX)K#&1%1wR z+xWf8kGZ6hDPY*gtTtYDX=-eo4zUOvD7pc&@3s)?+yfb;>l3}uu<5IK7n1` z>=Ow+DaAdL>xZ5?hADyz)jqfSO zXT3pLD}cqQS#{V9zY5Hp2LAK+Ino6jn^GreQ8RrFmAKzCDqZ&E7FSxUpH^|L?q?#!SE}! zHI6=c9?kw?5HEPdpI0Jf0qzkiG9fH{FCsl7802UPR;z-AIW3EHqB$Eh7xY}~@N2vz}NSs-zu*B7fA1*I_ z?Hmus5T(1miWT0l#C~bB&0hMQX)?lwBRotIl}o=U(gmPL#F582tST&wDGHQqFIAly zNLQ7ACGQJ|U6aacg*NV=Ho@5VIebsqzeOQ>pXtz?W4_cFaN->%rE$Ocz0Ll_0-YJM zNP5vs+#g_b*s@Z+*zjLP{6}8{{+-uvhH^J|S2udG`Qmqe7^7h6&_Xh}8Bey237hWg zvMU$CA6$T00QdP<a!}9zS$4oJ>Gn$NHG4&5j|Q1D%W`z zs*OIlG8bTrs?1t$eLqhkO)Po|9Rx;*Cje$tsbuZ`(!974A z5f4Vwy!(lzTWRdH+9;FCZp-1o^Gb4)fulyC{)7#Zt7=N)Il~U&(|VvpsdN;{728A zQ9M1y(E4YrDd4xlb>@C!K7)`9up<$~|M>3cL5RC3r2G)#v4&vvN>7$jpq(n>>0 zNBrYLsu#ske};0N{;M!QQsZh~URC@3UQ%C0@et`7T0Z7Cz1CS+!TktY_lK7w6_Qkq z#))vt2Ev;OSAM{N5T7Kq+9QjF03ay8x>#Vq>kNCDc0$udx8ld?*}DQd5dq871mDv~ z60WXg%!qs4=|p#K38!QlF3yN_*o7LStYp`LjeZa0&`gL2q%itcnQm$xImOq6${GmNXmd40Ky07wyIxAnM#(2=78 zV)w_db$_|S{5dEg4uqh4P=C3@s-nR*2=0Q~BA|*RJPhkmTQgUxi{h6+FQwgHKZ@`N zMRWWPRg*VP^K{!#6{DQ{o90>BUSqo}jJa>3DS*w*L#8mqIwOH=Z$&TzWmP{>IioUk zfiP6Go>TnF3W=1`ahV2(wR#|YY+pSEs^=uQ;*Q0U<=mGj+wW7v6tA;Na94h~eR~HA zz+SaY2?&#>NhqA1O-X?mfS$W^;r@hr*C?tUXb-PW#>`#0>XHA)HFV5Dg^AL%K-Lm% zt))#g2N~V`YcL;fFM)hNe*Lqjbf})D(r)dBYfr$cy!XWuU@*^Tr08!_&xzI~b zR9V6Vy1Zh|-Y)dZPl73)Dp>rW8{&z(p3-EBKe~uOa0teuwC#$tjaxgCuI|ADE>Y#Q zkETz4XXCUd1<>|{Tayc{3hwht>9{Wc!hLHzTNiu>$On-}7^ihLy zAN9MAB!IEPI6&HxdJeL_Na_KUJ{kHh_^XaUoeqxdR+m%Ih~vN$dz`vXv@RhHAZqBx z(w(G~cJ&b9*b5Lk{FJ*(>LAIT7Cj;mJlC~to+7jS7$ND&h9+f~{_9Zw=Q=0M|7WD@ zzk$6qzb5re+OPZG{+%>l^XqcEUpM*vH`)JxGE`@zt(rUrtyupLlfW*_q>)R?+0^Ee{+bJsUhNM~JLU z(c;0A?j0C8hE!+#$=%{%+x(BDVj29AT_(0?Ad9<})As7&Vnf8GB> zb0=Pyr}X!Yf6AV>Pw^JVF;+h0#2h@*4b0ZFKl*=pIX$;R9bw?&SUznwvxu3mQd#A1 zH2G9t!5DJ%v-oKFFDYgNouYEjo=y46)$KPND@MN_^Mb|hf;(Pz`Z%kPTR2&!dwJYM zJ<)hb^|G;j>_v8zXp)Il4mw4`4Yr_w4p{vxk&;~P7x+xhc|JWtpJ=kLpe zpB)3%!f`HoZLW22_-Vp~YmIvV7MeP(q9-t(SEznBsW~!TwD2mn<9V28PiJ4wY*dwq zSgsLui_}2dnj%ofU$HWi=u59Q{_F$UfpfH1OPsmFVhYO5_`oNZvZGI(fDlK6aJa9? za5b;g%&8i6wW(_TyyP&%DH-{w?)=gBhRi2U48Q;WNTuKVwZ2Wqpg9&fKy}uy_9OQl z?Qgn7nP2Ll*c@b^d~&lPd|Fl6n9w31drd^cV4FK<`*|456{l08911t0Hh$IOr-e`I zt#I(-N%gyZ*IT1rxjw4jp>%$Zw~Cla-(O5*tt9#cm>AG6_tuf)Wn8~1CrF#yb*KXK zM$MWNPi}6PWarAFP0aNo$g-LahdBDAh4j0er*rweYzyoNqoV^jsTV~C!>GHhF2j@5 zAtgCXzb8tg-K{k}l+?w`P0B67uQX)n4GbnaEp|sr)FxaOuvT?N#hLmv9mL2Ppp8#8!a*YvjN(EeLqZg^wTM`d+vyTe)if_?8vnQpuC(QO5KiYnwb zIgWoE7>9A==Uc9#^~-jJy)YjJTXp3b>of#XlH3#0_B|Np!1_6O?{QbV;`_AODzp^h zLbD>JT{y&(Iy+TT)r>fxT%E0)QhqY(PMu@1b=#xPs2)k?nt_!x`nD!0nqSzXKFgr| z*&#tE7X67Os!vX+PJnYWxNvDc7;ZAhAqZoiLgZ-{XhQ7#qML)$D{N&Rm?U>|{gJ8& zs_4Ud1$;xBxMkstwg{#F#|f@!Om2EW6bIi}0kV_~^@2GquAz{D5ixpepIPFKDkeNS zMa283bjPd$D7D~S-h~%S$7rNCx_vWLH9Ln15Dol@@W3HKQB4CDo>FT?fAf?=mzPWm z$tGqwdY>+YgdDJxG(PTekHD;@#r0ii+hBGFoO65>AvO)$$)%6oP~me}~)>KQf{b}YCmRG#*6#P+5&5ff4G{uR>~ z@e$iunYAo!F+H|tg!W7uY*<5+?u}pk`-+>JlkJT1#Vt9ve?H5Ifqp8N`-;6Ap`1nY zS1I*;a7PK|`@=<#(5E3Xb5`_mGTtJ*bZXx(+NZp0xR7Q+A~jDFIl(HkI(+B@D@$6p zGcH|TpU2IV%E;f4H~PMhYeFJfuHi5H`;T8c1rmx{rHRGm%3+H?K62IQ#=IWNxv(Xh zjSl2j($GYhJgTI>h5y}oq?VcF@c5SVib`oCSr}r_Pmj|STy0vz2Ndzl*}VGDonf2` zb)`NHyHbPITP)JGx%aW{N?_k_YocM)>q4$Z{9o+35=K&}0%tXqKOIaIY!fczGns+r z(0N~D1g6fy{F}llz-psru^nj5v0($^g9dxEL zZ(M+iD+J%2#vE!vAT~SE2m5z;Fp?2RekX1({8S2y{jv;3!gAIqwZE=DT-hflyw)*e zzrs5-qusN#9mkpWMeY8_QX~u4GUSw~xZG{m@)Hz~#!Dd^>#8PH?=}4J8?id*OuKwk z?8v}iJH)j8YB47Zaqtu=-OlD-q2@^Hrnojz=AlN@K&K8mc(ZKZ`PXZ%31`1GuQv>0 z0~dzV!?X1<4k8U_xxUn zN##+9TVj!#Zu``?Ra+>@?89Sf5m5QV8x$4>hCbtucb3#s3eO`St|n9x9y;ZYJ14W@ z?@i5fsik!4aCu-a-O!OV$ilPl)~X!vI$j59x}HOMZL8bGGvjh@l}`^E01@Ymnho-P zY3gM5+kNE?C!}u?LEfRj&Dd@67#XV~WQOo+>=kQ3LEqy_8}(DOiLCquDfzt{Cy}Mj zHDlW#_2JXUKb_&qk6TdrtQ8h^e#7y;4--uJ;C9xaetQkEPIYRb)NG(GAzs1YPHH!9}681A?L=V9^;rl zJ(49nRqR|awXj9*Ce>o+KZ(?=;3Kt$>rcX4oCarU$I`|leC?1^ivC0H6YF2t2$;nu z;!9&#!!y3aeP7tJ$i1)b6XUZnyIi*wuV2#6_J5Jv-D>~Ub-B16-HaH|T#~=5{#PP* zl|cmbT+GSs@&oU^%8)EI`Xo_ysL337D(b;7_U$b+<_H5rCEMX^{3y+K%4GO&9j{w) z+~;_H%lhahh$7%>XEbkSggCT?Aw|SUCjxG64{R%_M)F4xi6Q!-vzb$;_80QsoAdO;#&?F+8;n@mi81v5z=bxdR;ayd_DpI(vq9*?Ke@9 zUyeB!1#q=Yg>5L!=jR-k_pMp=mhHxtwxHoWu&Uj}e9c$nmE>LjET0n%te3rbNn4Fu zwga)#R~c(NUpX-khc{;G)lHNX1b7Y%Y|p|A;RAi&AJIZqlN6^t4)DLc#FZ=T{;)f) zaHbU6#eMosD%mN?Kx5K^prboHp;PjMOYFB{PCRsf#y* zid|EYs``q;p1jMtu;B9BTG9@Y^(b*$mtSmNWhAf+^L07*n3g`sgngT1r`XQ%7(0Y| zSr&QOQcylR+gvvH;W;QIg%{pxJ zUQC3VlK%%R%))qi02yeewy1+k<{B$Shs(Jogp5$?|8)F#6GB?LogpcaG}qWpds9W! z-L#F=N$|2p{cy&m(#KZS4KV65Y=V?E8)a%}R0_}xh4RZNhU?JS`DYmDd`gPz6o^7@ zYcObBqNxgGB~4uuPk-H?VMqIHKiv<1P$0n;8U@AjBdXhmWT`|?m;rMf>&BF~FMTiI zW*pGfi^(a=!V{|fS{IzzR?FOt-JEHU=I*xsIey7~3oG0Ib89RMJBzAS;iI_{<x1+W3lJ*#t`ou^A-eKE@3I;dYfLlaFsDK&~uP2X$P7 z*Y5D%UO9WNKtNSf+J-m<@y2JE9Ej&M9{5y)t9SXc8rtARrQ)o&8`Ji!qZSO;1T#c` zV0#$jhHGuX;#btv6v-`IAFqz@D1r{&3RrlwT&EsdN~>=sjF@913PI*Ak-Bkhbfyo4 zGT5f;p{4QLQKq(rdlc3VKJCU)%>H3SNup zx4|M1)wT_v%inUYsMY)&{B@UjR?^)6O>{r2<~!^G3pc`OiI4fIo)TYC+olg)f?_=RAW`bp5}A$Fo`F3YB?^I76P#iBO(Jpo4MJSQJni8g z-8ayFeg{<%{9V1nsqY5I1IW$|91%g+J#WP@bVVaMpM}Gi01Ov7YN2`_`Q^9TDKkvT zytBRyHSpy`$;ldP)@{CDq)W4YGwfN6Uj|QYlDsHVxKLbW(N*WNS3-F%69tHE+<0A- z9ogI(8f+Q!^cTD(I3>x_X0FNu_B<~BOjU{UEc)`Wu&P_%z0F|0dY=l@IrutP%sKwQ z%mluLY<;&M)93LjQ`0Ct$qTM=-O9f*p?RM=BQ@Rb5=#vwV*xH6J|AqlP-+^*c`)!x z%AJb;asirqR5^jq_Un){jL(!wo)rnTa+m1P#u1WLlERn75 zC1wVQe>=H73(XSYZO}61{n1@?7HSKb-*E9Yd$r7fs4F$cDy0W%w@e2?4Yv8=L~sKD zM1$7Ub-LEzb&tHl$F9Nru$_YAA3qt*lI8f#L+vK45;q7+A)cWJKi_c83`4+D_q$F` zz{(cO(X*pltV83B!$DqhGKE$uZgmr;A4AAZG&wS&7GW!YnD!4YDSS4sUN=GT4YiPF zTd-IFv6ez?#xI>BcBzmS8Bq$s=WW6X3Ds+T*qn(3^+beXQs;2czCGH4uxO?_%WBy$K zG+n}3^@Q#0xQlXzTqvRHd!wi!as@cGUNl%E zBp4wpe9YW-fV=J|%p_e>Vra#;fP{>!2W(NxqG#B!krK3byQ?_iA$z?|bgjhd<8cDL zcH4fw#}Pb<+$04C-y|9*lHKq6+S*O>#eK+BEzK*4qk~vF8i-eo^z$w7f<_Ey$6gdq zm9j(I{b{dS{)Jg1?rILbK*38XM!}AH5j@?S{*4(wdbcL_(?aw-^x9R;O@CF1kIond zy&qgOH9<5$*Xb)}Togd66^bEFSfaemR9c(T-J?f;$yS$OXyITchLN!7>(@m;OY~#e zRd>ky<6QOK`TTL|pS@Xm9fBaJ@qJhj5^x9<>f8lrm1`*$FhwBKYftmsuwpF2cc7P&QF96KIRjlj8=$)YmcXrc@^R2_7jEzcvCS11l_#W+pabx(yCH@3$ zT+@XoE>UPQH+F~Z*vch7ndKSJ8cG%rY9kq%jz~Kp6Q;v+6 z(`AobL!keg5P*Ol=dVZiIwITiWWs|3BBYHiY9)5?Coz=J2(!T{9fgt>-n6Vx2Bx=@Nr=k%-+vSfeC`eN^Gu;g5;%_viFitu7ip zHS;emyM^e@!|qxJ&J^$1phgSVbv9L2Zd5)i%ERQx4P(4y7H7jD@o~++_xa9_pNX)u z6Uq-50P)CuZ~KjI;a5V_BoA(H&3!yVVFDj0UB4GN-*2m6smh<&QDnC{(^B+ppE8fX138PUV=#^7R!x z-*e|bqndf}8GAJj#a3?<5;D!Ag7%JjsD4LQA}W;n3VLPariUEOYf_I3we;s0 zxt?N!(k$>REJqE0dl5hZSc%f~A&z^vhTE2qYLU=j7SI4~|8W&*WX<=dw49@`9W9X( zw&zKXj*&;JN$)!g#PPC~_3@2J=pnPL+N1RFk%b6m9Pe4ZuVUnGx%#-k#DFmF@rG6< zh()&f4IdDu-~a`=2ia9=y-9+Yt$>UNfZQ@oT9~x|DUmX@PzBglHFU@pLH2_Nf5OM& zkH6k4x>slqY)T9JEk+B53p@kIw>i~dHH~ux=$Jdlm$R4?F`{{X) z?zQo+ZPl*4_0Tjq*H>!DHzmuX4zPD+O2&xHbap$*AbQ&OWCzsW`c6@iL~H@pV~-PH#(=F)Y3LGCiH!#4^Wd^3d0@K)UT=eKf{-}2r5?g z&ar{VA0@JJ+e9=i@&>Bqw~!FL0hPvu75sMxHnxE42dSi-ulR6FCr9L4KN&Wd@o;@EI zR($%VsKT&&(rZ&14`0UWK~X=LsB20DTh3wwo9E#-d>&>{b&oR-wzwWaS7R}ylAtQF zRLxJtgm)>&coTUa+#67LJ+j>;WztZM1nhf9)naNVwlg?zXDPSo%@m@O6ldTz1P=lD zNvAEdcVD$y5~Df5sKi6r>63y^)Ib}~lA!0pcie7o8@*6u1sl0c*-B^#L8a+e4|m`kpVHxg`5`OZS;1LpY`(Q&r!2G$hmaN~ z+&$u0nFmpSSY2HyPf9v&mP~FMSFy$o5pW^y58Z^3v=4P+q$(1>97PonnL{sjrl=e9 zIvRDoAy7=QVyF&i3&{4U{P4m8N`0Bhdc+m?^6SZRC7CJ*PMY7`-7Jl1_pL=)qZ>P6 zJLGa$@J#*~z1D3Nj#~mjE2Omz&(zZHy6cbFw(sqEkgIv=moSC7zrhP#Mf%MM zLRgWm>ASWX;u1tAaHFH;RrGECp879##K|vNv2X>^d2V&hWrB$oTGJ&v9|@wQH8G^J zZI*NS^oV!+)R*a4bkS6`8g55B27*7lQOjSOo|~;Lt6l^OcPRH+3TPZ{cNr9%2>0Hy zD*5Q^9W$Xw2!KWG-UP4Oklt3iyh?$miG1UwIRoY1A8&3`po_YtTo8K`3*FkTrd1i z&^7|}t+3kCZXVv89NB>K8d=)6?ajh|M{rTYSiYCLpQ@N3p=V~d(Z}}X=#>_r@r%m4 z;YiK~dKRsIE%JhScc)F3(vn${KapaJ+FoBFZ?~Nwvg&C%eqeJQsnAd@sF!&J$Q`77 z?*3F(vWz2pGrdFe#-LFFDXuD0+~hcbVYk?hfm+C26xVycqgOpC6DB zN~ei6owNOmYS8SI)5@yPc0fT2c}%1 z-mLBd-`t*R4b;e$_7^+8^}B-Hm@Z8Ln~T^II!vyLSeegd+8fD2r&P%L_4`__)Eswl8?GAY=)1AZ)DkugV)Lbo-Cb|Qf(OM2 z;e%l7xM&M+Rqz)#-8en8t6ha$N@f8aV8MIk8@=Q^1q&# z7sdXSG%~kg$^>Cgu7H?z%$`nAQoX}&dk!*E6G{JI$B#A93xg)D=LX=!G!Ym?Id3{5 zLI|8`4kOAtl;_HrU@vmI!{rOPH+`t{YXQA1NyV1bXbKg;L;Z?#(wjt!{FaR^iz;;A zR?!~jk332rXlz z$2`S^Ky5@%9{yzumFx5c+Mn8bINT3kp+WE6ffk|~0072!-{O+9q?I&C@YRj$N=F`JJdm@BOKs%1(h$h~AUa*px2EybvE86QyH>ghDv; z(@WDM=Msi4UDlxw!yJ`lZ3d65OR1FFN{6Zh7&@Os%AgvF>5BP|1qLo=DVcxk7bdFA z3qUtg;W;Q|g$i(`qwiB&Ya0O`cva($tT&VBA8T%7WPN64WmyzVlpIMfMQ?w?M9L`E zMS_YL0tiW!6p5882d1j^AF6Z#1GcJ}Gs5m%3}~CdR`I-Djm44?6*{Nl*06xq?jKEJ z(K*d*K2s2pMa<_PoZcZ8lSz}Ef5*vNVvdPC<~nmL355x7T!$wnu`#hE8?u`D!NK@d z!5WYGWS=?quHZ`sO$8O~VWQTz#~3S;>#s!F@S}h&hL3Rx7fGF^H-=n`mcvMMz^tcRr%LA7=CFX z7N!;<=N6UH)CPzFp03$^me%!U$I%MD7@@p?9SUx~!dPW}rk?U^wTNTs0t3VG7ejUj zC5|jM^YJBc9l_j?!e2c`KJ8jM?95^P52)K}au6oDfKdPIrYi~3(gv59q}fp9;`Bvd zgq9rRn02_{KtZ-OBec{5swLNjYhQX z?Uc83PpT*H{W&!qQPCQU+LsjXOhhAb8sdED-~>U*6&3fqC+$WrQ*B_0 zd4OwqKAM_JCusJaA9Tm-p2)VRgPp$#Q}#Q65V>DIF;}j{hM9ly+`w)ixn2w5@py5i z|1QM;%gs!KgW3Lqnm>NGc?#6oaS5jV0+t#zr%l&8JYIS$=J(MSA4y6eS%OlPeo$m; zeT458J@R8sj$OHA?q)+eE*1zO8K^(A1uf>WEgiP49+sD$rI~l86K2@=;(&^6{4?=1 zH-g@QLZd18vB-K-b3AMu6eu7`2}Wrx(G?MI`xDV0lx}8bA!0r)T7Bs)(Qt$$WA-{k z2|s%V)bc0c?+x&FbmaxPG$d^usQGqdgm2!vt-u(4(9XqfKtMbnQ=dP<8gFwfIx$q) z*wO#<{F9reQ^?3pYJj1kX6a=tpYdp{Nkxj8jKS#a#*YP`E?)kk-`X(K8<;@SQUxMA zdEz_uYQ3J%C_8Gg_~8c+lfIYA!Rfc%no-cQtNCXR-{O{*%ZpU~bnyQ9>J*7tbaGAc zRBXKpU$+%V`;U*k^T0yAaUm%mvJ|p~u_eVdE~=nlgjsoz4+r=cBs&G$Zkg4+=k16lrPcx+nlL-jj93Qoa#O8nu zvu!0MHopxWQaEkiZFfZ4(tPbagck$(^zm|#N}8UJB3qb@Nx8R2{FYy=vVK%vv)C>_ z&@5I;0mc|RDtL<2enQ?IC?}YwRM8jh>~@1*nq}yEznZF2d0`IP1$9Bsc`6_%b{beD zJl#Xd_3b}~6>j@L-ueU?5W(+y(vc=YTG{s+zop91!`3|=(2-; z13gH-&1)S`PRy$@;2maiHYl3(+)Se@=VT<)^!S|L-(j&c{LMdY-jr@HnmJT};z;_$ zWo+!f3o#N2^mwt!mvz}Z<*r6!4MK79hC*JS+42V^A)7zs7?ZJeuVLy9bGrmq5p=4a-K%#0$SM*%V>aK_zF?aS{=zT7ECdK&+jIfe4U zUad=XNR^ZAwG|xm0QbitxkD-%797d*((zTn!kFl!kH5CzRBj?d>$Pm2fwBKm&WgGT*;uog{FEkzN zEA5Oq3EA`I?|M>K)-RCZ!JaHioVZ;Vr)LJSxjWc`xES@k0(q6vU2<|F)Qm3*9c*_0 z#k}DRU8lwH)a>Uuo-3i@<-hl7^@wd8d=T^K{j~C{bL#un9fZa|+SXg{i)Fe2^_S&% zjKF4H9*4-*iq5a37f$x#u7Jt+APtRH)QLi-gdxFk1`rTPO0V^y_LbxaR@TcX#%N}Hzob!~Z0qH`NxFG_MJ}qT;e~L3I z!^r&o-GBA9D<(!o(cwj%je*4;#{L<_1^~1A2y2QG%S8a`zw10V?C;^F_Ueht@V}bd zTeMCwh+=-hN$(3+Cx*w(AbgOQH-vp(@`k1op{XEFYc5;!>> zbpPbZ8`GR`L|)Xs`d1Wf`c=DPVoupt`-x<6BG^b3+^<=lN3x-2lOEblU$fS5Ow@XC z$oyZC^iwY7CJ=2DkfT^RGvv|HkEs?-w@)g3%&tut(M|She3w}Px$*MMe|ObIOgRC* zCr#`*$Ma>qM3{YRWM_o|fyr6bk4guKgiQ3WNT~yGq`JD2>#`Nkzk+Q~ZIeiWI928> zkIkErY;_AyFPpEH)bo89%>Mi{tW}K~&%-FVX(PTrm1JdurQA9G%I#md_UC*=UA*4r z&DH2|?}BD5?}z8^?2dtoY)Sqa8wWPIpVRLIKj*;`T3BZivosU4N&jlVKQos@ARWlz zK~FhtxmJnsoHB9YeeQ>h3Ujpwo);RmG{W{H_Eg-Rh_^a(n9e#Uxt&n4AUGMK@b_+36>NZ{| z7}p+16Ro$EGtc|Y5uUS2C}2x^V%hW7eD2Ayt5&sU?=vr1{I?Ma>p_ovnaaG9a1tOG zGzX+7w0j{ex8NMs$pvq6o0LHoNUJzfdFkJ2s1#gdh*FhHBZ@>;{c(`Jd-z&dG}k|Z z_R33g=I7M;5!d$20sQ*ediu`2|AwMho>G@u9SIjbV0+-*Dd8bEX5%%cE2?VCcvfEV zUlsiLnb0S}Kn!gKNxolTA=d%55emIsqn^T+lOdE#MR7>5CFw4#L&9WHV3vJ1E9`-WTs^jbVzlU*t=7i7Hhb=}56)`c*6%d%!5yV(9*b}$9II^M~|J{{+ z9AlmU=!^LbtKyLhi+)$<`WRmlR0ZOs3-dycociw$$86r@jUM&8-xMWzuV*3sgL5Jr z&J}Eu=HV!zAvqyvotHLlzW(OFfYj-f*bT}1*lO)4Df)Hc-n9btcm(U!-5`!Cq@nPC z>*2b=d)p>w2@y(0Mgsb*)GbJ|>F|BovUC>LK8pUck z>jts+nmCH2=F7S=?Q%xV2Pk8gG81vPiLk@*pc`dhAjhPP0GY{J(kQ8}pBItA^_xZ=(;eTnd}I`$`#o zvqk$GDF^|i8NuYI^@L!v*vEfk`#0v!+0({9`tP?MIK=P-w+>(Wpp~Uh+fx6r?b?m_ z!5+$ve#9++eDGhglD}^7*pPIu*x9Tr-g>Ta+!Q<95FPByB!KL@^55uwDTC;(-)l6f zhP}GvV^6wQl)q+TJQuAJoxQ-m_mm|1&r0>zD>fO6hIuA>@EIgJoe6o)b5h0UwtZ;N z8EBK_`Dg!FYTyd16?P)Y@KlTMIH55eF?f{yS!fgMfB)X^VjW}>JZsa0{O>RSGaoYi zA9-*%h6aFmhJgh5#Cgi^K;|luz_81nMo_D?Q1@{$Fx2Z&z2Y5_#TK(HekPzS^oUrZQ-0kL7p zeWTYEh^GP1B95bR%vMgw0v!;ucS_Eo4Z@J5s?nQl`{?~`TFjN?Ix)x`+|cYvxkM7% z3P9q7#`KbyPZt1Rk9^ttd4BW?v;O^&IhKrJc?ly|AT|Y()xuv7G!!G}E0s*mEQ^e5 zbjJh*0UJ3`^gN9IVZi2&14hjT0uhIC0idpQ_?jA+GP-;b2n@})>I+09u2fD0izRYnoN|qE4;R6J%B$%$a?F)rb1IOGRKdcY& z=AJ)omLzQfq`q9K+tXMV&^k2BR4Gb{TbjD{g;>svpuY{Q&&m1lUeU zQ*zDArY{DIzV|&Qy)_uB#D|*$f-!fi0C4+}K&bvvM@;O<#1jUFYt8wM`*1?ztlKfV zvflaEaX|4e9h*-22(g6Z1rEk7*VN0ohXy#^iao?o#ur^n)dFf`jI>8FM%m@X<&38A z2_j%6DPudNkol!Ujf6p+=e#U`Yu==Sl0aL53OmTMxrxZ~p8hO*p@4=VegHB-KRe_; zW#;t;=%4%|)9fU~h6kwuOTE-;vBrj6=>)XiXhRKYoEx^6>cfT+EIx zRiHEe%Zz`z1MV~2>bm&N4Rs--9$#1Vbx7)l=!13(n1pQ{(zf*LOU6S=n!agC zZzq7=ZS+np0m5#V$8N&lo7oS2(2gT>7u%lV!B?tCx{? zyx?nI{bg-by|W!?nILoaEP6phVq^{LkiT^5$SYau6LlUIwA5^@nZjRUsxtTSi)vqr zcu|!W{Gbso{wdfQQGWmy4&}ib8kJ{K!$D{Vy?876gWKTps$4*=u`Yl3T4cD2Q*^k@ z!#lcxEnRa%Jt2W3IG^$0dxscmk>(LF@7-DsrEoCzDGWg$bjdu*RnOBsBtTs`B#8;m zKRqH0WOP6v>jDvY1N|sBaU%H#QmpAG7<9OoIqEPZ|-aDII@{+!iz_ha?^fTf&> z`*l@$^@kX4y9Oo}73^W4z8G8`T>lxemOnw)zUl_frUuxbrF4C_wnA~o zY<6GD^*4`G701PJ<@+t=c(d^025<}v-@Jj(X?Z~(x1AV&&Kkwd98yet0N6}#-9Ru~ z99t=GYAo{KleWPdZjC?vu%;Qgw$iT!)DY7Hxb=$9&UP{S`ku>PLkM663s(&>2J=vm z6_d)g-U?h)E)u5uUN1mM2$^4~3m0#*T=gmHgIv<4yS`qx%+$ctfZ|%U^JWR)bHgX- z3#aMJP!9@i?LA011xW12GwC;?Px=HRB}B0lvE~2)g(-+H^_O9H<|GKn5r?azRh{St}*5r%Ik z!DP)$4>}=iEe74L&n10WqVvC-tJ(yNpAn~SwELbaP$Xq*cW@<6-lj`Nz+rw|GEk%Q z$DT(by)AHGRF5$9jqe40sZ&e_ja$%Fm8I*ZL7YQ}PfOj<0X~^*x`wE>)DS2<=mBaU z6%kd0VI0RY#Tf(1O;Pm)jhB?E4^?zcUvfQ8)tgSjWdfmTqOnq%Vq39NIHCm>EptB#Y z4V9)}8*HZyJe^rN)Aarc=-TH-ge8EEt6MD&XftHi)q0ncbD6?knGY1)?p~-$rSyn( zN=izHy+g9_Eo0*+_y0P_lY>0XWe+C+u}9L*irRK({}KOJ<_VR+mXwd#g6}s3))&nl z9V4L7p^_$^M+ot%NA$!$o6N!c(&xRGFc9JpH&lC|C;b|({NWp*TQmitfR^^?$BMGZ zw7PY$BE>F!gGYhpAZWTiLean*nJu>)z}JSNy;sA=fapAzv$0TZb|w&QsUvLMe}VA= zp`Yvltu-c-!*YIO$(>tu2q*zh^Xn!o_gg=cL%18Xc!CU`TDR>lt^{i~tbeJsgYWPc zW9B!2m(HJLxaF?(6cR^QW&ZjekU#F#qlhf>Zp@K>X?~x-5p?{g$7|cR55o_?N%DtZ_ zK%1?`uLiaPtUn;>x;>=!(DfN!{pHatEM^w(O$3uA=$*KsIl|MA_dunLE(Vk^G;hJ$o?^ zZk}JS;gfojI*|Pp%m%{SCP(q^T@lbHw7-4(WVMp1(Y%?fW1f$WZjz<(mveuDfnPCK z+;Xu>K-eT%NHhPl>(3z!-KPZk6jtiU#=g?xyZmb9k{1i0>l(E}$-)3HozfgRhbe>}kOE%X_KJV7BPQ&Pq<+n5m%B5E@oJea3`9SGo-^4$vkpK(K>!$?jw3NRZiODAl(E z>TT@yO0#LbHWZZV&Cr$cMlh+En-4w$_to>>WNzTrVB_b?$2@tX_%Utp3j@O8Q4*gH zcOkHu41Rk-DF`{H#6!%G zr!=QAlLWIRwQzhDPG~t3^mV`hN#TS1!2b=Lj=)MouN_nr9@lo_ywFd6mxZH!b7SXh z<$SpkeyY?&p*I?On^6GPF9X?zt5t!Qf9$c>KF7p5FBH>#V;{%0>1IhVCn^yx$Z+8F z1E5<5&Pr&$yq))~W&6*5OVVFZvQ8mzN`vKP)cf%!Zn7wC-`v4;3Ep=qio8OuuaTMX zRRW72_=1t4p(GRH=x&HN{_#z=)yG$bZr-)ceJBGG;`Z_?QjC3`o_AFug5s84<(&MY z-;FrHnCM>Ql?&(0iJt1bw@>;X1qFyH+F@4q530ZPW$8(AJ+)H0D-Og&W~@%dbAS#W zg~&EGY~F~mZ7|f@>OSaBm74l~F9&#k<(5B!?lw1c$q^Vax{g}3Bp9Erv4lyWI|P2# zd^``4fHdk`hZ=VFrK~`w9KvUs7;EcOw3*2O8Dpz zlEs?GOmFGY1sKcD6WBC9aeLD{CEg=imF~z!gG^Txi!Q(vAjy|%QBDuZ%N37&joKLs zp14?VYj;7$SdCZK2w1U9+TZ#d!vmY$$_7S#JFpzTsmvl0|3ZDXmK#Ay>O6-5yqHC`9_x5p?0dWS~c% zm=P0*TO4ExnXZNaEXl$$<0~G?7!{Z@8eb+Z240sJl$v@(XfX2!xpp?!WJAeAt zl|O=}5`|aIvk}efq;5BpUvkbF*pID})j!H5lasl;&hb6+KnXA~n5i>g;|C!ljf(@b z->g8WpRAN`Aq5k+rCJ8vR^`%OrS86}Du1X(lamC|gugf9Ti;3DWJp_2tI#ri#B=I) z11U@~>v--lP)KDFo!51(G!zr+L3mI8gbKVgo7@sEFgV z^!tF6%d498I%xD__YXpWPHZb9Za44sW3bT&pN5~P>bL8 zGs&fLOeF0u=Z49I!sphCO7V%rN^!y2ir;xJ` z{ycazjw8{9jJ+yFMWgcrs^_LT3S_S*7l;7p%l`ZE5^iEmZZCiGUd%^;_^ni_e6--- z-6v0-ocz{Q``(a7%^#y+hbGu~o__vPlCEV7l&5TuYUmFKp!`|V4!2|U1(Jvm+J`^g z#y{jY27QB{jPuY!ezG-2soC)>>olHMscWkS$zVL3?0mSwX731^X=z%%duL*QjWBG$ zL_A1$O0&2#bu|rM;O~v58u`aWZ*-}GU|=QVfZ10K&c94M!zT9#JZoY63E3g!rssoi zagJudCyG|WOQ`$%my)*#+}oS|-!LpAg5q*bkJEC)3mNBjg8bkYrw!A9@9Tr*rCo~A zP)xG(<)F>h`xgmFhZ;tw=5}3<)Nn9K7w%u$wvX;$zylfa-sCxNB%jjfNgs!nwj-9O z738j%HuB4N4<#KB6eu_o0IWY+TYQFq;Av^UPPbeqah)wvGP@?VM+mVU?+hLi1`h-{ zRnXl}LwD;ndAD}eQfo-F)3*j_#N2$zRiHh;7)t_)yiMOHX}EO)K6e7 zG48NZ?J=3 z@z;xk+=0-lEME-EM&$I9I00Egw>ta`D^y4btg}2RcwpZ<@-*VH{BKYa$_&l1mAAe7 zM)#7%c}3jH$URKX#?W0+Lpjz9_*nM0X*TuwU`46Z%MXFQ>)oZ7z*sH4({J+h$=4-}yJtd6Ygc%hkV#zHp27(xaVVX*b9EuK?~!B-em4l#TVKKo#JKzd|X z=BV~~M&kTpW+jX{=39vUxQEH$ojrnF7BVsB|PPooLpt76_T7Siyh+z1F&CwT~W2kSk`LX0=TH ztP^Wirz+|ivOsVcx3rErWKSt`{hfXR1G7+Tyo7w{Y*rG-QQhTi@mCrL+eBRS?Z6xl z*3oQ<>Gk^Zm8#7#uyl@dap_F})I=lv0;;|nSJ|W}-8>LL)bLC6D9S7W*Y!vh`RiGN z&uxB|M^US`UD4T1%f4I7o(57-wKgQm6E-?Zd%&X?>M*GcZ+AaUO!bk*X?G{B-9mqD zWuiXdTH?ORjcuNtHhC`By{K$PPCf|FqtC%|grdJo;lihd12;4AoK5qAi;RK{R@um; zY@ev22pyvn(96M&&#G>dQC#}uLCAH4=2`ruo*;bYMrLnX^!LATP_un>%hX`}B}Xuh z1!l+KyWW7E=jkgON*dgwkBc%EkO>{yz|mmstW4l=2bR zNvq`}$Ve#aU8#5;moq?btm;KO>D`RhFIfKcA+$=?=f6AFO~z)Kd%qos_6*G2ck9^I zB*P+gkk41hmi)}U#v;*#vs(HeKeKpaFL~QUSId50KJ_tjnXBM$@Z&XtYmP@iUApqx z7`Sp7d)5&5(Qdtd)GdF+?}4Ge@4MYaj7ENA>sw2xtbf7w}^Ba(Y;5~ zdG_)+35LY9SHE)5ejnTkjwbjfA`k#}<8EuCd&WUxk+Cszj}iarO-2cLkJp_iWB~K< zVN~@6lq~EStX)8tk<#6~YhgD$T@jN|5f_`c0^2gDNsJ>9YLLGezmaZ;FK#UU_ych|L-A*rQ9*AJzY!%u}xWm2_ltmK}I`RA&44* zT8^B5^LM2^QTaG&xm^!-OrLx2o$DI2ARqHZ@J29<|O-6--uQy`e^5(wTV2;O@4 z@CGR5JZTrhg$HG0OezPu!WvXmd|uxxuYt6xV7LnMUqKh01s!ejusRq=6>L6C@^hHr z@*(*k>N9sKrLF@$hV=M288`7Yxy0@Q`yyro6l1QYi{OI8Bqyx(x zp>Y=W`!wdq#FNLyG5K0GnotsB&Z<3=7|M-uEy;h=fraGUJ0}N|+|l&bv)+}y_kyc#hB#4IYYPNy!;;;gFM~xP;o--@+5l!YX_I(4QqE0L?ta21hfU5Y z#{2EVO9Vrt!b9L7)~;f4jl;)ra@BWgpW}A!6K@xONLc#yzC_qEb3-vPVmV4c=lX`% zF2N)&@Wd1`n&YAFlvMRrE#rlx;hmJ>pLZ81bRIj1iqP2%33DEmiVCpP2{72jz5CGc zhp_5?#Bu4z3m+rjktfMgB)6%K?=Dd526BLv{7{Z}?+p(erCEi2>}}B70c(|)5)IN) zc~XGZqLa3Tvj0OsQzx*rvmRzPcU^m)sr5#l(@;&g~Zw}MmylCW_qFmfEn^O%^vyNA5bs#m|QJJ7BMVY!@XtXXfWk2=T; z37oT+7VwVYDw`GKyq%3}lX)!&kdorW^UK)=I^^7QE`_bV#S!yj!?5<#_sHs(_JiJG zw8Uj%CePRBv7XVeIBNLH|FM3OtZ;aU=6;laN|4$YUkdx)>s{oe^{7DVMQcEY@8L4Ry$6MpD8vk8#CO#_LTjFi52md&VFIYzjZk39xzj-h7uD1k zfp#A~s{d(oF1c&ag?@0ZIHB*4qVQcT;nHuB^}9JKr?9K(4UC<(>g?(`2`jC-d_#$x zv-K|jvf;mh|IAH@#!I@c{&V#ceWMzxWHqt*+_n_ z5O`&jKasYO$?0I?2l-@AMw=}?yB>gnI$H2)0<(*Efv{-vb((| zp@Sut3@Ig?kiZthW6l7XnlmDv`o(k$)A2XE^4m`$^}Ex`JBXbXBZqwlyJS<52G6BC z3mS88@QiPIttn{-^p0>%p5RF0>^5PEEprSmTg}4-V)P}g?{t&|AKp6+LaGF|a`<+r znz;T#A4_5!K5l61qP`F0kgBe7b4QDvCKj2Mt+?r=P!AvbMu3+q>qP=J54{G{S=+lS zj!|Su{b_kEH}%<>9*h9CQ*G>Ul#K_zxu#D|(2av9S1Ycgb_k|BxbAEALZcnpS?VD_ zi)i;3TIA{VpMCCU_M~~4uD!wO$frbo6IH1a9zW%f>*$Yp{P!@qv zvCwN8x8BFww<|y(%?1K>8qEI!2w|(y+;?SXFVcXF>*grEY(vSoTnG%O36g;##m6y1 zEG3Jl`SscbT5ol5UG)+*UuZ5+(~uj1e4tO599+}G$c_-c<*kA+B21wYdteAigLI6e zmbl&FW63~%y0ZQJLE0|6#fg#fJ$G?p(kc+aRwwdA#AksLj+7x#5>r@XIH<2)ZBzrm{##n?;Vs!daYIZ9Xn_(rZ^Dk-E$1yp4D@6EQA^waTOpp_{Pc6 zL`hhj>0;ca2fAtxgKW>$xNXfz2R4;cX$#=K#yc)N-r61)KxALyMh^*72xsE!w-xwB zN_?KYM&RX#i&ZT=6IF)p(w+)%c~C-LP12r&G5x3Bb9OL@E&%$8#;rb`O7Tk2?$cS=7UG%jFf~+PhG_Rt`=05 zCWeY1`u00P6*%HHkp_8^t1n@b?J&*=qtS;0)hPpZwx|tsCwOP0yOs*&zuurP8OC+2 zq+F;%-Um+GxpapX8N8qC6zGC{6k{zxL+Z-TokAc0n7*|@NFIbRlehSx&OKqQq%v{Q zu>{q>uSK>o-P(aX}twS=Y+nNQ<#2fFoIx7mCI(jlYqUt@~sfXTy| z$hj4wP?x-n-hQe(%U5v(zXA5sIQ+4_dp#0{NpWThzN&e8XS04!&0$7b)$xp_)XV7G zfy`@~6CNTG$`&@I7b@2;{8vn%@lbC@7=xs9NFPL5sQE+7C&_G6ks4o$VeC4u^-2OJ zd_%(^>ImZ@E3A_}yp`z|-+_AsK0@W^n-#B}hX-YTkl(6zHQQXp<$CwPCBF+sL#~GF z6ez8TFwJ+>SNHOEinG4>`TMTb#8oEtl_TWmaWq z$k(vlY#k8Mj4>OZJ1i@OqHk+`*(Hs|M;|^&B818T~Y_t8()fpK+*Y3GYfMJOZho0z!!~zd`^kD$!Y$HGL@ll zE-q-j*q=#A?qlZ9qG@q?pXJTTZ&^G}>mS;x?0SI^;af@HzwSBhR)^&o$EeOG-`+9? z3$>+@G5t2~+fZKv>v&#^`s~zx{khl6YdoyPPaX@+w7)v=k@uX=WcxWg<-oN*5EZ>1 zm%Gy62@`bRAqYc07Un^s0v)E}(Xo-14G?mcK-?P7X$2U+I7V8=B2osLxWW>6msauR z&C6@ULOskY^=n_bteGQsvWYir9*oi|7?N*r$5?UeSj8yb6jXftJM8k0RjP zs#Y;SSee?hptHY!Zu(`W8#IZGG6Ctxk{N7qmmB=Zli-k`U!2~eK~;&V&{mnhk1H25 zhteMy8d>riwlFB7aUSeU9X?V3VP7<&MHwc*9!ZMS_wBsTyF;L)6YL*$G+Dyfvrpy0 zEk6mbtZiU|UT$D9nJ-MJ>~fA%y_;_yhP4KMTgXz6AWWLf$X1Dn({pnbIf4!=m<^4Z z^&3ELW!-Vf8d*k^CV}9G%+kmdZubesU-d67_yW1I*TrEOJG|@(6qmT38RXQK`z|+r zr%`~e{y*w$;q8#nj)~xw?MvzlPPMVsa$pw$W ze^Ba+$bJi32LpDb%o@$q^lp(2P&oM{U_9m%2G{tEPq;q?Z>$)w_6;E#K;(}$o6DWppMXmN`O9KJalm7np z9`NRQk-+iBjEL123_09JHqg%T-aomPoJSFaHl3+w6}rLn3#o()QF$ueXRx|L#Zy(U zb5XdFfL*?UhKkms$56;RK!6z4IW<`L;&)~aRK2Q&Vc&iN83ys`h^Xop#^W%a*LAw{ zgUe_0Emjrz&UM&ABije`o==#C8?j|CqNkJ2XRa!ElfKbfi8#o$jX}m;=8BXr=WQVV z$*5eJaJYSm$qS4l-+@Av56*&xB61yYrP&Z&$A13Y-tc+vy3K@)KQl9+a&MykarQK~WSP=k|D7BJ zpPRiP!rOE+O~4NA>O}Aj=!Nd=kdNy|u~o+3P%m;hc7D_3UB@3W`H+_SC2dcAgSn6q z6>UpVJN8Ob+|W{UssCG7tYv_3HaK`Mvw=2!D=WAfA9O#{-Q~0V{nu%oNoaFaFZpf+ zY$(4ld+t;kdN8n-6fu9XIseBArcPNm9rgTzOg+GB;$2(5=y92?Xu}%P6p5!0+#I^F z&4*5Jlx=3jsG0ZF@~-OsI&1#i3kr!AH`Zl9aJdd&Vg%OomSPz)(qwn@hK6i|IysQ=fXl5~-QrF01ylc>Fa~Q0>Ti{>Fw>RrtG6K2|Ec}J60Mv>U}7@Z zUFT1m0W(HAb^T7)Wq+BE%%Kn);)|;3-~>C~p@m;uZ;r)u!h5IG?xLb>9ab;)Xg$>k zO|eINrER+6znf>oiRWh&Nja@egsf+UVaqvQLO z>?|X&bEHLuO_4s|O#AQsWa6J67bJ7ZTKU9|rY<&9iER5e<-rYY+n_`$@mp5`lu2U` zb*E`5p6o~Ldd@c)uyXPG7Fa&^Eu7pBDSMbbAYLfUe*+c|!z>vLTe|ZDOM|EW_Cs8o zAx4Bt`QjIV=B9_A@4x(jC_WKCJ}j9bTb?lv&Z4+-!Gy|}8ROH{=^%mlPDkmQoEFuA zcWLsMeb9hH<6Vpq$o|xb5U6H5?y{(Usn@peF4)HOMjS{i&vmtPfEN`l=(Y;ETg?N|b(Y3u#HDR(A*3Pr!IB#$6D~>Nb`;29w?QsPw2`eNG z@Ban67z%4o?!lD^}&1Q@1pmJ%DF{`jmWh@ZJw@}&Gf&C+(7i}B!MFY!1 zF-FmEl~N1dcI!j63U~>dEUalrUhLsR2kzKW|D}hBjNIZsITHxDbQ)_Z4Loqt#*TtR zU>TN4OtOEcK>%QRZ#Fq|__qd6e*(Zc5mF7^snGP3f4R(P61CW7zCGq5Izza zpV#78G!EZFi1OV|CHE8D7^8b5sY7mH!!VMve;B~eCq2H*7Ns7JCu5WRKDQ9rEV{e{p{7@^$J1Yk!{L4gaDWP z4e>i!2cMBnHH10?-ClM^$hJbTlBV76Yqsy6KWA&KMK=LC`!hLSJpra9gr((ZcUcF0=6>Vj0CN7d-Qn$Xp#Fx>_;p@>zXz;YH@0POL4^PqImQ}! z1)>KU!G}t99pwdDs}_vnQi-E&V;3F6+Fq~%Vgb21#F7)h>JHp2TiP-1-X|CvQ$!&E zCJX`{1@s2UJVL{l@nFF50nwp&VPO_u*En-LBi)^r)walmz652ZK@!Fm2(n(Fc1SRz z_#U$@ltOPjznv+qT-j*;#yL1(pg}^`Pp9sFuw7c1iU{Q{m4Gh<(L~hOb4@7iO$5SG z**CzJ+{RIr0&^hG2Y)Bi$U?t@30YCtnsL&}jyc!D1 zvV|C8
LfW5{{Jl)cZF=#t_%)s_2+9t4kX&vJ=yMX`bZ!Gi#7ItWTTID0Yn%I4{2uAD{Ry&a;Dam zbvv(-aZT&vvh$3NZXDk3R~P@J05oXun8n6ZzlpAc=$3T_Gh#om>Lg|N>>3F2eP1J! zE+m7o4P?fE-gGdqFAb-U!=FrWZ$g6x!k)�D`6x9S`qddK5rzS+`~HyGGH$Cy{L< z!JhmKp8P!QVbL)Mt%snvHjn2E!99iXpCnP~Fai*Ed7}Efx>=YkXnHkG4UIJ}M0+I- zm7wYZ`qI5VW9+F&rbM#}gTb0~YNP)X&SN!{=Shy{PIkEKm=v<#+52yk8-Lh8R^eb1 zF%BLn-MmodtOtUO)11ZWDvRNDvu!h35QiYbNhA+`!K-)VGHZ@<`3;lQ3jOMzE=CU{ zV6fN@{!GVl$0Li#KRWj-Gjb{*O8j(YfMO%6rjF?y^)dtqaM8}t@S~Z+A03g$dJxP; zp$vI;ku!k8XZCmAMwSSUf$t z>@Ql|ekWU3*36Na{ucWPD`)1Wi{GMSlKo{jf%Ze&I3`-&>ULY~%>nfAQO;RnhE&n)qMfKgPmQT>_c zP~74k^0@%rP|x%&rYLxaDoO8@#}0h`HV;N!bE=OKq)n#db@No zTyNjfAp97NoGW>v+VuJ94$0<)hs-Ju;Ym6KISlmAEc1yPo_PK)7cPiAP}yE zlK%+~jrf;j-T|OouydSsPn$9+y9{(H8$1v8r`%r#dM5reSv}!A2t=}b`5ud46Dw() zC#mZecTTq11^h*J?`6lwSH5kt?S)|~c&H=FCd^EW`GCMnh66sNDT}Z&9JR%r{Z`kf zgc;a9>M8DCa`;~s8A^j(tdlq`t-L9yH^ z@iRgHH8>k8%?(J}X%P+EN(_QE_+DpC-1hOQqghu>9jY*aSwx(Mh#gs0pt-B7zpqex zvZTG39{ELkX%G=+9X}~T&u|ydqfr2eXXVP-N0Esm^kYozi+|mce3+eeO@Uf|J!Q~4 zxt;~5?s-YH4&2`T`gfITFjdmK@>)1o8un198xPik z6mBud6h^Ro94W{7Uf%vOHi&}QH=8u-NnSTC6ebC z99WbK-TqVQja>KZ-1d=9o(QL0VQSnpA8}X03xL`0m^0EPGc*i2IA=%5^s(495a@@O z))883ExC$DZ^9r9<(9Y~sG;4k>filDavitH#_BgbNR7u;e_FloC5PMyl5U@ZWsD6> zZN7e1tx@^1L$GV#op%~$o-xPF))NEBvz2=B=Q*AqpMXBsw;WrAuU-oQRqzy(%C2~n zFu-T6CGqzm7q9P>R;Rc3M#zrpjU3++pQ^m*=q#h8`FekJE(Is)PIB0Y`C_lHAIUyg z%F0TDu?R-;h1LFtNwi+0;(yomA^spOo!9YTQ!X3&SayTwx*#JX(q^KlLJB}jzy9b1 zqt~vJmeY$`goN{kv1E$^?OI+5f>-R+SYrBV?(&c0fmXwN1e=H$0W~17PJk>W^Vfs+ z6e0jnkwAi|^PRG|&h;vWJ=DV2cCliJ3cxAm{uaY%n|+KQ|F~f-)IJFJOFDf$sz?%6 zBpgzu29{REP8l5L!21Y2J-dz|B?i4!19~XqVfQ`Zzd8wx>RL}zX8m7->l*cJnanK6 zy$+&HCNzr|dYzt5jepbckIjE%2uOSi2cmvGhr@4DDLXz!=<4DvCReHVds6Nn$!T-L z2@U}yZEKgT3yiwgU3>A!t^wQF4dlpu>Ncq{nGM`FAZ^(Uy;wJL{c+>sqsOrG0B&AY zRQbf9|AeLtEX8XE!`{-2=VQ6k_^QsB4} z7-Jkb{C5_V;*Wm0LHY?WH|=R({)Y2vGI%|sAkLrzv5f-tuV~>)C%&H9)!&_#(U9)i z{@}?;Tv(3pK)|`9P-UXCUUc;5h|~8=5MO>tGwBAn0n;i>Ga!TzOHB?2VHjNC+i~Gx zx(=#OAq2;==YG>qx9rcRnSk~}C^E=W{(k!5K%L0oQR8}vOE)J#k@&$QN#v5Qbhy>1S}Nk3IZa%gkF?RXi`ECpi&eB1f)0VgaDz1UKCWC zbVBGz6G(v2LLd;>J5PDv54#_CWk zY0=P}ETy42?s4`s_!spjzQ!~(e#exaJ=O6_U7hsw(BEm|lva7Qhm^$>47|6NNttNNeAn3{2phnVE;;Z{FOCzfJyU3K8C#78D z;%(*dd#1f@t=>Tv@ZLQ(CFz(cvcHU3%Hf7Y6!>E5UwFAF?94xhfn%3m9{c<7>%duX zdDOp`b|>}!IVu%8e(#?neWqiK{~X~p9TuvS!CzX={vTdC!9rk>5Al!PC_HdJ?6dd%z7?SJ zp}ygq&&ivAIn+`(=+x{Ctj2!@6L7I}ipd3vbfNgWG&E1P6auZDSiaYG6Nh1cT{IE8 zpPOqaFVEL&oGA2Krx$ z4Qz;q{U;3LU5rb@Xyx`j##WR2Gm(GXaU~r5hJ`SlkGJGfJNfu9{SC&&GAWt0p(Ojs z(F@Hxi+JySY+4HOdvY%wk-9T$;xE74Tb?mJv7ItA7sqsCfmk0@`kE^!7-{5}<%A#5 z4qy^i3YbRA%S=~l{aElro);1c?atdReNA`vJT`D%M{2@8Fw(fQ-&0SpKmSgo2#lmb zUzYibyt=+YwkEuxb$i_4Kh68lu=rNC@ZH>8wl(1=%igsap&51v1*Q7rBD;s}j)Q7zuTlKNnyf@j8 zPMCIVVYx_o{rk15)A-X^8K0DX{lHW1AC&uAZg?)`Gwb0zjfO>Fo)=!>v~zbJxEMaf z3&6tFx9e5gM!fiwz4QI+t&07tT&yChE0oClH3**~!pmlolt^*0$mEW&RD)mU)Z>~q zf(KSSy%&7_{dc$4U|z5R6}cG<=Jf4+=(p{0tLo9?6MQt*6pvl6$?-;YZO;>@gT+|L zmOocRT98PJd%LaFfQ?2(bAZQz5cP8uA4hQUcAGG&7Yq#e>kTCQjPLf~4qg+}&DIA}@__STQo_jQZPPP03YJuaPZt{aLY!Xvw)C*RB_z z8E<5drq$VLptBZ5lmt~%OS%^y!M3&3DC$&~A9($E5!17vpd}LL9WTdTe*XT-Qv}<& z+D91w3Zv%na@}y7DFj%ekiBlteR{61$C=s@2a^0!acf(iy{n^n(-DbZGA^(|tbDb+ zg4ULY$N6^O!uH4yUo8f2G3_7XJ3Zq}(8SME;+2X=Q_afC){|Uq5Ds0i1L?Pykoncc zsPfg`>^r`z`{qhz*8G0GNR55xsv^XJmid8>32T(RSQ>d+Ggio^UvhBqEOkLyt8f&3 zb4>FsgjiN$cg`fhXE_@R-OFy0+>b@mP-l-A6&N zZ8ephv7Ll8W@NCQ+1{nNkO|WSGSjvW?KugKK^EXFQhck&OvP8N(&9Yq((}PHiJ3%>CnvNXkF1 z#~bc?P--esI1-uN&dxyqU_Z<>!wO)eqe9PwY4c|nzZ?34Q{|`;{#Za%MO}vhAqL4_i-bY2%o^Wz;bd7aP7WYKot7s|-f0;Y%0K&@>QOHc7l&KV zbtvwVEEc`ERzeE14q$<$9s2%0i&_nsD$|rPt}im(cZ!sZkrwm+ZcjFFM1N)xNdYI3 zt9D<@1Zxffo-iUm) zuf9o0>y0rFWW`Z^78bqyrLw@*TT)BmRXQ*UqM0z3_3^Fbg7m>VUdKbUXFZ!i*-~e7 z@#{v{k%nex9yh%qFJC1?S6m{Q8`5}0i#%mYzq7Q6S<41)-usVb@xH(HxR2C;?;Czft zrgIp{-vVcnN9r046%=@SA%$|aqvYRRJe|P;31<6cIK2FqX+f~egiam5#|~`KTPH?f z8(q}fAD8hp+juntsWQ1+;>*=i(|5mnsZV|@Z&J(3d)K4i1>%&z$WUCXy=be#N06?H zh=hzU=~LgLPIsgDOuRtf=HMNul+zc|9f(>#S*IWyl_{+a7W>@xis> z6YxpMyse?z9QR~7wT$ei=tPk)9hJCgbkqm!{lv$U{kaKjM#Lo3k$Mx7J3f2yj*7NB zI@yxdVh-~_#FXTL&sNkE7;fHiLJ?UGC4I`*2>p7PuJurHmaq@%I@P<+fVYhjNtGz} zjrYs3@UE363Ex7aO*165P2fS?JeQ+ie0V=p5bwC%`lgjQoGArjj!ho!5j-19lQDxi z$Ud_@jeY3_Gf+d2rp*#tNed|8Ag5A1Dte=ZinGm!#Ca7!m>%d2jl`&n77a~%IF@YG zL=bEC&11J0AH)(T{pA{=PhnB&TBP0E)U!6$1tcISqB}%fd#(d&eeTSOQ2TEit-J-V zt_}0;doITr_6Ty^GnPZD?#1VbQuH-TYZ{CRtdpoCoJ3CN4q{c@;MUhLj}Y7>!p&W7 zzXwuP{r>$xQKX45(n7DX##u3rCmwcgUbw#?L~_Rheg>bUiG|b(#;``ea5C5(MkNIE{H0VZ~pO}g=%@SFGk3-xK?h6Is&-BL#m)&5kO7mC-Kkv|+)NqJD*bSJ` z65uqZ5+%F%)?Iv?n5^!DI9)Y)2+MF*K-x32B7Zz03~le2KpRxQkUU3$gCkSSI z>tsHr7P#20;wH@UYrObtmjzJkI4Fll{owF&et%h*-Hl%c$L z>C7_S_WL1j`LOAMC@Tj^+1JZg7U9zwf&$xPA{BCajt#3%oAciMcq~V~uQ12;h#DVOCI?UUd9>F3>QLNyTkHK9|Z@?y}a`Q89{waUM!w;X5 zv47a87($-4KWR6eb1fKqDN=+Hq&ueuowsOFg}yad8oK9dMEi_44cttazP7{Z{#Ypd zureYNGmx^TOY)k=ovI=~H+ae7YXk+A0;1f$ z)x{K58J5Qriv-hDuWT|GdVMV2KY%7Yb zFVmQ?i23q4p1e?621{?XlDZlrd=z4IO>5O(CO!daaDH0bWe+VOoZ~7iOW^r7UQwvV z;duQjQZ&y?Mi;gRG7!_=nI}?f_}=v4@{e=BLWr%I+t1Up{3+?KiMN$c4CF2ft@QK4#eRd>a+_OKL|#>ggf?-bvrNx*kSXuanNCBe`+9tX zWJ41lcdrdi+V8h^$zVXdY0vHyCHF>T9Wp&8SvA{7-?+SXR+H*x`4A!uvwK%o9oe%*q9=ne6mz%V??m%4f|Zl`qUJ zQ#A@&OMsWz4$riR`^_0tB%pzP_NaI9iD{Jm?2gxVfQ0BWCHo94Gw1o_>{a5>r+(8{ zONqLU!g-K!Ue4_zvQK{>iU7i(>KmG_&}8V`F8RyucKZi%|4jn@d5lzrW21kAzjsI+%}>mm?+@3)7pYf&-ezJ3HZJ2h{pHAj1Yu2vk6w4bC#YxS98l1?I@{WU z;TBi8acWPmicVE^EBSP}Fuurita`4qxog4+?nzv%D^~917{a=s;vc+7q`aAFSjNS z<%r-#hu&M6FXQd)_E+L}hmS{^R;O$&OY)1w`7ca|x>XSO5blnR6b^JmWMjG1!|#Yt zU-~{lQAmjjwlB)pQ6Z;l$KdXMvo1Vuk>pUnNjM>Po#;Y-MXkAd-AIZSCMbb%_qC4- zJ-(_(wfJA#7;w;>;w1J#M2_VC3LDXLE~ zCM4Gf^%*@sU&fR$yCa;8ID!a^A8(Z5^i#D9zi&`e_Z9MIYl9axlQI|XAK7x>^#E5= za)iD&SA)G9QPp2I=HG@z6L&(l6CT9E^srN=g9-;QXOgt(xPRTN;3=_{>98bh@}45S z?Zg>pFNW9bvld)+@^>PKYciq+>AfBCNuT_3PaDX|tf7|)*>_2Aw_A_NL=Jgjk+=!A zsPyRy)wJo|d{A1dgRokF?lJ0Wzsuja>=fZ(AiToA^I(j3VEG7LkQaO_4E}N0@g7F; zg3`dE^xKgTEv#^v80)y+gCh_m@<>>H)OFQ8@S!m5=iqDQbe}1bl*9B3u z{bDkuE2fnbZw&7(z$p(Z4~Y8G4~f!UgEskm*8W1mreZ{9Z-Ew(s3)#O$x*z3+9Hxy z;NuqhMWB}#%jF{X;JAGD>XuELnLiJdck;eh6j)e_cvnv(nHXKb%piK~=zqBhB5R&Y zO&{t#*@48m%OupIqJY~s^ug6ob8>u-^=?B1N*o$$pXBddRiFW?imVb^2~dlTDYWrQ z305nyk-GdSCTqR58UzYczdrVQbzAnSHhOB(3({DqZd-}Z7eyIWyYYTJN_^sS7N{r+ z##4IDk}j^{57oA_xreNTF;Sg7h@&~%c+~#tb0@X0J7&}N=5FFUh_{j`N01qTMwWDb zvf%>pEp?|}Dmq*0SFkJxiwc_O)$YE%OmBpxz96Gj+j;fE2-VQQ9iGmw1%b)mO(DCF z`}WU^cz}$FU0mTv>UGczWVvvkbeIOZ2+J9B`97GuTEm2zlN9L4V`_YwtlqYOJGc)0 z(w0-e&&`E4=#D<>T-_KlNccrNCF7yd3rS&HbghRWigc3XPl+$Kg}F9CY4(`-UC`#$ zU3kJ0jv}-(=bwaXUj1nrn8i~fc&g-KBit4>C0(i4cvX9QWf#F@R{R7Gs;NnAW0dJZ zxpaTD^3*pq2iwGftSo!}Lw|$bXVcj(16yu%M5#}H5qFD`?`vg_d#gGKw0S^u+Bpg3 z$2EHjkHuq51-;;)E&nZyCrCQAy?Nek6tBroF-w=~`*@A9gr)9Hv!(mZVh0h02M48O#TtsZXYuy)}DCFVBUlCjN zXcV!_lRY6x+gGTzuxPi8*yfet>rEYsJimBAi@H6XEzpWjG{o7H^@(@|3+c54hTXgO z*p@D5!p?0Itw0kBQO;COyg_aJp-SkriMYJYxEZ_rs(lSIdzHSw;tTc7@k5& zM>;K=I70(^f|~dSZ4prL`>0qrO)!1{Z|__xqMY&H0S$!Df*QZp#*Y zsOH7s(S)>jrg(IX8BVK+eBP4ADZry$CNvyli8jr=v&>7BQ?bjd^-Jka5PM~amn3;` zht6l~HydkLSL5cfS3gpH8x_2Va{3miO^kl<()81>Q9wHsm)WffWy@Vh)d_=yo0?Of z?t$0#Pz0pnN@n*sBAN22h{4g<0k zM?8O7^GjDER3(8z*oh!-kQYKo5cuckO5U}Ri)LC*b|0jrTy!$h9~a)i3SwDJe3y%P zL?H%@@F%W?v$Czwq7H7Q^Xe@9{NaD_poL5%xnTA7CZkSA428B`gl_Grv{IUe9V9&! zL}5i_lE1}%kMLo!*>qJbw#wvsj~SwPh?*;S7(dRhuP2t2JL-m(kSF8Oc{_jG>Wr&^ z&nf-bare)Y)=1*{;7jc2&o6z6 zK*diFrJ2jn>#WS{hkib@1=uraP_PiQpK{teTm>1^op*|RsW_158K}aoW!&Er*@{br zyChDQD}~V)H~!v=A7>jltZ#-b*pN)<_wOx9kk+MFyLvXq(wS~R@P`EQidJ*0>aWI^OX;@-If4PJ%F;m@t=?qR*~L>*zTQY z=R0vxS#^tv>lQ>hG&KLTKhzy8stguV$@yVU4keJhSN)`L1uHHcuE86t^qNbWJziG# zkQ1Tg9%6-XU7TkihY|@!$exZ&{EdchbXX8er1Z?1bbIP^-ROzxJEo8lPxCM{B<|E^ z^4%N0(r3scO}k7=*Kx0xn$JY8k2P&fB%Q{aeJNr7c1Vp}B_@95#ZSHEgVXi5YNhKo zKqFd?^qi%Yhqk;V)RFCyL#ypOl5t2Sci68Vag%BS7j{*x(X%HE#N zCZ-uX=H3VTTgxxkp$rVg8z9|(p79jQel;I-MV3QOxgk}2&u$;S{eWVkR&6;| z)@hi2!EkAM6(x*dXyn#j<~kJFlR8AFhne^QIw+$XgWG8k<&uxX(Yz-@oHiiMa8HPi zSMh6uG<;Y8Z3eceri~x@V=ir2QuC z^|GkZ@DiB&=*+v?y$;tU6H8r8yG9bgbKEcK);nZfYHRFUh(Ttx;9FOYm>(JRu1ytg zhS8=83JgUni;X42bU_1jFmQf|w;FCWaDn(jW!P772l*93Z3UA}k6zUYd_AxB{7rL{ zpFgjOQI8GuIXYU48nt4_J^E74kZegm?t!#%=+-SQIqku1{poMgiqGLX#n1gg+9;!6 zuj8y*i|E|>zJ9hi)h&ZDhn-rZcM9<9BHL{zhssiZ=AnsW&L8TH)r$@%2>W;Wc?~TL zy$Njz%2v73c<;UP`S}ObroR{oR6U@no|`XHG}QU%4uiF)t$E50d7-aNI=o5mdb@p= z<;ot*lEwaJC+yJ>ABO>`Df@oJn8PB}hqT`*+O0#7hbB8anT6WQ#k)S=s7c;g-IMz0 z-N%&D!v>3N|NAd%umtWZC$oiCCzC3xv|`Ty{|2X8ZqQyG)_ee|Qnwo~8*b^H8yH)j zTduYnd+Vv=kJ(OoLJ-uy*YzA*=>f@q4`y))PLjXTDAx~K`f~_aE&?fYNxIRoF%L~J z&b_qW+IZU5qs?i|Ywe?}vht8Lw;E`eZ}28d5SIMqetaP<8ut;ZO9ll)A*^wmlw+;i z-^$*Za#m_!JoN%fBC4hJ7dFDd8cK@BE`t{aH2G6>AqMCY4mOh1^$IZKgWiRK!d*`x z=+I&A1!bqp?yY)>S&953LXoRc{$vRlVB}JV82H+gFK(g)*_7z-8GWGx=gl2Xxg7x= zRmk>JA#PfMQlQb(y&1bh9S(v_dK*l3AXO3$RebVu_|4*laQFMzBZ!1E7{XO!9ww8Z z)aV;TKedgo0-X%%Fa=Zs=*}I`74UJHjqoQCpr9>f`iHPp%Moc}@_w@9&Y7rzSlEH1 zgSe*xpISyid3WJ|;o|G9qvMdR)Ex(LfY&?J|L0RROF7P{F#v)jSbh zU>%t{E1YPQ;Y0ND22n>eoM!%RreIL_EUhcYOltELCMg!gG8@xsCD3mDc+tciB->0W z!^8O2=b&Cn*KZtpJ$+Q_n6{&vVrX7Hx{b@Z;Sc{*AHUkcA{v_Yw!lF`h@k`W){GVDZ@x}2|5uL%DGjneT9$|+p3S5kBDV#wpF8z3K(0v!!hN0ctS z@$4UvQPx=N=(OwVu2JS(_YZkIyL3%CQtD+3*PpAFuIsu5L>ubB>M@Cne_iwH z&xEm#@+h2!>lz(Uj!v{&Dft6q7~A^CkimFN&*F zsr#GWFli7nj>>$)7^R^ie}Wz}hIz zvu{b$Dh)Y9Xv9^N%wVebLGh4WVLKIvFgq+AcVJ3PHMGJxX@hc6Xn&BjO`TLZS1prxxdo)W{)o4A^V=wWi-2(Q!>GZKLH<0V?7y*M*vE+i+ z#`Fx4lua8IPlkw|2%ImA}XPD!rO zVl>_kBul1uekm+6uG*yaPUUdDqkt%qD}UirrAz%F)0mPxXI;T-6;kKEwX8aW+7c1d zTf@f7GOhiCGKNJxd3Z0Fe-!v{oyp1K>Yw>&?a-0OTtV^$z=2oDpBi&LEMjDl zDLSA!GXWCdVJ3+>VwuWMAgyYE`HiWz zN)S&rH5u?+uYq2*OD=rNb;S0Ug3u?qB+z+j}1%|Sg3=1;3|qqg>OL5 zW4NNe8n@vuSLkr0c9cm5NldY%Te;~zy@&lnb;RQM(EymjP)jhT^f5y)YGZ(UF3BpD zU7R=Wi_u>8u{tUdm;3oddJXUclj|ME)Ik&&Au5A14Rj+4QMi+?PARke2tTzO}} zQ>BLEoBBfW#UxL`Uohm2oBgIYMk^n_5k zl|5IeBJWXGb8plD{qpFfkv&|hdJ}&N^bGq{MsK&}-l`qDgS2%Zbvmvg7214C$QfNn z0al-5jH(7)#aw9@BxAGtEEXAjRvKh`7CUrtF)SY5EQ~B|vj~<~TuKc6Grab(U&_@G zy!IJIn~Y_J?;|wiYqVWQ_)hSos6x0Wb?6abHK%q#CdTo+1PKWa-TS4>?9KLS2KQ)g z22$IoNba7f;ebpTr}4gLQsq@thwnVb5}|CrNURU%`cb#I6}3GIK$^ZspqX%K!2if$ zkfo-D(?~uzECi-I#os!w_A$N_x105CXCc6$@Pfn2PUp*l5iT3+$d(=JyMBvGV(K<} zkq)$FqLif^LAmO%_WN-#Rmeu*Mc&n6t+kxLI+km${OWMq%a5dtuEtE}y;oIa*#Bl7 zY<%xi+o(I|Lhr$R8MlPTee;uyG$%Pyazyif4aj&pBg+DhsIAyh#ixs~qQ#<^B3i6Iz6Q$ zkGSj)ywK+^l4ggX^mE=?c>7o_v{O8YuQ;dX%NYx3S+x-ahydH3~@5BQy!RLam!vFt%*>hYh_KYv~cYZy|a>lUOOu* z!z83dokmL3?+k~7wtn1+`pUT$vAEjF7ZD!^(m)9$+S=yJ@A>+%sFD36bz!B9lyH#h zNi{(~RHe%x7w=4bDHX(IqCE2|k&-=^Fcv0)`q#A29=qB8(P7jO`DY^kQoSeq z-NWkopKs?t$}lLC)OGFgiI6JWT#|DQgj%^-@Lk6m3bBJ3v5cxnaA}?3yNvQko;vsa zvvDwc$PIJMVq<8wYhBvb?x`Psb#j*_)OFYj-#{%#J0~}TLJD5Hdorjj^Lf7bsIyk$ z{VYi)_2TGxWrnQ|5BcH|!Ib?jL^R{KYb{^@UKTf^6nS6Ac{4C4=-{E=AQMep@B9MD z2h6^V;9b-k##PXx|8#rQ0i5{m_V-g*!9q!+?B|aJY1rkR;}LKh2i95wCg}@D=e9;b2NZO81duk?5E<1 z;t~4lyDKmA1SUmfOFWcfkPU0c7lnB|l|>L<`ZjSer_2%Wlxwwn`Y*#8>iKTho9u~h z>m5d%nE!CLc*Pzb^w^TmjfXtQ8fH*#RP|8rQT3^%x z>mm;Q<=4=s7~WP?xohoQ_UA3)Iajp0?n>J@Z!3SSHm&1=Q|;WXIA84DxC?9gwSt`J z`UVeuF zc%h$HGR(A2@j-?|Y~z>DntIrqY%btI)6gVy)~mAB%UvEHVDOoJD=;ak^FvMo!YD6n z#42f!5{j`~laGrfN;F zE<5K+MSH?Nl(O)q{tX%See{-<=-h?G&#b`k{CSDaoZP zA`|vw9DLJ2enfdQERA=T6EA9|5hJ@oEAiT}X}ukv^y|s||H7@w5}_vL z;|%COfwB+FRk0<7Ef4{{dP}Q-EpcFcOJwfP_-;ta0GnOs9{Cvr?DGX~yo*V7>-9B*y7d_0UTI(74S+%ezmdFKi*0p)t1xcZ&Yr6$sKQ`2bb+dlG zf3f>N5Vyd@t~N~3UGtC#x2iWDFKo#UyPsdq{#X9y@P`<7SUF9_zo$NXrK*eXlF0X> z`c2veb@qaoDMw2_zJ%_%{#>IFM3D`ij1oCJ^yVL`H}K_vM#Y*Wo3|`$oqOAJ$g@zS zt=Dyi2s}qE)BT3Rvn!vU37LJ~_=g@okM^3b-E>vl3j=~mUxvvJ28#$KvAI30helXdzZy110v`qHfO|AZgE z4OWapBi^18u3G2%_o2O2x?enT{aOB7GRME{F=W({I33DQvrp6XEbt#NxumpqqTGx( zhK2b4f}O`GlUm@_qDqoeV`xuzu>-u5!)0ly&7_y82rS zC*s!qtu@I^j<5+Y9T$Rg$%RrVU+0>8yZ1`NmBU7@ohu3RrCp3FNRF(Ie_88GDmZ2q z?`^AH%h8-RGG1R&?Uo$MeTR)ijsUqR?F3O6wqch>ocNdKG@k`RDY=v$l%lv2i_r+PV z$BNUPDwN83{MSy)J3QWmyl0sGG-sTCCBuw&ahb(CHL|c9$1LqF8MpuClH|V+LMTB9I{-^$sPjTn$w(a#NysZqH?B`1j04`yZ#Tb(-Mq zRtsSxt}1Nx#n5gf)PW)0C-U@GyY5;^@5M{c{#%UPYo{;59Ym(JPb1HNhrU0lzk5aa z9~S=XEfGB_Id-Bf>U$fQ6=lVgx4UbXyse0#dyJ^Eve|Jh@`bacL5V7)QyrQ2*N-~0-f z7_Bmw#4*PIu8fJTUX^2U%M#f;B*8cIwS4rNkEC+edx`&6_>|!AXIw`Zs*WmG_PDx5gXF&cx7wabUaU{Gah;b;xAJ4k?B)iK zSVlFPb@X=aMA(FDkzFKx*MBx@AL;C5sNGAfy{y8fKFHwe`S=<&r;bXEZJV*pQu`YA z-}OCAzZBZynfi&7uh;znDenr}wHZ8Ug_oIOe~9;}dI=gDSjG5!JHO8Sm|XXrue2`h zN&coFMzmjTS>n^dsHFe+`%PcZs=t@hw7=NtGBtAdp3#p4;ZmkF#s01xA;%4Gea8QG zS-Vp#XTCjM7N?6lenyDCSl8yN9 zHqFy7)yo3Uu@Y*;RnPw5iF~k5|8rsLMrHe@^UJ1w-frl!xvkTGZ+B(0d7q`rt}$PD zLaRU?sv@>hzR1XPSd1=@i`TAUMgM2!k8Dc7n*vzO)W)vH#yR?kiwb1p7B zc+0-Oqal&b@wa)5&##D#Dx19Ua*Rv8BRFh4)R<{QKjskAoi{=f;WckN=bbFBB3JR` zANToHxMi-iD_XlCC?UQpI!PQ1 zzH=-lv2Zo52eXKs(vnl1-tsDp{8K)fb15|I`l`-KR+-;s{5Pded7*UXhV=zG&_4lP5 zsD5mC`=8XsxD~kEIL@+kBVI+1r@x`vCXg-OwO0O*4YG~@Dr8a51@n@3?IE^pUq zkA3@B6`|4bDuJR^rlZ+=YYps8V_mTe;o!f&{`=qSaWpFIpP#)B4y5MUfB*gO(cKt6 z*9J3JnjwMjP6_yN8Ihs9p;g`8tzIDwsyHa{=a2uDYJ(?;?(TOdJ;HZOfXZP&(}buB z&75C<{v$Y;s$c-x0A5sq2IxhDd2$Z}0}fEcVBCpbG>`W%kwoz?K7!ypM2QG6>-{|T z<2%&YP=ZcfRXd^P87wS9&)lmfOIDTv_qw29B3Cv+88F7;@d?==nMQMOeIB;9zB>&W z9-4H12$(GkLp0_$BR}R&S+EZmH=mfKY?)b8b94?sy=aZC#EtX|9?9>Ce{$2T7fi7bew4VTGc!cqM zPwl&F-MV$6YWn@BOH`(fI&(QAC>L%sR(gz(EMqspMb_3ZUBVuZeg!`RYB>uNK9(b$g0n)S-SFZ2h~Xi z8k&1=Zmkjf_@y=R&fZS~*rX8OT9G(wkEOy!Pq=mziFu%)?G(+I+P&pZ{f3fTJ*Us1 zNp-c&5QZ$9HV`4<4_2P%I{NiWA+O--YPu)uY|$9h>KvLG$~7(EMa~CU6Fq zqO*TZ56sE9PU>^R8}$PI{x|?KI>?tUU&(5YXfy>7X!iR{rw5PGXiU1zYN=kKg?VvI}Dpp)hWU|BN_40nq)uSt)`>nnQq2!{iWRrE1tR0t_Z}RHX3UU`wg^%b34qTOQmcz5~LUMhW5{Yq2YQ z0EI*@PUL?m9v3xW2mjuk;h|j7aCCg3c4KhY^$JZO^la$`D%MCI{q#U}l1^}LaBLZ{ zV;y#j9H(f01MvuP{fQ~8K`&3vjj0VrrhVWJHaVBd%2 z=Ly3^nYxc6p$EZlXlQH&5{(I=y3zeUZk*?q( zkotQx=)m9<@Yi(!p8$u#@S>dcvs9@P+_`(ehj@b~@Xwz`xo!+X(#*Jky~rdF08<4u z4HI~hW0nP&KXQ->Z#d`g|78hqhkmMQ+3TwlaYl0cV3?VwNU^*&kME%CB7zwOFRUIu zWo_9t?Bg^4474n5aDV-S@8tmWJPA6@5(KnT*R5^>H4KCHS^Ryp$sJXDY=`?kz(}Ra z{^+E{J#F6X*|I8iK6S77r^N?4LZL^ zRDq_LCaF3d3tZgLU#3a}ROQV^YxOn|&8f29`R;^OO{+_WjvGq~TUOTnxFZ4+rJ(`h z%_74QM-izbZ0S{keg(Fv#i5826p z!EDZ#*Y%R5+9Vl-ju{K3hf+RBu_Z9XW~XBr9h#(}`MP3;yI?q(TFojQb!Qw^R*eDJVNgxVYgGkGTI;Z;Us z%Z132pZo5BQKc8ye+DK7t&YuT^JrR=pZ0I)9Q!+8r~LWKy&U{O^sZ1KS_61&>d4ot z0aeRE1e1RE!F+-V&w#1fv{}6l7&|?f5CC%xi+8)s$}}_r%<;+AUbusA6XAJ^Cn>M+ z;BzV9Y!f@IQrOAnndM<8^lU4EdM%spIu-nUbnw$tE#Jw|h5YO*c@_nH z6*bsCl5nST@laOQ?1D@Ao1HIUB{dpGy%`vA_jZ$`9|KuXzJ4(ZRSv~ZdH98Iia~(? z0*^!6&vv2meT!=XRhQ&tS`um6iOJitsT6r6=UY*6-1Xqex%jODC2*A{(^c6D)leiD z^#iN~nb@ZhEGDaCyr!jQ_d#vm>~B06e2Tj8ObzU`J;(FGAUt`Z>fO&OXg>H5?k{H4 zNS}s$&|`?snifF%BTYIn=_~gD=wuwO&ZhmQLu1^j!p;ktoL7a<0krPWBMyU(%a?&d ztK(G#0^~_sKjdG44(Cph8_;8EWn{b%m4u0XGF1Fwt72$Gr(~Dg?=27DP1%Y0_K zkqZnOJjTk4e2oNI5l}C7-sA0yo?xLO&>* zwzQW+aF*PmiiKuc=T~c9_Y6Ha;rOgesFlFCX=3FAYu=#2LD}=!2Y}**8G02U)UMAg zpG=zxqlen>NvuHB)6+}BUv=ue0ow^^wXYruam31aD;DhMDpopl3Xn-n zSJRb^FOYYl=vD&&SwNkc=p8zOne?jkJL(9+uVf)JsU2` z5f3Z8*^82{1lpl&_?cy+#xn>j%Wl5RpCKVUB0?%AvsZ+29Th223Lsa`)7v2oWmGxa zRxWw~71O^1OJtAv_lu!&fW8Ej*ANHbCk(5in^GxM@{zzURggd;^o{-c8Z>ce3o<^c zK%sGRzd+eowz!(kGw3cLJ*gH7S0CC%D%Ag}@2tE@DWys_!_`=Xjrlrg{e>M;moW#f zFO-E`r|iWO?GK%YKlXDgl-(2et~6~k{^UQhE-MHa5CiV7OrHk^UZ>>d58$O*{N8=g zT+mv;Kf8ZQKY;bo4;{(_kXu1c>PrLfJ2}``ji_oKZQ%aexYr5vRyQt|`rOH*X6p$| zw%58a&J6&l752nAG=~qx`~Hg1uw}SWOhqIBTC1ZkWv@VWxm5HMpiX`GGoE+^9iOUt z_AUmb$Lo|QL7m=Kxqz0v(bR+?p$A?#*-jgHy00!^9nTwE zg^BDLg5YtV%5Vcu5NEvFij>jK5X&{Wjwe~yh_JKESb7;o0P)w8tJ9@qK4~Ept%du$ z3~p-=DqFO?gUj5?l&D4!_nFT2X_)>L*c43%d%O*XvhKgrotN#U_D?x9H=XSA-i`T- zkpr>G5+GvvQFqcWV;QK-Kz&E$quAA(i~FU&-VRnY-aDc`OR^E$+2@yMz|JyF^vXV* zPVA5l$NGaRNASOV2*eLBCFEX_w3|Ovy6Iv!zOwDz0b%Zg9;KVic}W{ZvbI6|`mHlL#Vwm15@We89jk-tFV*Yf z=YKHqvrxM;0?2Q107~A2@5?xtU;`VE(R|sv`E~PKdnM5LdfTc8`f5QyMrgv_#J^_R zrjt&7PftxdGozduy4O=&Ifc!ET-0vnqr^54!CkvN@cP7=t1T@=0^WKFL}ropuqWSK z*@Ts7qci{+gyrrXK!rw~-{noD{>Xp?w%6{nY*U9>dKWU*8b{*fJ}G&y2XZ-b_xc8; z3Kpr{_h-Cm_-5CS>A~WtL-^#!z*Ry|Nn<6@wLpR5_t?0NszYJwaN|bR84L%vz|H*& zolI!4>txVIiP$(#dYwE%4c z*?dO|ca7P3_b+QH@EZnzzlLpP?S(X(pp;5e6&9L%oy84t_o|?l%psi?3c;h%G1RF{pQ>uoj50|8 zj$S&+rM`D8_|OaA$3`(9ETkcI2EZ`)wicFhQv+EfvTv$OT{)od1BDy<*~V8SMo$aE~CE9{s-%5!oc8Txp2!n z*-I1rBt+3$nyxdC*r9+Fari9T0kqX+-(+f-AAp!aCnP5SE90_$+T4}xAF8AR6O~qY z0jdLNLxo6Wu{!Vm1|Mt*HSg&f;(iM&g? zgS-#N)~lmqD);=XPi+4rpU$roI^f4Yid{M zq|#VAOysN7Ie%EhS04bQY7fdDU$v2Iv;FvCVN~#Z{8nl5ejQ2JxN@}c*AM{_g(5CF zKQ4%(qZ>Sb)!AX&?wxRLwJ&=sk=FN4-crZ6Y^DOmpT;F9#-%Z+0?1EFLEq@R&N!%m zlMg$LtrAXJ-`0lTR{X1(@nqpmujsDbN|Efr#kWe&p1)sv@Sytuz&}i1L?iMY-HS5& zkx?baEZ4NTK?QO9coFp1X*$K@I?8i~TI0MyQAE}vAY&3WcZOQWZnu1AR$-8%2UnX# z&EuCX4~+bDhBJ~J*PHe?zC?q($by`>7=9i-uTw`=UpTW(WCM{;a{5oNQPhP<-h;{a z8+le|wWQBEcYP1HCI1Rs6dOW9OF*QfU|Z|rmn5wsFe7Ws)# zBb*17Ji50vcKub>O)tAZg@{_-kA!@V>l>wYZRCq02Met;6Ar8Az7|HSF0;?&ksDur zmjJ)HP!Ze4RHI0REwF161x)TA9#xy0`AE^ynjxXdvLN-GL5rto0(BjF`QSzxAFmGZ z)F3IRbBwkY|FQxKJZh@7bvn%KOqch`7NFlAgKso|GMW$cTS0!{!+je8@a<)u0<8t1 z&j2yI@KPP`0hDj`0_l3XF45p80IsyOU_=qYb$4zHw=d;1lxsOkXCMHr#_Lgk?K%^6 z!!eEBDmG<*YvZ|6g1xx1gRcSr8XQS_qTL4cfDb6vT}(g%w!XJNgRmomU6`jEz?w3w z3y(DfjB=fx4OKIo#9GHB{d2$Vf3$brUrlY_+Q;r!Y4 zv)7vQna}gte~i665b#>taByzXr?co9Xr|y(b)nms^Yp?_Fk<3G<|XKwl>HgPoXU&B z1hUOtWp#a2&pSP*)hB1A`MzxQ!Sb$s+X@;oD!6t76$Yfj8r6$Z)r_luA;*N3>-;p! z87fkS!JG#i0QdJ=lV)*P_e~YyJ9E-(_wKb#GtzlF%_;p}4};z5BkJ;ebo2mfYeU9$ z+n0O`fNw*Bf?{g4x7O*~49Jko+43WImo>bNcg4(!)N5G{jG{%eqknb=-+i(A1q5{IpGdJ5-dI?Fv-TFUJ5uV+Wuf zMb&4IWDmpXXR=19x`$=@)FdzaFp$pC?$Q7|HFmhp1(b@GLCDC|(=fD$3M_8L8gLse zA24m0`bKxc$->u^o<=XWtiHZ@Vl2p&& zSMzfaA&#x|+R~HGvL*1{h%)fmG9+wqnm0=r*T>&>W5rEE?J>_q2p+9VEqGEKHwIZl z%%jn}*e>Ll?=q9rxarJzW}J6{V^8{75DdV@uJ5yu7Z!7!mL`4%MO4Ig&1xHK9480w z#R1s|H6R?v5GlqdlcgrE=t1t_%!OSG1@>Kst&bgwQEUYpw)pDdPkRN2%{oBChE4q$ zsJwIf;b|0{W(EVVm##5qBCZ{L8W0Ia-x~rW=V^YgP6T>wa3~ba=JHeuT$6q2bB&?@ z;c9TUzUH)rkPHb&WO!(Rx@9mhU;tUoB%<7}e!|iGKptE$*IDP2j4G)bRaIz}OB*4f zxGPvSI0KiscAjhZF>B4JKS*@K+fUj%pqBM?p<0t3C!kzFxp!RZ@CVB9o}FfYJXS31 z*8#4MG@f`9RC}_b!Ms8!Q-)!c0PQEjLpR1$9uffH% zT}WsE&G72;inP=GRTS1%T>;mUalxyk%+CO3N(Xieq?Yri98>}myx|mTYS{zr>xG;9 zu=+^+Rw(J-I5oXMWn#AeaRc(uL73DB!M*?HC1n0Zrzu%*=aR^sclzI!Q`}OG zBW36_KRr*Kr13!N5K6^s$I3H}NY7`ACP1AVNd}HY=iqgB6qCpdU@VqowSFiyTr-^% zD--ny>$hM&QBRXJEzN)(q@So{?G$O3+MSs~&Z60eSo7FP0~6xXks#UW?3n+2@n0x` zeYOAlAUN3Dg>`ZlqmC)hls01v{OyfksvL4EIWR zSR%9=YmE?9i@kAupJ|%cnz*R$4fc(T5G*>kVmah{M#*v|qf&T29t(aGMWpBhUh9^pVB(A<9%&Ml{!R zN-vVH%+SZ)l|Jil43Gg&g(8wi*@9@Ct5-gA;Nb`rvZw3Tbgty!<*x-yWR+!*IbCHW zgfgQKM$70A;2#Xhe_a9y(da*omIN|VJ?PuRbsf2FOV>jvYaT6wT0u!ELG^qCZI5EQ zb1}7;t!F^T1B>$|pyQamkETd&u*&9M^(#hbjNG*~aSLOe&KGIV!n-(tFWm3^^Rk|# zM^WjI-^9d@)7}@P8}XkLbrs|Tdo7m2LvWzh)HiZ**+J}`pS+j#v~O;rFg00a4GFcv z5(A?yfULMgTs>UoDW=pkeU=6(zIxcBQ=6XIs4%ZyMS&@5U+prjchd8Ab^P}3jeqv3 z&WCvVLxT!(a3#JM=3S4+M2QZ}2&}Aumd)Q=BVKfrcl4dXHC8^?+*kj_1i#{!>%T=% zyt;a=|K;-c8BmE~`%Me^)MCbr=qOq-59?>E|N7*KzgyP(Tf~s(`9G~~S(|ku;^K$e z1$E@aAnuFeFAa*1~cUXg3{~9g<6A0 zb5ypx0YwF6sB=xu34wCt(MFJxwEV_53d!%h{+`ha_uUt#I~o<{hg(9_@`<1g%XU1! z+%{aRKIdgg=L|m5T08of7u6nHcWf4H4}h%Fj0?93oT|IkdHJ17@|SL}sqWz>hV*2I zk+#=+NQAD6StJ;p9Kcrc1Vm6r#wvS=w9?9m`c-bdywM)+%9ZH0)RK-~Z;DF3gzkLL zF5}313H_TF!r^;c)XRRMFvz|MW*;yp!6d8XqZFEPFFALUCsk%@ytj5*Sso^^5K(4j z8?v)iAm3qFv%vArnfb7?POi;jgS|HWGce?m?6?jEsSW>u(>1etuIE`bF)Z^R<+%n6 zz3lS2e24w>Y?AWHJ=uX|#rLW!yLF;Q-mooZ^us`*IKf^Ri#O>aUv6?RIM#QxUta`h zF9+2q4O$n<&y71g43oF9ft(*}ZsZGzu|CYJJF4aTQ&}B&cshE{BbWAx<;I&j$C{gO zQ}}cD!LpZmbKi^ZA1?V;Wzoye-!=R>*YrH6M4*b`C)zt$LWvAz0W{=>nCIA`eJKZD zY5;jiOX~@?Kj?)Dg^(rhtO=TMdv{ZO9hKt-rY)ykLP3s{wqRv#i?Q znOG}>HcKPx3K7N#@3_Z8-(*zhPHAQMdOC+2{e8BzA>c=PB6s%0Dkb5}+3KchQIu1o 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 literal 0 HcmV?d00001 diff --git a/v0.2.5/assets/javascripts/bundle.525ec568.min.js b/v0.2.5/assets/javascripts/bundle.525ec568.min.js new file mode 100644 index 00000000..4b08eae4 --- /dev/null +++ b/v0.2.5/assets/javascripts/bundle.525ec568.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Wi=Object.create;var gr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Vi=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,Ni=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable;var io=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&io(e,r,t[r]);if(Vt)for(var r of Vt(t))ao.call(t,r)&&io(e,r,t[r]);return e};var so=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&ao.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Vi(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Di(t,n))||o.enumerable});return e};var Mt=(e,t,r)=>(r=e!=null?Wi(Ni(e)):{},zi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var co=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var lo=xr((Er,po)=>{(function(e,t){typeof Er=="object"&&typeof po!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function L(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function te(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,te())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",L,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var qr=xr((hy,On)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var $a=/["'&<>]/;On.exports=Pa;function Pa(e){var t=""+e,r=$a.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof It=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof It=="object"?It.ClipboardJS=r():t.ClipboardJS=r()})(It,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ui}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(A){return!1}}var d=function(A){var M=f()(A);return u("cut"),M},y=d;function L(V){var A=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(F,"px"),M.setAttribute("readonly",""),M.value=V,M}var X=function(A,M){var F=L(A);M.container.appendChild(F);var D=f()(F);return u("copy"),F.remove(),D},te=function(A){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,M):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,M):(F=f()(A),u("copy")),F},J=te;function k(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(M){return typeof M}:k=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},k(V)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=A.action,F=M===void 0?"copy":M,D=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if($e)return J($e,{container:D});if(Y)return F==="cut"?y(Y):J(Y,{container:D})},qe=ft;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(M){return typeof M}:Fe=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Fe(V)}function ki(V,A){if(!(V instanceof A))throw new TypeError("Cannot call a class as a function")}function no(V,A){for(var M=0;M0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Fe(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,$e=this.action(Y)||"copy",Dt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Dt?"success":"error",{action:$e,text:Dt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return y(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,$e=!!document.queryCommandSupported;return Y.forEach(function(Dt){$e=$e&&!!document.queryCommandSupported(Dt)}),$e}}]),M}(s()),Ui=Fi},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var L=c.apply(this,arguments);return l.addEventListener(u,L,y),{destroy:function(){l.removeEventListener(u,L,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(L){return s(L,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(L){L.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(L){L.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,L)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(L){u(i[0][3],L)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function uo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof he=="function"?he(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ut(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ue=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(L){t={error:L}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(L){i=L instanceof zt?L.errors:[L]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{ho(y)}catch(L){i=i!=null?i:[],L instanceof zt?i=q(q([],N(i)),N(L.errors)):i.push(L)}}}catch(L){o={error:L}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ho(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Ue.EMPTY;function qt(e){return e instanceof Ue||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function ho(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Ue(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new To(r,o)},t}(j);var To=function(e){oe(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var At={now:function(){return(At.delegate||Date).now()},delegate:void 0};var Ct=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=At);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Lo(Oo);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var _o=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(yt);var me=new _o(Mo);var S=new j(function(e){return e.complete()});function Yt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Yt(Hr(e))?e.pop():void 0}function Bt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return H(e==null?void 0:e.then)}function Jt(e){return H(e[bt])}function Xt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Zi();function tr(e){return H(e==null?void 0:e[er])}function rr(e){return fo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return H(e==null?void 0:e.getReader)}function U(e){if(e instanceof j)return e;if(e!=null){if(Jt(e))return ea(e);if(xt(e))return ta(e);if(Gt(e))return ra(e);if(Xt(e))return Ao(e);if(tr(e))return oa(e);if(or(e))return na(e)}throw Zt(e)}function ea(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ta(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?De(t):Qo(function(){return new ir}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,L=!1,X=function(){f==null||f.unsubscribe(),f=void 0},te=function(){X(),l=u=void 0,y=L=!1},J=function(){var k=l;te(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!L&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!L&&!y&&(f=Ur(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){L=!0,X(),f=Ur(te,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Ur(te,a),qe.complete()}}),U(k).subscribe(l))})(c)}}function Ur(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var wa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return wa.pipe(m(t=>e.contains(t)),K())}function $t(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Le(+!r*t)):le,Q(e.matches(":hover"))))}function Jo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Jo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Jo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Tt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Xo=new g,Ta=C(()=>typeof ResizeObserver=="undefined"?Tt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Xo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ta.pipe(w(r=>r.observe(t)),v(r=>Xo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function St(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Zo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ve(e){return{x:e.offsetLeft,y:e.offsetTop}}function en(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function tn(e){return O(h(window,"load"),h(window,"resize")).pipe(Me(0,me),m(()=>Ve(e)),Q(Ve(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ne(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Me(0,me),m(()=>pr(e)),Q(pr(e)))}var rn=new g,Sa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)rn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return Sa.pipe(w(t=>t.observe(e)),v(t=>rn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function on(e,t=16){return Ne(e).pipe(m(({y:r})=>{let o=ce(e),n=St(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function nn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function ze(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Oa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function La(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function an(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:nn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Oa(o,r)}return!0}),pe());return La().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function sn(){return new g}function cn(){return location.hash.slice(1)}function pn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Ma(e){return O(h(window,"hashchange"),e).pipe(m(cn),Q(cn()),b(t=>t.length>0),G(1))}function ln(e){return Ma(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function Pt(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function mn(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():S))}function zr(e,t){return new j(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function fn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function un(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function dn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function hn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(dn),Q(dn()))}function bn(){return{width:innerWidth,height:innerHeight}}function vn(){return h(window,"resize",{passive:!0}).pipe(m(bn),Q(bn()))}function gn(){return z([hn(),vn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=z([o,r]).pipe(m(()=>Ve(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function _a(e){return h(e,"message",t=>t.data)}function Aa(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function yn(e,t=new Worker(e)){let r=_a(t),o=Aa(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(W(i))),pe())}var Ca=R("#__config"),Ot=JSON.parse(Ca.textContent);Ot.base=`${new URL(Ot.base,ye())}`;function xe(){return Ot}function B(e){return Ot.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?Ot.translations[e].replace("#",t.toString()):Ot.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function ka(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function xn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ka(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ha(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function En(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ha(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Rt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Tn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Sn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var Ln=Mt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,Ln.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function _n(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function An(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ra(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Cn(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ra)))}var Ia=0;function ja(e){let t=z([et(e),$t(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Zo(e)).pipe(ne(Ne),pt(1),He(t),m(()=>en(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Fa(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ia++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(Ht(c=>Le(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>$t(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ja(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Fa(e,{content$:new j(o=>{let n=e.title,i=wn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Ua(e,t){let r=C(()=>z([tn(e),Ne(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function kn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(W(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Me(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(W(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(W(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Ua(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Wa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Da(e){let t=[];for(let r of Wa(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function Hn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Da(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,Tn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?Hn(f,u):Hn(u,f)}),O(...[...a].map(([,l])=>kn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function $n(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return $n(t)}}function Pn(e,t){return C(()=>{let r=$n(e);return typeof r!="undefined"?fr(r,e,t):S})}var Rn=Mt(Br());var Va=0;function In(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return In(t)}}function Na(e){return ge(e).pipe(m(({width:t})=>({scrollable:St(e).width>t})),ee("scrollable"))}function jn(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Rn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Va++}`;let l=Sn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=In(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(W(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),Na(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function za(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Fn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),za(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Un=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Gr,Qa=0;function Ka(){return typeof mermaid=="undefined"||mermaid instanceof Element?Tt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=Ka().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Un,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>co(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Qa++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Dn=x("table");function Vn(e){return e.replaceWith(Dn),Dn.replaceWith(An(e)),I({ref:e})}function Ya(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Nn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));z([s,ge(e),tt(e)]).pipe(W(p),Me(1,me)).subscribe({next([{active:c},l]){let f=Ve(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ne(o),ge(o)]).pipe(W(p)).subscribe(([c,l])=>{let f=St(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(W(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(W(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let L of P(":scope > input",y)){let X=R(`label[for="${L.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),L.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(W(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Ya(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function zn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>Pn(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>jn(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Vn(n)),...P("details",e).map(n=>Fn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>Nn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ba(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function qn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ba(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ga=0;function Ja(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?Ne(o):I({x:0,y:0}),i=O(et(t),$t(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ve(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ga++}`,o=Rt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Me(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ja(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Xa({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=ze("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Kn(e,t){return C(()=>z([ge(e),Xa(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Yn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(ee("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>Qn(a)));return r.subscribe(o),t.pipe(W(n),m(a=>$({ref:e},a)),Re(i.pipe(W(n))))})}function Za(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),ee("active"))}function Bn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Za(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Gn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Jn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Pt("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),es(t).pipe(W(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Xn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Mt(Br());function ts(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Zn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function ei(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function rs(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[ei(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(ei(new URL(s),t))}}return r}function ur(e){return un(new URL("sitemap.xml",e)).pipe(m(t=>rs(t,new URL(e))),de(()=>I(new Map)))}function os(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ti(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ri(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function ns(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ti(document);for(let[o,n]of ti(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return We(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function oi({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ri);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>os(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(ee("pathname"),v(p=>fn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ri),v(ns),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),ee("pathname"),v(()=>e),ee("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",pn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(ee("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ni=Mt(qr());function ii(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ni.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function jt(e){return e.type===1}function dr(e){return e.type===3}function ai(e,t){let r=yn(e);return O(I(location.protocol!=="file:"),ze("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function si(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=Xr(n))==null?void 0:l.pathname;if(i===void 0)return;let a=ss(o.pathname,i);if(a===void 0)return;let s=ps(t.keys());if(!t.has(s))return;let p=Xr(a,s);if(!p||!t.has(p.href))return;let c=Xr(a,r);if(c)return c.hash=o.hash,c.search=o.search,c}function Xr(e,t){try{return new URL(e,t)}catch(r){return}}function ss(e,t){if(e.startsWith(t))return e.slice(t.length)}function cs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oS)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(new URL(p)))}}return S}),v(i=>ur(i).pipe(m(a=>{var s;return(s=si({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:ye(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(n=>lt(n,!0)),z([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(Cn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ls(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),ze("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(jt)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function pi(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));z([t.pipe(Ae(jt)),r],(i,a)=>a).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ls(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function li(e,{worker$:t,query$:r}){let o=new g,n=on(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);ze("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(re(r),Wr(t.pipe(Ae(jt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Vr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function mi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),ms(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function fi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function ui(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ai(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=pi(i,{worker$:n});return O(s,li(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>mi(p,{query$:s})),...ae("search-suggest",e).map(p=>fi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function di(e,{index$:t,location$:r}){return z([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ii(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function fs(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Zr(e,o){var n=o,{header$:t}=n,r=so(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=Ve(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Me(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),W(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),fs(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),De({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),De({}))}}function bi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),De({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}function vi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return hi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return bi(r,o)}return S}var us;function ds(e){return us||(us=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return vi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function gi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(_n(o)),t.classList.add("md-source__repository--active")}),ds(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function hs(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function yi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):hs(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function bs(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(ee("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(ee("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,L]=f[0];if(L-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(W(a),ee("offset"),_e(250),Ce(1),W(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),bs(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function vs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),W(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function Ei(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(a),ee("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),vs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function wi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(W(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(W(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ti({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function gs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Si({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(gs),ne(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Oi({viewport$:e,tablet$:t}){z([ze("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ys(){return location.protocol==="file:"?Tt(`${new URL("search/search_index.js",eo.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",eo.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Go(),Ut=sn(),Lt=ln(Ut),to=an(),Oe=gn(),hr=Pt("(min-width: 960px)"),Mi=Pt("(min-width: 1220px)"),_i=mn(),eo=xe(),Ai=document.forms.namedItem("search")?ys():Ye,ro=new g;Zn({alert$:ro});var oo=new g;B("navigation.instant")&&oi({location$:Ut,viewport$:Oe,progress$:oo}).subscribe(ot);var Li;((Li=eo.version)==null?void 0:Li.provider)==="mike"&&ci({document$:ot});O(Ut,Lt).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});to.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Lt})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>zn(e,{viewport$:Oe,target$:Lt,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ut}):S),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ut;window.target$=Lt;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})(); +//# sourceMappingURL=bundle.525ec568.min.js.map + diff --git a/v0.2.5/assets/javascripts/bundle.525ec568.min.js.map b/v0.2.5/assets/javascripts/bundle.525ec568.min.js.map new file mode 100644 index 00000000..ef5d8d34 --- /dev/null +++ b/v0.2.5/assets/javascripts/bundle.525ec568.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html: