gooddata 2.1.9-java → 2.1.14-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.gdc-ii-config.yaml +1 -1
  3. data/.rubocop.yml +1 -0
  4. data/.travis.yml +1 -3
  5. data/CHANGELOG.md +49 -0
  6. data/Dockerfile +17 -7
  7. data/README.md +17 -0
  8. data/SDK_VERSION +1 -1
  9. data/VERSION +1 -1
  10. data/bin/run_brick.rb +3 -0
  11. data/bin/test_projects_cleanup.rb +6 -2
  12. data/ci/bigquery/pom.xml +54 -0
  13. data/ci/redshift/pom.xml +73 -0
  14. data/ci/snowflake/pom.xml +57 -0
  15. data/dev-gooddata-sso.pub.encrypted +40 -40
  16. data/gdc_fossa_lcm.yaml +2 -0
  17. data/gdc_fossa_ruby_sdk.yaml +4 -0
  18. data/gooddata.gemspec +3 -3
  19. data/k8s/charts/lcm-bricks/Chart.yaml +1 -1
  20. data/k8s/charts/lcm-bricks/templates/prometheus/alertingRules.yaml +22 -12
  21. data/lcm.rake +10 -6
  22. data/lib/gooddata/cloud_resources/bigquery/bigquery_client.rb +86 -0
  23. data/lib/gooddata/cloud_resources/bigquery/drivers/.gitkeepme +0 -0
  24. data/lib/gooddata/cloud_resources/redshift/redshift_client.rb +3 -2
  25. data/lib/gooddata/cloud_resources/snowflake/drivers/.gitkeepme +0 -0
  26. data/lib/gooddata/cloud_resources/snowflake/snowflake_client.rb +84 -0
  27. data/lib/gooddata/helpers/data_helper.rb +1 -1
  28. data/lib/gooddata/helpers/data_source_helpers.rb +47 -0
  29. data/lib/gooddata/helpers/global_helpers_params.rb +2 -2
  30. data/lib/gooddata/lcm/actions/collect_clients.rb +6 -6
  31. data/lib/gooddata/lcm/actions/collect_dynamic_schedule_params.rb +6 -6
  32. data/lib/gooddata/lcm/actions/collect_tagged_objects.rb +2 -1
  33. data/lib/gooddata/lcm/actions/collect_users_brick_users.rb +7 -6
  34. data/lib/gooddata/lcm/actions/migrate_gdc_date_dimension.rb +116 -0
  35. data/lib/gooddata/lcm/actions/set_master_project.rb +76 -0
  36. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +10 -1
  37. data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +2 -2
  38. data/lib/gooddata/lcm/actions/synchronize_users.rb +31 -30
  39. data/lib/gooddata/lcm/lcm2.rb +22 -1
  40. data/lib/gooddata/models/domain.rb +17 -15
  41. data/lib/gooddata/models/from_wire.rb +1 -0
  42. data/lib/gooddata/models/metadata/scheduled_mail.rb +1 -1
  43. data/lib/gooddata/models/process.rb +11 -3
  44. data/lib/gooddata/models/project.rb +118 -29
  45. data/rubydev_public.gpg.encrypted +51 -51
  46. data/rubydev_secret_keys.gpg.encrypted +109 -109
  47. metadata +22 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc6c846aa117ae4e5809d836ccdd2e0a9b5bd0a223837328c3f0e07065ee6b0f
4
- data.tar.gz: d77bc24dd2ce6f01a6c0685cf58d099117a442113dfbb6cfb1c615d71af033a3
3
+ metadata.gz: efe801504220f2ac49763a1d5cb0ec516b7c50658835c16681e3f9d641f4470d
4
+ data.tar.gz: aa034a9c9b9f618805f5dfe48e6234c65f52fcc914eb319c85de2217be987636
5
5
  SHA512:
