├── .DS_Store ├── .github └── PULL_REQUEST_TEMPLATE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md ├── dms ├── .DS_Store ├── data │ ├── .DS_Store │ ├── .DS_Store.gz │ ├── links.csv │ ├── movies.csv │ ├── ratings-partial-load.csv │ ├── ratings.csv │ └── tags.csv ├── endpoints │ ├── .DS_Store │ ├── links.json │ ├── movielens-tables.json │ ├── movies.json │ ├── ratings.json │ ├── table-settings.json │ ├── tags.json │ └── task-settings.json ├── scripts │ ├── .DS_Store │ ├── copy-data-to-s3-004.yaml │ ├── create-dms-stack-003.yaml │ ├── create-roles-and-bucket-001.yaml │ ├── create-vpc-002.yaml │ ├── dms-full-stack-nested.yaml │ └── start-dms-replication-005.yaml └── utils │ └── preprocess.py ├── glue └── script.py ├── images ├── .DS_Store ├── del-cfn-001.png ├── del-cfn-002.png ├── del-dynamo-001.png ├── del-dynamo-002.png ├── del-s3-001.png ├── del-s3-002.png ├── del-s3-003.png ├── dms-001.png ├── dms-002.png ├── dms-003.png ├── dms-004.png ├── dms-005.png ├── dms-006.png ├── dms-007.png ├── dms-008.png ├── dms-009.png ├── dms-010.png ├── dms-011.png ├── dms-012.png ├── dms-013.png ├── dms-014.png ├── dms-015.png ├── dms-016.png ├── dms-017.png ├── dms-018.png ├── firehose-001.png ├── firehose-002.png ├── firehose-003.png ├── firehose-004.png ├── firehose-005.png ├── firehose-006.png ├── firehose-007.png ├── firehose-delete.png ├── glue-001.png ├── glue-002.png ├── glue-003.png ├── glue-004.png ├── glue-005.png ├── glue-006.png ├── glue-007.png ├── glue-008.png ├── glue-009.png ├── glue-010.png ├── glue-011.png ├── glue-012.png ├── glue-013.png ├── glue-014.png ├── glue-015.png ├── glue-016.png ├── glue-crawler-delete.png ├── glue-job-delete.png ├── kinesis-001.png ├── kinesis-002.png ├── kinesis-delete.png ├── lambda-001.png ├── lambda-002.png ├── lambda-003.png ├── lambda-005.png ├── lambda-006.png ├── lambda-007.png ├── lambda-delete.png ├── reference-architecture.png ├── s3-001.png ├── s3-002.png └── sagemaker-delete.png └── lambda └── lambda_function.py /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/.DS_Store -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/LICENSE -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/NOTICE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/README.md -------------------------------------------------------------------------------- /dms/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/.DS_Store -------------------------------------------------------------------------------- /dms/data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/.DS_Store -------------------------------------------------------------------------------- /dms/data/.DS_Store.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/.DS_Store.gz -------------------------------------------------------------------------------- /dms/data/links.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/links.csv -------------------------------------------------------------------------------- /dms/data/movies.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/movies.csv -------------------------------------------------------------------------------- /dms/data/ratings-partial-load.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/ratings-partial-load.csv -------------------------------------------------------------------------------- /dms/data/ratings.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/ratings.csv -------------------------------------------------------------------------------- /dms/data/tags.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/data/tags.csv -------------------------------------------------------------------------------- /dms/endpoints/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/.DS_Store -------------------------------------------------------------------------------- /dms/endpoints/links.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/links.json -------------------------------------------------------------------------------- /dms/endpoints/movielens-tables.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/movielens-tables.json -------------------------------------------------------------------------------- /dms/endpoints/movies.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/movies.json -------------------------------------------------------------------------------- /dms/endpoints/ratings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/ratings.json -------------------------------------------------------------------------------- /dms/endpoints/table-settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/table-settings.json -------------------------------------------------------------------------------- /dms/endpoints/tags.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/tags.json -------------------------------------------------------------------------------- /dms/endpoints/task-settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/endpoints/task-settings.json -------------------------------------------------------------------------------- /dms/scripts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/.DS_Store -------------------------------------------------------------------------------- /dms/scripts/copy-data-to-s3-004.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/copy-data-to-s3-004.yaml -------------------------------------------------------------------------------- /dms/scripts/create-dms-stack-003.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/create-dms-stack-003.yaml -------------------------------------------------------------------------------- /dms/scripts/create-roles-and-bucket-001.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/create-roles-and-bucket-001.yaml -------------------------------------------------------------------------------- /dms/scripts/create-vpc-002.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/create-vpc-002.yaml -------------------------------------------------------------------------------- /dms/scripts/dms-full-stack-nested.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/dms-full-stack-nested.yaml -------------------------------------------------------------------------------- /dms/scripts/start-dms-replication-005.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/scripts/start-dms-replication-005.yaml -------------------------------------------------------------------------------- /dms/utils/preprocess.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/dms/utils/preprocess.py -------------------------------------------------------------------------------- /glue/script.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/glue/script.py -------------------------------------------------------------------------------- /images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/.DS_Store -------------------------------------------------------------------------------- /images/del-cfn-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-cfn-001.png -------------------------------------------------------------------------------- /images/del-cfn-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-cfn-002.png -------------------------------------------------------------------------------- /images/del-dynamo-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-dynamo-001.png -------------------------------------------------------------------------------- /images/del-dynamo-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-dynamo-002.png -------------------------------------------------------------------------------- /images/del-s3-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-s3-001.png -------------------------------------------------------------------------------- /images/del-s3-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-s3-002.png -------------------------------------------------------------------------------- /images/del-s3-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/del-s3-003.png -------------------------------------------------------------------------------- /images/dms-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-001.png -------------------------------------------------------------------------------- /images/dms-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-002.png -------------------------------------------------------------------------------- /images/dms-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-003.png -------------------------------------------------------------------------------- /images/dms-004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-004.png -------------------------------------------------------------------------------- /images/dms-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-005.png -------------------------------------------------------------------------------- /images/dms-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-006.png -------------------------------------------------------------------------------- /images/dms-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-007.png -------------------------------------------------------------------------------- /images/dms-008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-008.png -------------------------------------------------------------------------------- /images/dms-009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-009.png -------------------------------------------------------------------------------- /images/dms-010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-010.png -------------------------------------------------------------------------------- /images/dms-011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-011.png -------------------------------------------------------------------------------- /images/dms-012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-012.png -------------------------------------------------------------------------------- /images/dms-013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-013.png -------------------------------------------------------------------------------- /images/dms-014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-014.png -------------------------------------------------------------------------------- /images/dms-015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-015.png -------------------------------------------------------------------------------- /images/dms-016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-016.png -------------------------------------------------------------------------------- /images/dms-017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-017.png -------------------------------------------------------------------------------- /images/dms-018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/dms-018.png -------------------------------------------------------------------------------- /images/firehose-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-001.png -------------------------------------------------------------------------------- /images/firehose-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-002.png -------------------------------------------------------------------------------- /images/firehose-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-003.png -------------------------------------------------------------------------------- /images/firehose-004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-004.png -------------------------------------------------------------------------------- /images/firehose-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-005.png -------------------------------------------------------------------------------- /images/firehose-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-006.png -------------------------------------------------------------------------------- /images/firehose-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-007.png -------------------------------------------------------------------------------- /images/firehose-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/firehose-delete.png -------------------------------------------------------------------------------- /images/glue-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-001.png -------------------------------------------------------------------------------- /images/glue-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-002.png -------------------------------------------------------------------------------- /images/glue-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-003.png -------------------------------------------------------------------------------- /images/glue-004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-004.png -------------------------------------------------------------------------------- /images/glue-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-005.png -------------------------------------------------------------------------------- /images/glue-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-006.png -------------------------------------------------------------------------------- /images/glue-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-007.png -------------------------------------------------------------------------------- /images/glue-008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-008.png -------------------------------------------------------------------------------- /images/glue-009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-009.png -------------------------------------------------------------------------------- /images/glue-010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-010.png -------------------------------------------------------------------------------- /images/glue-011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-011.png -------------------------------------------------------------------------------- /images/glue-012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-012.png -------------------------------------------------------------------------------- /images/glue-013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-013.png -------------------------------------------------------------------------------- /images/glue-014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-014.png -------------------------------------------------------------------------------- /images/glue-015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-015.png -------------------------------------------------------------------------------- /images/glue-016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-016.png -------------------------------------------------------------------------------- /images/glue-crawler-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-crawler-delete.png -------------------------------------------------------------------------------- /images/glue-job-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/glue-job-delete.png -------------------------------------------------------------------------------- /images/kinesis-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/kinesis-001.png -------------------------------------------------------------------------------- /images/kinesis-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/kinesis-002.png -------------------------------------------------------------------------------- /images/kinesis-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/kinesis-delete.png -------------------------------------------------------------------------------- /images/lambda-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-001.png -------------------------------------------------------------------------------- /images/lambda-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-002.png -------------------------------------------------------------------------------- /images/lambda-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-003.png -------------------------------------------------------------------------------- /images/lambda-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-005.png -------------------------------------------------------------------------------- /images/lambda-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-006.png -------------------------------------------------------------------------------- /images/lambda-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-007.png -------------------------------------------------------------------------------- /images/lambda-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/lambda-delete.png -------------------------------------------------------------------------------- /images/reference-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/reference-architecture.png -------------------------------------------------------------------------------- /images/s3-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/s3-001.png -------------------------------------------------------------------------------- /images/s3-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/s3-002.png -------------------------------------------------------------------------------- /images/sagemaker-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/images/sagemaker-delete.png -------------------------------------------------------------------------------- /lambda/lambda_function.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-ml-data-lake-workshop/HEAD/lambda/lambda_function.py --------------------------------------------------------------------------------