2.0.479 • Published 14 days ago

cdk-comprehend-s3olap v2.0.479

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
14 days ago

cdk-comprehend-s3olap

License Release npm downloads pypi downloads NuGet downloads repo languages

npm (JS/TS)PyPI (Python)Maven (Java)GoNuGet
LinkLinkLinkLinkLink

This construct creates the foundation for developers to explore the combination of Amazon S3 Object Lambda and Amazon Comprehend for PII scenarios and it is designed with flexibility, i.e, the developers could tweak arguments via CDK to see how AWS services work and behave.

Table of Contents

Serverless Architecture

Access Control

Data Flow
image
Ram R. and Austin Q., 2021
Arhictecture
image
Ram R. and Austin Q., 2021

Redaction

image
Ram R. and Austin Q., 2021
image
Ram R. and Austin Q., 2021

Introduction

The architecture was introduced by Ram Ramani and Austin Quam and was posted on the AWS Blog as Protect PII using Amazon S3 Object Lambda to process and modify data during retrieval.
I converted the architecture into a CDK constrcut for 4 programming languages. With this construct, you could manage the properties of IAM roles, the Lambda functions with Amazon Comprehend, and few for the constrcut.
Before deploying the construct via the CDK, you could either places the text files, i.e., those for the access control case and redaction case, under a directory with a specific name as the following or just deploying directly yet you need to upload the text files onto the S3 buckets manually yourself. It's all your choie.

# For the access control case.
$ cd ${ROOT_DIRECTORY_CDK_APPLICATION}
$ mkdir -p files/access_control  
$ curl -o survey-results.txt https://raw.githubusercontent.com/aws-samples/amazon-comprehend-examples/master/s3_object_lambda_pii_protection_blog/access-control/survey-results.txt
$ curl -o innocuous.txt https://raw.githubusercontent.com/aws-samples/amazon-comprehend-examples/master/s3_object_lambda_pii_protection_blog/access-control/innocuous.txt
# For the redaction case.
$ cd ${ROOT_DIRECTORY_CDK_APPLICATION}
$ mkdir -p files/redaction
$ curl -o transcript.txt https://raw.githubusercontent.com/aws-samples/amazon-comprehend-examples/master/s3_object_lambda_pii_protection_blog/redaction/transcript.txt

Example

Typescript

You could also refer to here.

$ cdk --init language typescript
$ yarn add cdk-comprehend-s3olap
import * as cdk from '@aws-cdk/core';
import { ComprehendS3olab } from 'cdk-comprehend-s3olap';

class TypescriptStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);
    const s3olab = new ComprehendS3olab(this, 'PiiDemo', {
      adminRedactionLambdaConfig: {
        maskCharacter: ' ',
        unsupportedFileHandling: 'PASS',
      },
      billingRedactionLambdaConfig: {
        maskMode: 'REPLACE_WITH_PII_ENTITY_TYPE',
        piiEntityTypes: 'AGE,DRIVER_ID,IP_ADDRESS,MAC_ADDRESS,PASSPORT_NUMBER,PASSWORD,SSN',
      },
      cusrtSupportRedactionLambdaConfig: {
        maskMode: 'REPLACE_WITH_PII_ENTITY_TYPE',
        piiEntityTypes: ' BANK_ACCOUNT_NUMBER,BANK_ROUTING,CREDIT_DEBIT_CVV,CREDIT_DEBIT_EXPIRY,CREDIT_DEBIT_NUMBER,SSN',
      },
    });

    new cdk.CfnOutput(this, 'OPiiAccessControlLambdaArn', { value: s3olab.piiAccessConrtolLambdaArn });
    new cdk.CfnOutput(this, 'OAdminLambdaArn', { value: s3olab.adminLambdaArn });
    new cdk.CfnOutput(this, 'OBillingLambdaArn', { value: s3olab.billingLambdaArn });
    new cdk.CfnOutput(this, 'OCustomerSupportLambdaArn', { value: s3olab.customerSupportLambdaArn });
    new cdk.CfnOutput(this, 'OS3ObjectLambdaGeneralArn', { value: s3olab.s3objectLambdaAccessControlArn });
    new cdk.CfnOutput(this, 'OS3ObjectLambdaAdminArn', { value: s3olab.s3objectLambdaAdminArn });
    new cdk.CfnOutput(this, 'OS3ObjectLambdaBillingArn', { value: s3olab.s3objectLambdaBillingArn });
    new cdk.CfnOutput(this, 'OS3ObjectLambdaCustomerSupportArn', { value: s3olab.customerSupportLambdaArn });
  }
}