6
- metadata.gz: 36a5cae65532cae267891feecd76562e83082c2f812201577c30a42a97d93ddcf2689f4f35166089e9262d9afd08f6564c114e6ad769081a3422909d26b5b8ec
7
- data.tar.gz: e77339f7f2a67fa32213aa42619e71ac85f3495a1c9f1110458f71eb15e825e0014c5b9f06c72f85311ad0dcfad4b6dee0700464f6088350beee94ec02256de7
6
+ metadata.gz: c2e3d172e94722661c93dd1058c4dcc29c6a19b94644689c7a359407d1ca8d8fb963e80d054f537813ccb49331aa1c67028cb4ebbd89493c17b98c2a0b8948d5
7
+ data.tar.gz: 53ad15fd02b22838f98b4854863a4d72b8fea10b41078fb5ff362ce456aeaa9c783014057e0e8e8df678d0856746b2e4a6429c10c590272f229cfd74c554da1a
@@ -22,4 +22,4 @@ configFilesForUpdate:
22
22
  - '.gdc-ii-config-chart.yaml'
23
23
 
24
24
  customConstants:
25
- pipeline.deploy.testEnvironments: ['stg3', 'stg2', 'stg']
25
+ pipeline.deploy.testEnvironments: ['stg9', 'stg3', 'stg2', 'stg']
@@ -2,6 +2,7 @@ AllCops:
2
2
  DisplayCopNames: true
3
3
  Exclude:
4
4
  - 'spec/helpers/appstore_project_helper.rb'
5
+ TargetRubyVersion: 2.3
5
6
 
6
7
  AbcSize:
7
8
  Enabled: false
@@ -15,11 +15,9 @@ stages:
15
15
  git:
16
16
  depth: false # this is needed for pronto
17
17
 
18
- matrix:
18
+ jobs:
19
19
  allow_failures:
20
20
  - rvm: jruby-9.1.14
21
-
22
- jobs:
23
21
  include:
24
22
  # BEFORE MERGE
25
23
  - name: pronto code review
@@ -1,4 +1,53 @@
1
1
  # GoodData Ruby SDK Changelog
2
+ ## 2.1.14
3
+ - BUGFIX: MSF-18892 Change default option of recurrency field to valid value
4
+ - FEATURE:TMA-1687 - Release/Rollout sync theme object
5
+ - CONFIG: MSF-18574 Add support notice to the readme
6
+ - BUGFIX: MSF-18223 - Update param placeholder pattern
7
+
8
+ ## 2.1.13
9
+ - FEATURE: TMA-1676 Support LCM release across domain
10
+ - FEATURE: TMA-1672 Support sync process with generic datasource
11
+ - FEATURE: MSF-17743 upgrade custom v2 for rollout brick
12
+ - BUGFIX: MSF-17975 Introduce gdcshare to lcm bricks
13
+ - BUGFIX: TMA-1673 Update params processing to accept dot and space
14
+
15
+ ## 2.1.12
16
+ - FEATURE: MSF-17621 Apply patched version for activesupport to fix vulnerable issue
17
+ - CONFIG: SETI-4379 Add gdc-fossa configuration for gooddata-ruby
18
+ - CONFIG: MSF-17345 Set umask 0002 for lcm brick
19
+ - BUGFIX: TMA-1015 check case sensitivity for group name
20
+ - BUGFIX: MSF-17219 Fixed incorrect client used in domain.users
21
+ - BUGFIX: TMA-1022 Add more logs for case roll out without LDM change in master
22
+ - FEATURE: TMA-1640 Add alert for CPU limit hit
23
+
24
+ ## 2.1.11
25
+ - FEATURE: TMA-1647 Set VCR version to 5.0.0 due to incompatible license of the latest version
26
+
27
+ ## 2.1.10
28
+ - BUGFIX: TMA-1653 fix performance issue in functions project.users and domain.users
29
+ - BUGFIX: TMA-1643 Don't convert null value to empty string
30
+ - BUGFIX: TMA-1620 Users Brick, sometimes update users are conflicted
31
+ - BUGFIX: TMA-1642 parse csv from input source with case insensitive
32
+ - BUGFIX: TMA-1528: remove CollectSegments and CollectDataProduct for add and remove in users brick
33
+ - FEATURE: TMA-1629 Add parameter "set_master_project" to support reset latest master project
34
+ - FEATURE: TMA-1630 Support Snowflake, BigQuery as input source
35
+ ## 2.1.9
36
+ - FEATURE: TMA-1076 support new version api 2
37
+ - BUGFIX: TMA-1637 handle input_source of dynamic params
38
+ - BUGFIX: TMA-1636 Build csv file with force_quotes
39
+ - FEATURE: TMA-1614 Support redshift input source
40
+ - FEATURE: TMA-1259 Start using dataproduct in NFS release table
41
+ - FEATURE: MSF-16455 support yellow WARNING status into RubySDK
42
+ - CONFIG: TMA-1625 update version lock for test docker images
43
+ - BUGFIX: TMA-1602 User filter brick failed - K8s bricks don't show error properly
44
+ - BUGFIX: TMA-1593 Increase java heap space during execute bricks
45
+ - BUGFIX: TMA-1558 K8s bricks don't show error when config invalid
46
+ - BUGFIX: TMA-1596 The error propagated from a LCM brick is shown multiple times in the log
47
+ - BUGFIX: TMA-1582 show synchronize ldm mode is running
48
+ - FEATURE: TMA-1588 support schedule param include deprecated
49
+ - FEATURE: TMA-1597 Logging lcm execution result
50
+
2
51
  ## 2.1.8
3
52
  - FEATURE: TMA-1604 Upgrade Restforce version to 3.x
4
53
 
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM harbor.intgdc.com/tools/gdc-java-8-jre:0dec94a
1
+ FROM harbor.intgdc.com/tools/gdc-java-8-jre:2fce51b
2
2
 
3
3
  ARG RVM_VERSION=stable
4
4
  ARG JRUBY_VERSION=9.2.5.0
@@ -6,7 +6,7 @@ ARG JRUBY_VERSION=9.2.5.0
6
6
  LABEL image_name="GDC LCM Bricks"
7
7
  LABEL maintainer="LCM <lcm@gooddata.com>"
8
8
  LABEL git_repository_url="https://github.com/gooddata/gooddata-ruby/"
9
- LABEL parent_image="harbor.intgdc.com/tools/gdc-java-8-jre:0dec94a"
9
+ LABEL parent_image="harbor.intgdc.com/tools/gdc-java-8-jre:2fce51b"
10
10
 
11
11
  # which is required by RVM
12
12
  RUN yum install -y curl which patch make git maven \
@@ -14,7 +14,7 @@ RUN yum install -y curl which patch make git maven \
14
14
  && rm -rf /var/cache/yum
15
15
 
16
16
  # Install + verify RVM with gpg (https://rvm.io/rvm/security)
17
- RUN gpg2 --quiet --no-tty --logger-fd 1 --keyserver hkp://keys.gnupg.net \
17
+ RUN gpg2 --quiet --no-tty --logger-fd 1 --keyserver hkp://ipv4.pool.sks-keyservers.net \
18
18
  --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
19
19
  7D2BAF1CF37B13E2069D6956105BD0E739499BDB \
20
20
  && echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | \
@@ -37,22 +37,32 @@ RUN rvm install jruby-${JRUBY_VERSION} && gem update --system \
37
37
  WORKDIR /src
38
38
 
39
39
  RUN groupadd -g 48 apache \
40
+ && groupadd -g 65065 gdcshare \
40
41
  && useradd -u 48 -m --no-log-init -r -g apache -G rvm apache \
42
+ && usermod -a -G gdcshare apache \
41
43
  && chown apache: /src
42
44
 
43
45
  USER apache
44
46
 
45
47
  ADD ./bin ./bin
48
+ ADD --chown=apache:apache ./ci ./ci
46
49
  ADD --chown=apache:apache ./lib ./lib
47
50
  ADD ./SDK_VERSION .
48
51
  ADD ./VERSION .
49
52
  ADD ./Gemfile .
50
53
  ADD ./gooddata.gemspec .
51
54
 