const app = new cdk.App();
new TypescriptStack(app, 'TypescriptStack', {
  stackName: 'Comprehend-S3olap',
});

Python

You could also refer to here.

# upgrading related Python packages
$ python -m ensurepip --upgrade
$ python -m pip install --upgrade pip
$ python -m pip install --upgrade virtualenv
# initialize a CDK Python project
$ cdk init --language python
# make packages installed locally instead of globally
$ source .venv/bin/activate
$ # add "cdk-comprehend-s3olap==2.0.113" into `setup.py`
$ python -m pip install --upgrade -r requirements.txt

The demonstration sample code of Python can be viewed via the Python tab of this package on the Constrcut Hub.

Java

You could also refer to here.

$ cdk init --language java
$ mvn package # If you include the construct, you need to tweak the test case for Java in order to package with success via Maven.
```xml
.
.
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <cdk.version>2.72.1</cdk.version>
    <constrcut.verion>2.0.113</constrcut.verion>
    <junit.version>5.7.1</junit.version>
</properties>
.
.
<dependencies>
    <!-- AWS Cloud Development Kit -->
    <dependency>
        <groupId>software.amazon.awscdk</groupId>
        <artifactId>core</artifactId>
        <version>${cdk.version}</version>
    </dependency>
    <dependency>
        <groupId>io.github.hsiehshujeng</groupId>
        <artifactId>cdk-comprehend-s3olap</artifactId>
        <version>${constrcut.verion}</version>
    </dependency>
    .
    .
    .
</dependencies>
package com.myorg;

import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.CfnOutputProps;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.Stack;
import software.amazon.awscdk.core.StackProps;
import io.github.hsiehshujeng.cdk.comprehend.s3olap.RedactionLambdaProps;
import io.github.hsiehshujeng.cdk.comprehend.s3olap.ComprehendS3olab;
import io.github.hsiehshujeng.cdk.comprehend.s3olap.ComprehendS3olabProps;

public class JavaStack extends Stack {
    public JavaStack(final Construct scope, final String id) {
        this(scope, id, null);
    }

    public JavaStack(final Construct scope, final String id, final StackProps props) {
        super(scope, id, props);

        ComprehendS3olab s3olab = new ComprehendS3olab(this, "PiiDemo", ComprehendS3olabProps.builder()
            .adminRedactionLambdaConfig(
                RedactionLambdaProps.builder()
                    .maskCharacter(" ")
                    .unsupportedFileHandling("PASS").build())
            .billingRedactionLambdaConfig(
                RedactionLambdaProps.builder()
                    .maskMode("REPLACE_WITH_PII_ENTITY_TYPE")
                    .piiEntityTypes("AGE,DRIVER_ID,IP_ADDRESS,MAC_ADDRESS,PASSPORT_NUMBER,PASSWORD,SSN")
                    .build())
            .cusrtSupportRedactionLambdaConfig(
                RedactionLambdaProps.builder()
                .maskMode("REPLACE_WITH_PII_ENTITY_TYPE")
                .piiEntityTypes("BANK_ACCOUNT_NUMBER,BANK_ROUTING,CREDIT_DEBIT_CVV,CREDIT_DEBIT_EXPIRY,CREDIT_DEBIT_NUMBER,SSN")
                .build())
            .exampleFileDir("/opt/learning/cdk-comprehend-s3olap/src/demo/java")
            .build()
            );
      
          new CfnOutput(this, "OPiiAccessControlLambdaArn", CfnOutputProps.builder().value(s3olab.getPiiAccessConrtolLambdaArn()).build());
          new CfnOutput(this, "OAdminLambdaArn", CfnOutputProps.builder().value(s3olab.getAdminLambdaArn()).build());
          new CfnOutput(this, "OBillingLambdaArn", CfnOutputProps.builder().value(s3olab.getBillingLambdaArn()).build());
          new CfnOutput(this, "OCustomerSupportLambdaArn", CfnOutputProps.builder().value(s3olab.getCustomerSupportLambdaArn()).build());
          new CfnOutput(this, "OS3ObjectLambdaGeneralArn", CfnOutputProps.builder().value(s3olab.getS3objectLambdaAccessControlArn()).build());
          new CfnOutput(this, "OS3ObjectLambdaAdminArn", CfnOutputProps.builder().value(s3olab.getS3objectLambdaAdminArn()).build());
          new CfnOutput(this, "OS3ObjectLambdaBillingArn", CfnOutputProps.builder().value(s3olab.getS3objectLambdaBillingArn()).build());
          new CfnOutput(this, "OS3ObjectLambdaCustomerSupportArn", CfnOutputProps.builder().value(s3olab.getCustomerSupportLambdaArn()).build());
    }
}

C

You could also refer to here.

$ cdk init --language csharp
$ dotnet add src/Csharp package Comprehend.S3olap --version 2.0.113
using Amazon.CDK;
using ScottHsieh.Cdk;

namespace Csharp
{
    public class CsharpStack : Stack
    {
        internal CsharpStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
        {
            var S3olab = new ComprehendS3olab(this, "PiiDemo", new ComprehendS3olabProps
            {
                AdminRedactionLambdaConfig = new RedactionLambdaProps
                {
                    MaskCharacter = " ",
                    UnsupportedFileHandling = "PASS"
                },
                BillingRedactionLambdaConfig = new RedactionLambdaProps
                {
                    MaskMode = "REPLACE_WITH_PII_ENTITY_TYPE",
                    PiiEntityTypes = "AGE,DRIVER_ID,IP_ADDRESS,MAC_ADDRESS,PASSPORT_NUMBER,PASSWORD,SSN"
                },
                CusrtSupportRedactionLambdaConfig = new RedactionLambdaProps
                {
                    MaskMode = "REPLACE_WITH_PII_ENTITY_TYPE",
                    PiiEntityTypes = "BANK_ACCOUNT_NUMBER,BANK_ROUTING,CREDIT_DEBIT_CVV,CREDIT_DEBIT_EXPIRY,CREDIT_DEBIT_NUMBER,SSN"
                },
                ExampleFileDir = "/opt/learning/cdk-comprehend-s3olap/src/demo/csharp"
            });

            new CfnOutput(this, "OPiiAccessControlLambdaArn", new CfnOutputProps { Value = S3olab.PiiAccessConrtolLambdaArn });
            new CfnOutput(this, "OAdminLambdaArn", new CfnOutputProps { Value = S3olab.AdminLambdaArn });
            new CfnOutput(this, "OBillingLambdaArn", new CfnOutputProps { Value = S3olab.BillingLambdaArn });
            new CfnOutput(this, "OCustomerSupportLambdaArn", new CfnOutputProps { Value = S3olab.CustomerSupportLambdaArn });
            new CfnOutput(this, "OS3ObjectLambdaGeneralArn", new CfnOutputProps { Value = S3olab.S3objectLambdaAccessControlArn });
            new CfnOutput(this, "OS3ObjectLambdaAdminArn", new CfnOutputProps { Value = S3olab.S3objectLambdaAdminArn });
            new CfnOutput(this, "OS3ObjectLambdaBillingArn", new CfnOutputProps { Value = S3olab.S3objectLambdaBillingArn });
            new CfnOutput(this, "OS3ObjectLambdaCustomerSupportArn", new CfnOutputProps { Value = S3olab.CustomerSupportLambdaArn });
        }
    }
}

Some Notes

  1. You should see similar items as the following diagram displays after deploying the constrcut.
    image
  2. After creating the foundation with success, you could switch roles that the consrtcut creates for you and see how Amazon S3 Object Lambda works. For what switching roles is, please refer to here for the detail.
    image
  3. You explore Amazon S3 Object Lambda through the Object Lambda access points on the AWS Console and open or download the text files via one of the IAM roles.
  4. Lambda code that incorporates with Amazon Comprehend could be see here.
2.0.479

14 days ago

2.0.478

15 days ago

2.0.477

16 days ago

2.0.476

17 days ago

2.0.475

18 days ago

2.0.474

19 days ago

2.0.473

20 days ago

2.0.472

21 days ago

2.0.471

22 days ago

2.0.470

23 days ago

2.0.469

24 days ago

2.0.468

25 days ago

2.0.467

27 days ago

2.0.466

29 days ago

2.0.465

1 month ago

2.0.464

1 month ago

2.0.463

1 month ago

2.0.462

1 month ago

2.0.461

1 month ago

2.0.460

1 month ago

2.0.459

1 month ago

2.0.458

1 month ago

2.0.457

1 month ago

2.0.456

1 month ago

2.0.455

1 month ago

2.0.454

1 month ago

2.0.453

1 month ago

2.0.452

1 month ago

2.0.451

2 months ago

2.0.450

2 months ago

2.0.449

2 months ago

2.0.448

2 months ago

2.0.447

2 months ago

2.0.446

2 months ago

2.0.445

2 months ago

2.0.444

2 months ago

2.0.443

2 months ago

2.0.442

2 months ago

2.0.439

2 months ago

2.0.441

2 months ago

2.0.440

2 months ago

2.0.438

2 months ago

2.0.437

2 months ago

2.0.436

2 months ago

2.0.435

2 months ago

2.0.434

2 months ago

2.0.433

2 months ago

2.0.432

2 months ago

2.0.431

2 months ago

2.0.430

2 months ago

2.0.429

2 months ago

2.0.428

2 months ago

2.0.427

2 months ago

2.0.426

2 months ago

2.0.425

3 months ago

2.0.424

3 months ago

2.0.423

3 months ago

2.0.422

3 months ago

2.0.421

3 months ago

2.0.420

3 months ago

2.0.419

3 months ago

2.0.418

3 months ago

2.0.417

3 months ago

2.0.416

3 months ago

2.0.415

3 months ago

2.0.414

3 months ago

2.0.413

3 months ago

2.0.412

3 months ago

2.0.411

3 months ago

2.0.410

3 months ago

2.0.409

3 months ago

2.0.408

3 months ago

2.0.407

3 months ago

2.0.406

3 months ago

2.0.405

3 months ago

2.0.404

3 months ago

2.0.403

3 months ago

2.0.402

3 months ago

2.0.401

4 months ago

2.0.400

4 months ago

2.0.399

4 months ago

2.0.398

4 months ago

2.0.397

4 months ago

2.0.396

4 months ago

2.0.395

4 months ago

2.0.394

4 months ago

2.0.393

4 months ago

2.0.392

4 months ago

2.0.391

4 months ago

2.0.390

4 months ago

2.0.389

4 months ago

2.0.388

4 months ago

2.0.387

4 months ago

2.0.386

4 months ago

2.0.385

4 months ago

2.0.384

4 months ago

2.0.383

4 months ago

2.0.382

4 months ago

2.0.381

4 months ago

2.0.380

4 months ago

2.0.379

4 months ago

2.0.378

4 months ago

2.0.377

4 months ago

2.0.376

4 months ago

2.0.375

4 months ago

2.0.374

5 months ago

2.0.373

5 months ago

2.0.372

5 months ago

2.0.371

5 months ago

2.0.370

5 months ago

2.0.369

5 months ago

2.0.368

5 months ago

2.0.367

5 months ago

2.0.366

5 months ago

2.0.365

5 months ago

2.0.364

5 months ago

2.0.363

5 months ago

2.0.362

5 months ago

2.0.361

5 months ago

2.0.360

5 months ago

2.0.359

5 months ago

2.0.358

5 months ago

2.0.357

5 months ago

2.0.356

5 months ago

2.0.355

5 months ago

2.0.306

7 months ago

2.0.305

7 months ago

2.0.304

7 months ago

2.0.303

7 months ago

2.0.302

7 months ago

2.0.301

7 months ago

2.0.300

7 months ago

2.0.290

8 months ago

2.0.299

7 months ago

2.0.298

7 months ago

2.0.297

7 months ago

2.0.296

7 months ago

2.0.295

7 months ago

2.0.294

7 months ago

2.0.293

7 months ago

2.0.292

7 months ago

2.0.291

7 months ago

2.0.279

8 months ago

2.0.278

8 months ago

2.0.277

8 months ago

2.0.276

8 months ago

2.0.275

8 months ago

2.0.274

8 months ago

2.0.273

8 months ago

2.0.272

8 months ago

2.0.271

8 months ago

2.0.270

8 months ago

2.0.288

8 months ago

2.0.287

8 months ago

2.0.286

8 months ago

2.0.285

8 months ago

2.0.284

8 months ago

2.0.283

8 months ago

2.0.282

8 months ago

2.0.281

8 months ago

2.0.280

8 months ago

2.0.259

9 months ago

2.0.258

9 months ago

2.0.257

9 months ago

2.0.256

9 months ago

2.0.255

9 months ago

2.0.254

9 months ago

2.0.253

9 months ago

2.0.252

9 months ago

2.0.251

9 months ago

2.0.250

9 months ago

2.0.269

8 months ago

2.0.268

8 months ago

2.0.267

8 months ago

2.0.266

8 months ago

2.0.265

8 months ago

2.0.264

8 months ago

2.0.263

8 months ago

2.0.262

8 months ago

2.0.261

9 months ago

2.0.260

9 months ago

2.0.239

9 months ago

2.0.238

9 months ago

2.0.237

9 months ago

2.0.236

9 months ago

2.0.235

9 months ago

2.0.234

9 months ago

2.0.354

5 months ago

2.0.233

9 months ago

2.0.353

5 months ago

2.0.232

9 months ago

2.0.352

5 months ago

2.0.231

10 months ago

2.0.351

5 months ago

2.0.230

10 months ago

2.0.350

5 months ago

2.0.249

9 months ago

2.0.248

9 months ago

2.0.247

9 months ago

2.0.246

9 months ago

2.0.245

9 months ago

2.0.244

9 months ago

2.0.243

9 months ago

2.0.242

9 months ago

2.0.241

9 months ago

2.0.240

9 months ago

2.0.209

10 months ago

2.0.329

6 months ago

2.0.208

10 months ago

2.0.339

6 months ago

2.0.218

10 months ago

2.0.338

6 months ago

2.0.217

10 months ago

2.0.337

6 months ago

2.0.216

10 months ago

2.0.336

6 months ago

2.0.215

10 months ago

2.0.335

6 months ago

2.0.214

10 months ago

2.0.334

6 months ago

2.0.213

10 months ago

2.0.333

6 months ago

2.0.212

10 months ago

2.0.332

6 months ago

2.0.211

10 months ago

2.0.331

6 months ago

2.0.210

10 months ago

2.0.330

6 months ago

2.0.219

10 months ago

2.0.229

10 months ago

2.0.349

6 months ago

2.0.228

10 months ago

2.0.348

6 months ago

2.0.227

10 months ago

2.0.347

6 months ago

2.0.226

10 months ago

2.0.346

6 months ago

2.0.225

10 months ago

2.0.345

6 months ago

2.0.224

10 months ago

2.0.344

6 months ago

2.0.223

10 months ago

2.0.343

6 months ago

2.0.222

10 months ago

2.0.342

6 months ago

2.0.221

10 months ago

2.0.341

6 months ago

2.0.220

10 months ago

2.0.340

6 months ago

2.0.309

7 months ago

2.0.308

7 months ago

2.0.307

7 months ago

2.0.317

7 months ago

2.0.316

7 months ago

2.0.315

7 months ago

2.0.314

7 months ago

2.0.313

7 months ago

2.0.312

7 months ago

2.0.311

7 months ago

2.0.310

7 months ago

2.0.319

7 months ago

2.0.318

7 months ago

2.0.328

6 months ago

2.0.327

6 months ago

2.0.326

6 months ago

2.0.325

6 months ago

2.0.324

6 months ago

2.0.323

6 months ago

2.0.322

6 months ago

2.0.321

6 months ago

2.0.320

7 months ago

2.0.207

10 months ago

2.0.206

10 months ago

2.0.205

10 months ago

2.0.204

10 months ago

2.0.203

10 months ago

2.0.202

10 months ago

2.0.199

11 months ago

2.0.198

11 months ago

2.0.201

11 months ago

2.0.200

11 months ago

2.0.197

11 months ago

2.0.196

11 months ago

2.0.195

11 months ago

2.0.194

11 months ago

2.0.191

11 months ago

2.0.190

11 months ago

2.0.193

11 months ago

2.0.192

11 months ago

2.0.180

11 months ago

2.0.189

11 months ago

2.0.188

11 months ago

2.0.187

11 months ago

2.0.186

11 months ago

2.0.185

11 months ago

2.0.184

11 months ago

2.0.183

11 months ago

2.0.182

11 months ago

2.0.181

11 months ago

2.0.179

11 months ago

2.0.178

11 months ago

2.0.177

11 months ago

2.0.176

11 months ago

2.0.175

11 months ago

2.0.174

11 months ago

2.0.173

11 months ago

2.0.172

11 months ago

2.0.171

12 months ago

2.0.170

12 months ago

2.0.159

12 months ago

2.0.158

12 months ago

2.0.157

12 months ago

2.0.156

12 months ago

2.0.155

12 months ago

2.0.154

12 months ago

2.0.169

12 months ago

2.0.168

12 months ago

2.0.167

12 months ago

2.0.166

12 months ago

2.0.165

12 months ago

2.0.164

12 months ago

2.0.163

12 months ago

2.0.162

12 months ago

2.0.161

12 months ago

2.0.160

12 months ago

2.0.139

1 year ago

2.0.138

1 year ago

2.0.137

1 year ago

2.0.136

1 year ago

2.0.135

1 year ago

2.0.134

1 year ago

2.0.133

1 year ago

2.0.132

1 year ago

2.0.131

1 year ago

2.0.130

1 year ago

2.0.149

1 year ago

2.0.148

1 year ago

2.0.147

1 year ago

2.0.146

1 year ago

2.0.145

1 year ago

2.0.144

1 year ago

2.0.143

1 year ago

2.0.142

1 year ago

2.0.141

1 year ago

2.0.140

1 year ago

2.0.129

1 year ago

2.0.128

1 year ago

2.0.127

1 year ago

2.0.153

1 year ago

2.0.152

1 year ago

2.0.151

1 year ago

2.0.150

1 year ago

2.0.119

1 year ago

2.0.118

1 year ago

2.0.117

1 year ago

2.0.116

1 year ago

2.0.115

1 year ago

2.0.114

1 year ago

2.0.113

1 year ago

2.0.112

1 year ago

2.0.126

1 year ago

2.0.125

1 year ago

2.0.124

1 year ago

2.0.123

1 year ago

2.0.122

1 year ago

2.0.121

1 year ago

2.0.120

1 year ago

2.0.109

2 years ago

2.0.111

2 years ago

2.0.110

2 years ago

2.0.108

2 years ago

2.0.107

2 years ago

2.0.106

2 years ago

2.0.105

2 years ago

2.0.104

2 years ago

2.0.88

2 years ago

2.0.103

2 years ago

2.0.89

2 years ago

2.0.102

2 years ago

2.0.101

2 years ago

2.0.100

2 years ago

2.0.99

2 years ago

2.0.97

2 years ago

2.0.98

2 years ago

2.0.95

2 years ago

2.0.96

2 years ago

2.0.93

2 years ago

2.0.94

2 years ago

2.0.91

2 years ago

2.0.92

2 years ago

2.0.90

2 years ago

2.0.28

2 years ago

2.0.29

2 years ago

2.0.37

2 years ago

2.0.38

2 years ago

2.0.35

2 years ago

2.0.36

2 years ago

2.0.33

2 years ago

2.0.34

2 years ago

2.0.31

2 years ago

2.0.9

2 years ago

2.0.32

2 years ago

2.0.8

2 years ago

2.0.30

2 years ago

2.0.39

2 years ago

2.0.48

2 years ago

2.0.49

2 years ago

2.0.46

2 years ago

2.0.47

2 years ago

2.0.44

2 years ago

2.0.45

2 years ago

2.0.42

2 years ago

2.0.43

2 years ago

2.0.40

2 years ago

2.0.41

2 years ago

2.0.59

2 years ago

2.0.57

2 years ago

2.0.58

2 years ago

2.0.55

2 years ago

2.0.56

2 years ago

2.0.53

2 years ago

2.0.54

2 years ago

2.0.51

2 years ago

2.0.52

2 years ago

2.0.50

2 years ago

2.0.68

2 years ago

2.0.69

2 years ago

2.0.66

2 years ago

2.0.67

2 years ago

2.0.64

2 years ago

2.0.65

2 years ago

2.0.62

2 years ago

2.0.63

2 years ago

2.0.60

2 years ago

2.0.61

2 years ago

2.0.79

2 years ago

2.0.77

2 years ago

2.0.78

2 years ago

2.0.75

2 years ago

2.0.76

2 years ago

2.0.73

2 years ago

2.0.74

2 years ago

2.0.71

2 years ago

2.0.72

2 years ago

2.0.70

2 years ago

2.0.86

2 years ago

2.0.87

2 years ago

2.0.84

2 years ago

2.0.85

2 years ago

2.0.82

2 years ago

2.0.83

2 years ago

2.0.80

2 years ago

2.0.81

2 years ago

2.0.15

2 years ago

2.0.16

2 years ago

2.0.13

2 years ago

2.0.14

2 years ago

2.0.11

2 years ago

2.0.12

2 years ago

2.0.10

2 years ago

2.0.19

2 years ago

2.0.17

2 years ago

2.0.18

2 years ago

2.0.26

2 years ago

2.0.27

2 years ago

2.0.24

2 years ago

2.0.25

2 years ago

2.0.22

2 years ago

2.0.23

2 years ago

2.0.20

2 years ago

2.0.21

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

0.0.20

3 years ago

0.0.21

3 years ago

0.0.19

3 years ago

0.0.18

3 years ago

0.0.17

3 years ago

0.0.15

3 years ago

0.0.16

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago

0.0.0

3 years ago