52
- RUN mkdir -p tmp
53
- COPY spec/lcm/redshift_driver_pom.xml tmp/pom.xml
54
- RUN mvn -f tmp/pom.xml clean install -P binary-packaging
55
- RUN cp -rf tmp/target/*.jar ./lib/gooddata/cloud_resources/redshift/drivers/
55
+ #build redshift dependencies
56
+ RUN mvn -f ci/redshift/pom.xml clean install -P binary-packaging
57
+ RUN cp -rf ci/redshift/target/*.jar ./lib/gooddata/cloud_resources/redshift/drivers/
58
+
59
+ #build snowflake dependencies
60
+ RUN mvn -f ci/snowflake/pom.xml clean install -P binary-packaging
61
+ RUN cp -rf ci/snowflake/target/*.jar ./lib/gooddata/cloud_resources/snowflake/drivers/
62
+
63
+ #build bigquery dependencies
64
+ RUN mvn -f ci/bigquery/pom.xml clean install -P binary-packaging
65
+ RUN cp -rf ci/bigquery/target/*.jar ./lib/gooddata/cloud_resources/bigquery/drivers/
56
66
 
57
67
  RUN bundle install
58
68
 
data/README.md CHANGED
@@ -9,6 +9,8 @@ The best documentation for the GoodData API can be found using these resources:
9
9
  * http://developer.gooddata.com/api
10
10
  * https://secure.gooddata.com/gdc
11
11
  * http://rubydoc.info/gems/gooddata/frames
12
+
13
+ Feel free to check out the [GoodData community website](http://community.gooddata.com/) if you have any questions about the GoodData Analytics platform, our API, or this library.
12
14
 
13
15
  ## Status
14
16
 
@@ -19,6 +21,21 @@ The best documentation for the GoodData API can be found using these resources:
19
21
  [![Build Status](https://travis-ci.org/gooddata/gooddata-ruby.png)](https://travis-ci.org/gooddata/gooddata-ruby)
20
22
  [![Coverage Status](https://coveralls.io/repos/gooddata/gooddata-ruby/badge.png)](https://coveralls.io/r/gooddata/gooddata-ruby)
21
23
 
24
+ ## Supported versions
25
+
26
+ In order to make the user experience with integrating GoodData Ruby SDK as smooth and secure as possible and to ensure that the SDK is using the latest features of the platform, we only provide support to the two most recent major versions of Ruby SDK.
27
+
28
+ The most recent majors will be supported in the following modes:
29
+
30
+ - The latest major version will receive all new functionality and all bug fixes.
31
+ - The previous major version will only receive fixes to critical issues and security fixes. These fixes will be applied on top of last released version of the previous major.
32
+ - GoodData customer support will provide support for the latest major and previous major version only.
33
+
34
+ - The customers are encouraged to always use the latest version of the Ruby SDK.
35
+ - In case of using older versions, the user might face API incompatibility, performance or security issues.
36
+
37
+ Please follow the installation instructions in the repository to update to the newest version.
38
+
22
39
  ## Install
23
40
 
24
41
  If you are using bundler, add
@@ -1 +1 @@
1
- 2.1.9
1
+ 2.1.14
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.7.14
1
+ 3.7.24
@@ -8,6 +8,9 @@ DEFAULT_BRICK = 'hello_world_brick'
8
8
  BRICK_PARAM_PREFIX = 'BRICK_PARAM_'
9
9
  HIDDEN_BRICK_PARAMS_PREFIX = 'HIDDEN_BRICK_PARAM_'
10
10
 
11
+ # MSF-17345 Set umask so files are group-writable
12
+ File.umask(0002)
13
+
11
14
  brick_type = !ARGV.empty? ? ARGV[0] : DEFAULT_BRICK
12
15
 
13
16
  def get_brick_params(prefix)
@@ -90,7 +90,11 @@ def clean_up!(client, force, days)
90
90
  delete_project_by_title(/LCM spec Client With Conflicting LDM Changes/, projects, days, force)
91
91
  delete_project_by_title(/LCM spec master project/, projects, days, force)
92
92
  delete_project_by_title(/users brick load test/, projects, days, force)
93
- delete_project_by_title(/#transfer_processes and #transfer_schedules test/, projects, days, force)
93
+ delete_project_by_title(/transfer_processes and #transfer_schedules test/, projects, days, force)
94
+ delete_project_by_title(/DailyUse Project for gooddata-ruby integration tests/, projects, days, force)
95
+ delete_project_by_title(/^New project$/, projects, days, force)
96
+ delete_project_by_title(/RubyGem Dev Week test/, projects, days, force)
97
+ delete_project_by_title(/My project from blueprint/, projects, days, force)
94
98
  delete_ads_by_title(/Development ADS/, client, days, force)
95
99
  delete_ads_by_title(/Production ADS/, client, days, force)
96
100
  delete_ads_by_title(/TEST ADS/, client, days, force)
@@ -112,7 +116,7 @@ dev_client = init_client(username, password, "https://#{config[:dev_server]}")
112
116
  prod_client = init_client(username, password, "https://#{config[:prod_server]}")
113
117
 
114
118
  force = options[:force]
115
- days = options[:days] || 14
119
+ days = options[:days] || 3
116
120
  clean_up!(dev_client, force, days)
117
121
  clean_up!(prod_client, force, days)
118
122
 
@@ -0,0 +1,54 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+ <modelVersion>4.0.0</modelVersion>
6
+
7
+ <groupId>com.gooddata.lcm</groupId>
8
+ <artifactId>lcm-bigquery-driver</artifactId>
9
+ <version>1.0-SNAPSHOT</version>
10
+
11
+ <dependencies>
12
+ <dependency>
13
+ <groupId>com.google.auth</groupId>
14
+ <artifactId>google-auth-library-oauth2-http</artifactId>
15
+ <version>0.16.2</version>
16
+ </dependency>
17
+ <dependency>
18
+ <groupId>org.apache.commons</groupId>
19
+ <artifactId>commons-text</artifactId>
20
+ <version>1.7</version>
21
+ </dependency>
22
+ <dependency>
23
+ <groupId>com.google.cloud</groupId>
24
+ <artifactId>google-cloud-bigquery</artifactId>
25
+ <version>1.102.0</version>
26
+ </dependency>
27
+ </dependencies>
28
+
29
+ <profiles>
30
+ <profile>
31
+ <id>binary-packaging</id>
32
+ <build>
33
+ <plugins>
34
+ <plugin>
35
+ <artifactId>maven-dependency-plugin</artifactId>
36
+ <executions>
37
+ <execution>
38
+ <phase>package</phase>
39
+ <goals>
40
+ <goal>copy-dependencies</goal>
41
+ </goals>
42
+ <configuration>
43
+ <outputDirectory>${project.build.directory}</outputDirectory>
44
+ <!-- compile scope gives runtime and compile dependencies (skips test deps) -->
45
+ <includeScope>runtime</includeScope>
46
+ </configuration>
47
+ </execution>
48
+ </executions>
49
+ </plugin>
50
+ </plugins>
51
+ </build>
52
+ </profile>
53
+ </profiles>
54
+ </project>
@@ -0,0 +1,73 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+ <modelVersion>4.0.0</modelVersion>
6
+
7
+ <groupId>com.gooddata.lcm</groupId>
8
+ <artifactId>lcm-redshift-driver</artifactId>
9
+ <version>1.0-SNAPSHOT</version>
10
+
11
+ <dependencies>
12
+ <dependency>
13
+ <groupId>com.amazon.redshift</groupId>
14
+ <artifactId>redshift-jdbc42-no-awssdk</artifactId>
15
+ <version>1.2.36.1060</version>
16
+ </dependency>
17
+ <dependency>
18
+ <groupId>com.amazonaws</groupId>
19
+ <artifactId>aws-java-sdk-core</artifactId>
20
+ <version>1.11.633</version>
21
+ </dependency>
22
+ <dependency>
23
+ <groupId>com.amazonaws</groupId>
24
+ <artifactId>aws-java-sdk-redshift</artifactId>
25
+ <version>1.11.633</version>
26
+ </dependency>
27
+ <dependency>
28
+ <groupId>com.amazonaws</groupId>
29
+ <artifactId>aws-java-sdk-sts</artifactId>
30
+ <version>1.11.633</version>
31
+ </dependency>
32
+ <dependency>
33
+ <groupId>log4j</groupId>
34
+ <artifactId>log4j</artifactId>
35
+ <version>1.2.17</version>
36
+ <scope>compile</scope>
37
+ </dependency>
38
+ </dependencies>
39
+
40
+ <profiles>
41
+ <profile>
42
+ <id>binary-packaging</id>
43
+ <build>
44
+ <plugins>
45
+ <plugin>
46
+ <artifactId>maven-dependency-plugin</artifactId>
47
+ <executions>
48
+ <execution>
49
+ <phase>package</phase>
50
+ <goals>
51
+ <goal>copy-dependencies</goal>
52
+ </goals>
53
+ <configuration>
54
+ <outputDirectory>${project.build.directory}</outputDirectory>
55
+ <!-- compile scope gives runtime and compile dependencies (skips test deps) -->
56
+ <includeScope>runtime</includeScope>
57
+ </configuration>
58
+ </execution>
59
+ </executions>
60
+ </plugin>
61
+ </plugins>
62
+ </build>
63
+ </profile>
64
+ </profiles>
65
+
66
+ <repositories>
67
+ <repository>
68
+ <id>my-repo1</id>
69
+ <name>my custom repo</name>
70
+ <url>https://repository.mulesoft.org/nexus/content/repositories/public/</url>
71
+ </repository>
72
+ </repositories>
73
+ </project>
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+ <modelVersion>4.0.0</modelVersion>
6
+
7
+ <groupId>com.gooddata.lcm</groupId>
8
+ <artifactId>lcm-snowflake-driver</artifactId>
9
+ <version>1.0-SNAPSHOT</version>
10
+
11
+ <dependencies>
12
+ <dependency>
13
+ <groupId>net.snowflake</groupId>
14
+ <artifactId>snowflake-jdbc</artifactId>
15
+ <version>3.6.22</version>
16
+ </dependency>
17
+ <dependency>
18
+ <groupId>org.slf4j</groupId>
19
+ <artifactId>slf4j-api</artifactId>
20
+ <version>1.7.2</version>
21
+ </dependency>
22
+ </dependencies>
23
+
24
+ <profiles>
25
+ <profile>
26
+ <id>binary-packaging</id>
27
+ <build>
28
+ <plugins>
29
+ <plugin>
30
+ <artifactId>maven-dependency-plugin</artifactId>
31
+ <executions>
32
+ <execution>
33
+ <phase>package</phase>
34
+ <goals>
35
+ <goal>copy-dependencies</goal>
36
+ </goals>
37
+ <configuration>
38
+ <outputDirectory>${project.build.directory}</outputDirectory>
39
+ <!-- compile scope gives runtime and compile dependencies (skips test deps) -->
40
+ <includeScope>runtime</includeScope>
41
+ </configuration>
42
+ </execution>
43
+ </executions>
44
+ </plugin>
45
+ </plugins>
46
+ </build>
47
+ </profile>
48
+ </profiles>
49
+
50
+ <repositories>
51
+ <repository>
52
+ <id>my-repo1</id>
53
+ <name>my custom repo</name>
54
+ <url>https://repository.mulesoft.org/nexus/content/repositories/public/</url>
55
+ </repository>
56
+ </repositories>
57
+ </project>
@@ -1,40 +1,40 @@
1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- Ulz7hD38A9A3PwqqNRPnoXVFke/bBL9N0QXKNFOJpZ6ltZMXjZ7CEq2k0Bq5
29
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ALonjlg+GgzuFtodh6qe/Qx1zjNGLHaT1T/02hWl4ERYSMxkoGPLC7dPjLdc
38
- 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
- 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
40
- PHRjAjc=
1
+ 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
40
+ MUk4BaY=