Oracle Data Mining - Installation/Set up (11g Release 2)

Data Mining Tool 2

About

Configuration steps to get Oracle Data Mining up and running.

Prerequisites

  • Oracle Database 11g Enterprise Edition, Release 2 (11.2.0.1) with Data Mining Option Installed
  • Oracle SQL Developer, version 3.0, or later.
  • Have access to the following database information (SYS user login and Password, Database port number, Database SID) to install the Oracle Data Miner Repository.

Steps

Creation of the user

CREATE USER dmuser IDENTIFIED BY dmuser
DEFAULT tablespace users
TEMPORARY tablespace temp
quota unlimited ON users;
 
GRANT CONNECT, resource TO dmuser;

Creation of the repository

  • Go to Data Miner Navigator

Odm Sql Developer View Data Miner

  • Repository Not installed

Odm Repository Not Installed

  • Connection Information: Fill in the SYS password
  • Repository Installation Setting

Odm Repository Installation Setting

  • Installation Data Miner Repository

Odm Install Data Miner Repository

The dmuser user will have access to the sample data.

  • Task Completed Successfully

Odm Repository Task Installed Successfully

Documentation / Reference

Log

anonymous block completed
Total Number of Objects: 0
Total Number of Objects Dropped: 0
Total Number of Objects Failed to Drop: 0


Error starting at line 3 in command:
drop role ODMRUSER
Error report:
SQL Error: ORA-01919: Rol 'ODMRUSER' bestaat niet.
01919. 00000 -  "role '%s' does not exist"
*Cause:    Role by that name does not exist.
*Action:   Verify you are using the correct role name.
> -- CREATE ODMRSYS
> create user ODMRSYS identified by Al1v19x default tablespace &&1 temporary tablespace &&2 quota UNLIMITED on &&1 PASSWORD EXPIRE
user ODMRSYS created.
> --Lock ODMRSYS
> ALTER USER ODMRSYS ACCOUNT LOCK
user ODMRSYS altered.
> ALTER USER ODMRSYS PASSWORD EXPIRE
user ODMRSYS altered.
> COMMIT
commited.
> grant
  CREATE TABLE, 
  CREATE VIEW, 
  CREATE TRIGGER, 
  CREATE PROCEDURE, 
  CREATE SYNONYM,
  CREATE SEQUENCE,
  CREATE TYPE,
  CREATE JOB,
  CREATE PUBLIC SYNONYM,
  CREATE RULE,
  CREATE RULE SET,
  CREATE EVALUATION CONTEXT,
  DROP PUBLIC SYNONYM to ODMRSYS
grant succeeded.
> grant EXECUTE ON CTX_DDL to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_LOCK to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_RANDOM to ODMRSYS
grant succeeded.
> -- added the additional grants to cover remove of grants on public synonyms
> grant EXECUTE ON SYS.DBMS_OUTPUT to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_SCHEDULER to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_UTILITY to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_SQL to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_DATA_MINING_TRANSFORM to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_ASSERT to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_DATA_MINING to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_XMLGEN to ODMRSYS
grant succeeded.
> grant EXECUTE ON SYS.DBMS_LOB to ODMRSYS
grant succeeded.
> -- CREATE ODMRUSER ROLE
> CREATE ROLE ODMRUSER NOT IDENTIFIED
role ODMRUSER created.
> grant 
    CREATE TABLE, 
    CREATE VIEW,
    CREATE MINING MODEL,
    CREATE PROCEDURE, -- added for loading procedures used for vertical demos
    CREATE SEQUENCE,   -- ODMr Classic compatibility 
    CREATE TYPE,       -- ODMr Classic compatibility 
    CREATE SYNONYM,    -- ODMr Classic compatibility
    CREATE ANY INDEX,
    CREATE JOB,
    CREATE RULE,
    CREATE RULE SET,
    CREATE EVALUATION CONTEXT,
    CREATE SESSION
    to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_RANDOM to ODMRUSER
grant succeeded.
> grant EXECUTE ON CTX_DDL to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_LOCK to ODMRUSER
grant succeeded.
> -- added the additional grants to cover remove of grants on public synonyms
> grant EXECUTE ON SYS.DBMS_OUTPUT to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_SCHEDULER to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_UTILITY to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_SQL to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_DATA_MINING_TRANSFORM to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_ASSERT to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_DATA_MINING to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_XMLGEN to ODMRUSER
grant succeeded.
> grant EXECUTE ON SYS.DBMS_LOB to ODMRUSER
grant succeeded.
> -- Revoke role from sys to avoid locks when dropping repository
> revoke ODMRUSER from sys
revoke succeeded.
session SET altered.
session SET altered.
anonymous block completed
session SET altered.
anonymous block completed
table ODMRSYS.ODMR$DEFAULT_STOPLISTS created.
table ODMRSYS.ODMR$DEBUG_LOG created.
table ODMRSYS.ODMR$WORKFLOW_JOBS created.
table ODMRSYS.ODMR$WORKFLOWS created.
table ODMRSYS.ODMR$WF_LOG created.
table ODMRSYS.ODMR$WF_JOB_ARGS created.
table ODMRSYS.ODMR$REPOSITORY_PROPERTIES created.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
table ODMRSYS.ODMR$PROJECTS created.
table ODMRSYS.ODMR$WORKFLOW_JOBS altered.
table ODMRSYS.ODMR$WORKFLOWS altered.
table ODMRSYS.ODMR$PROJECTS altered.
table ODMRSYS.ODMR$WORKFLOW_JOBS altered.
table ODMRSYS.ODMR$WORKFLOWS altered.
table ODMRSYS.ODMR$WF_JOB_ARGS altered.
view ODMRSYS.ODMR_USER_DEFAULT_STOPLISTS created.
view ODMRSYS.ODMR_USER_PROJECT_WORKFLOW created.
view ODMRSYS.ODMR_USER_WORKFLOW_JOBS created.
view ODMRSYS.ODMR_USER_WORKFLOW_LOG created.
view ODMRSYS.ODMR_REPOSITORY_PROPERTIES created.
view ODMRSYS.ODMR_USER_WORKFLOW_RUNNING created.
view ODMRSYS.ODMR_USER_WORKFLOW_COMPLETE created.
view ODMRSYS.ODMR_USER_WORKFLOW_ALL created.
view ODMRSYS.ODMR_ALL_WORKFLOW_MODELS created.
COMMENT on column odmrsys.odmr$workflows.run_mode 'RUN, succeeded.
COMMENT on column odmrsys.odmr$workflows.status 'ACTIVE, succeeded.
index ODMR$WORKFLOWS_INDEX created.
index ODMR$WF_LOG_PROJ_NAME_INDEX created.
index ODMR$WF_LOG_WF_NAME_INDEX created.
index ODMR$WF_LOG_JOB_NAME_INDEX created.
index ODMR$WF_LOG_TYPE_INDEX created.
index ODMR$WF_LOG_STYPE_INDEX created.
index ODMR$WF_LOG_TASK_INDEX created.
index ODMR$WF_LOG_NODE_ID_INDEX created.
index ODMR$WF_LOG_WF_ID_INDEX created.
index ODMR$WF_LOG_TIMESTMP_INDEX created.
sequence ODMRSYS.ODMR$WORKFLOW_OBJECT_NAME_SEQ created.
sequence ODMRSYS.ODMR$WORKFLOW_ID_SEQ created.
sequence ODMRSYS.ODMR$PROJECT_ID_SEQ created.
sequence ODMRSYS.ODMR$LOG_ID_SEQ created.
TYPE ODMR_PREDICTION_NUM_COST compiled
TYPE ODMR_PREDICTION_NUM compiled
TYPE ODMR_PREDICTION_CAT_COST compiled
TYPE ODMR_PREDICTION_CAT compiled
TYPE ODMR_PREDICTION_SET_NUM_COST compiled
TYPE ODMR_PREDICTION_SET_NUM compiled
TYPE ODMR_PREDICTION_SET_CAT_COST compiled
TYPE ODMR_PREDICTION_SET_CAT compiled
TYPE ODMR_FEATURE_NUM compiled
TYPE ODMR_FEATURE_SET_NUM compiled
TYPE ODMR_FEATURE_CAT compiled
TYPE ODMR_FEATURE_SET_CAT compiled
TYPE ODMR_CLUSTER_NUM compiled
TYPE ODMR_CLUSTER_SET_NUM compiled
TYPE ODMR_CLUSTER_CAT compiled
TYPE ODMR_CLUSTER_SET_CAT compiled
TYPE ODMR_HISTOGRAM_POINT compiled
TYPE ODMR_HISTOGRAMS compiled
TYPE ODMR_TRANSFORM_SETTING compiled
TYPE ODMR_TRANSFORM_SETTINGS compiled
TYPE ODMR_OBJECT_VALUES compiled
TYPE ODMR_OBJECT_NAMES compiled
TYPE ODMR_OBJECT_IDS compiled
TYPE ODMR_NODE_REFERENCE compiled
TYPE ODMR_NODE_REFERENCE_SET compiled
index "ODMRSYS"."CLASSIFICATION_BUILD_N_ID_IDX" created.
index "ODMRSYS"."DATA_PROFILE_N_ID_IDX" created.
index "ODMRSYS"."DATA_SOURCE_N_ID_IDX" created.
index "ODMRSYS"."CREATE_TABLE_N_ID_IDX" created.
index "ODMRSYS"."UPDATE_TABLE_N_ID_IDX" created.
index "ODMRSYS"."AGGREGATION_N_ID_IDX" created.
index "ODMRSYS"."TRANSFORMATION_N_ID_IDX" created.
index "ODMRSYS"."JOIN_N_ID_IDX" created.
index "ODMRSYS"."BUILD_TEXT_REF_N_ID_IDX" created.
index "ODMRSYS"."APPLY_TEXT_N_ID_IDX" created.
index "ODMRSYS"."BUILD_TEXT_N_ID_IDX" created.
index "ODMRSYS"."SAMPLE_N_ID_IDX" created.
index "ODMRSYS"."COLUMN_FILTER_N_ID_IDX" created.
index "ODMRSYS"."ROW_FILTER_N_ID_IDX" created.
index "ODMRSYS"."REGRESSION_BUILD_N_ID_IDX" created.
index "ODMRSYS"."CLUSTERING_BUILD_N_ID_IDX" created.
index "ODMRSYS"."ASSOCIATION_BUILD_N_ID_IDX" created.
index "ODMRSYS"."FEATURE_EXT_BUILD_N_ID_IDX" created.
index "ODMRSYS"."ANOMALY_DET_BUILD_N_ID_IDX" created.
index "ODMRSYS"."MODEL_N_ID_IDX" created.
index "ODMRSYS"."APPLY_N_ID_IDX" created.
index "ODMRSYS"."TEST_N_ID_IDX" created.
index "ODMRSYS"."MODEL_DETAILS_N_ID_IDX" created.
index "ODMRSYS"."TEST_DETAILS_N_ID_IDX" created.
index "ODMRSYS"."FILTER_DETAILS_N_ID_IDX" created.
index "ODMRSYS"."DECISION_TREE_M_ID_IDX" created.
index "ODMRSYS"."NAIVE_BAYES_M_ID_IDX" created.
index "ODMRSYS"."SUPT_VECTOR_MACH_C_M_ID_IDX" created.
index "ODMRSYS"."GEN_LINEAR_C_M_ID_IDX" created.
index "ODMRSYS"."KMEANS_M_ID_IDX" created.
index "ODMRSYS"."OCLUSTER_M_ID_IDX" created.
index "ODMRSYS"."NON_NEG_MATRIX_M_ID_IDX" created.
index "ODMRSYS"."SUPT_VECTOR_MACH_R_M_ID_IDX" created.
index "ODMRSYS"."GEN_LINEAR_R_M_ID_IDX" created.
index "ODMRSYS"."ANOM_DETECT_M_ID_IDX" created.
index "ODMRSYS"."APRIORI_M_ID_IDX" created.
index "ODMRSYS"."MINING_ATTRIBUTE_NM_IDX" created.
index "ODMRSYS"."LINKS_TAB_FROM_IDX" created.
index "ODMRSYS"."LINKS_TAB_TO_IDX" created.
anonymous block completed
1 rows inserted.
....................
....................
1 rows inserted.
anonymous block completed
PACKAGE ODMR_CONSTANT compiled
PACKAGE ODMR_MSG compiled
PACKAGE ODMR_ENGINE_SEC compiled
Warning: Uitvoering voltooid met waarschuwing.
PACKAGE ODMR_INTERNAL_UTIL compiled
PACKAGE ODMR_PROJECT_SEC compiled
PACKAGE ODMR_ENGINE_TRANSFORMS_SEC compiled
Warning: Uitvoering voltooid met waarschuwing.
PACKAGE ODMR_INTERNAL_UTIL_SEC compiled
PACKAGE ODMR_ENGINE_TEXT_SEC compiled
PACKAGE ODMR_ENGINE_OUTPUT_SEC compiled
PACKAGE ODMR_ENGINE_MINING_SEC compiled
Warning: Uitvoering voltooid met waarschuwing.
PACKAGE ODMR_ENGINE_DATA_SEC compiled
PACKAGE ODMR_WORKFLOW_SEC compiled
Warning: Uitvoering voltooid met waarschuwing.
PACKAGE ODMR_ENGINE compiled
PACKAGE ODMR_PROJECT compiled
PACKAGE ODMR_ENGINE_TRANSFORMS compiled
PACKAGE ODMR_UTIL compiled
PACKAGE ODMR_ENGINE_TEXT compiled
PACKAGE ODMR_ENGINE_OUTPUT compiled
PACKAGE ODMR_ENGINE_MINING compiled
PACKAGE ODMR_ENGINE_DATA compiled
PACKAGE ODMR_WORKFLOW compiled
PACKAGE BODY ODMR_MSG compiled
PACKAGE BODY ODMR_ENGINE_SEC compiled
PACKAGE BODY ODMR_INTERNAL_UTIL compiled
PACKAGE BODY ODMR_PROJECT_SEC compiled
PACKAGE BODY ODMR_ENGINE_TRANSFORMS_SEC compiled
PACKAGE BODY ODMR_INTERNAL_UTIL_SEC compiled
PACKAGE BODY ODMR_ENGINE_TEXT_SEC compiled
PACKAGE BODY ODMR_ENGINE_OUTPUT_SEC compiled
PACKAGE BODY ODMR_ENGINE_MINING_SEC compiled
PACKAGE BODY ODMR_ENGINE_DATA_SEC compiled
PACKAGE BODY ODMR_WORKFLOW_SEC compiled
PACKAGE BODY ODMR_ENGINE compiled
PACKAGE BODY ODMR_PROJECT compiled
PACKAGE BODY ODMR_ENGINE_TRANSFORMS compiled
PACKAGE BODY ODMR_UTIL compiled
PACKAGE BODY ODMR_ENGINE_TEXT compiled
PACKAGE BODY ODMR_ENGINE_OUTPUT compiled
PACKAGE BODY ODMR_ENGINE_MINING compiled
PACKAGE BODY ODMR_ENGINE_DATA compiled
PACKAGE BODY ODMR_WORKFLOW compiled
public synonym ODMR_TRANSFORM_SETTING created.
GRANT succeeded.
public synonym ODMR_TRANSFORM_SETTINGS created.
GRANT succeeded.
public synonym ODMR_OBJECT_IDS created.
GRANT succeeded.
public synonym ODMR_OBJECT_NAMES created.
GRANT succeeded.
public synonym ODMR_OBJECT_VALUES created.
GRANT succeeded.
public synonym ODMR_WORKFLOW_OBJECT_NAME_SEQ created.
GRANT succeeded.
public synonym ODMR_HISTOGRAM_POINT created.
GRANT succeeded.
public synonym ODMR_HISTOGRAMS created.
GRANT succeeded.
public synonym ODMR_PREDICTION_CAT created.
GRANT succeeded.
public synonym ODMR_PREDICTION_SET_CAT created.
GRANT succeeded.
public synonym ODMR_PREDICTION_CAT_COST created.
GRANT succeeded.
public synonym ODMR_PREDICTION_SET_CAT_COST created.
GRANT succeeded.
public synonym ODMR_PREDICTION_NUM created.
GRANT succeeded.
public synonym ODMR_PREDICTION_SET_NUM created.
GRANT succeeded.
public synonym ODMR_PREDICTION_NUM_COST created.
GRANT succeeded.
public synonym ODMR_PREDICTION_SET_NUM_COST created.
GRANT succeeded.
public synonym ODMR_FEATURE_CAT created.
GRANT succeeded.
public synonym ODMR_FEATURE_SET_CAT created.
GRANT succeeded.
public synonym ODMR_FEATURE_NUM created.
GRANT succeeded.
public synonym ODMR_FEATURE_SET_NUM created.
GRANT succeeded.
public synonym ODMR_CLUSTER_CAT created.
GRANT succeeded.
public synonym ODMR_CLUSTER_SET_CAT created.
GRANT succeeded.
public synonym ODMR_CLUSTER_NUM created.
GRANT succeeded.
public synonym ODMR_CLUSTER_SET_NUM created.
GRANT succeeded.
public synonym ODMR_NODE_REFERENCE created.
GRANT succeeded.
public synonym ODMR_NODE_REFERENCE_SET created.
GRANT succeeded.
public synonym ODMR_USER_DEFAULT_STOPLISTS created.
GRANT succeeded.
public synonym ODMR_USER_PROJECT_WORKFLOW created.
GRANT succeeded.
public synonym ODMR_USER_WORKFLOW_JOBS created.
GRANT succeeded.
public synonym ODMR_USER_WORKFLOW_LOG created.
GRANT succeeded.
public synonym ODMR_REPOSITORY_PROPERTIES created.
GRANT succeeded.
public synonym ODMR_USER_WORKFLOW_RUNNING created.
GRANT succeeded.
public synonym ODMR_USER_WORKFLOW_COMPLETE created.
GRANT succeeded.
public synonym ODMR_USER_WORKFLOW_ALL created.
GRANT succeeded.
public synonym ODMR_ALL_WORKFLOW_MODELS created.
GRANT succeeded.
public synonym ODMR_CONSTANT created.
GRANT succeeded.
public synonym ODMR_PROJECT created.
GRANT succeeded.
public synonym ODMR_WORKFLOW created.
GRANT succeeded.
public synonym ODMR_UTIL created.
GRANT succeeded.
public synonym ODMR_ENGINE created.
GRANT succeeded.
public synonym ODMR_ENGINE_DATA created.
GRANT succeeded.
public synonym ODMR_ENGINE_MINING created.
GRANT succeeded.
public synonym ODMR_ENGINE_OUTPUT created.
GRANT succeeded.
public synonym ODMR_ENGINE_TRANSFORMS created.
GRANT succeeded.
public synonym ODMR_ENGINE_TEXT created.
GRANT succeeded.
anonymous block completed
anonymous block completed
 
Invalid ODMRSYS Objects Report 
 
 
Total Number of Invalid Objects: 0

grant succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
anonymous block completed
Validated ODMRUSER is a default role of user

GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.
GRANT succeeded.

Error starting at line 18 in command:
drop VIEW "&USER_ACCOUNT".mining_data_apply_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 19 in command:
drop VIEW "&USER_ACCOUNT".mining_data_build_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 20 in command:
drop VIEW "&USER_ACCOUNT".mining_data_test_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 21 in command:
drop VIEW "&USER_ACCOUNT".mining_data_text_apply_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 22 in command:
drop VIEW "&USER_ACCOUNT".mining_data_text_build_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 23 in command:
drop VIEW "&USER_ACCOUNT".mining_data_text_test_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 25 in command:
drop VIEW "&USER_ACCOUNT".market_basket_v
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

Error starting at line 26 in command:
DROP TABLE "&USER_ACCOUNT"."INSUR_CUST_LTV_SAMPLE" cascade constraints
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:
session SET altered.
view "DMUSER".MINING_DATA_APPLY_V created.
view "DMUSER".MINING_DATA_BUILD_V created.
view "DMUSER".MINING_DATA_TEST_V created.
view "DMUSER".MINING_DATA_TEXT_APPLY_V created.
view "DMUSER".MINING_DATA_TEXT_BUILD_V created.
view "DMUSER".MINING_DATA_TEXT_TEST_V created.
session SET altered.

Error starting at line 17 in command:
DROP TABLE "&USER_ACCOUNT"."INSUR_CUST_LTV_SAMPLE" cascade constraints
Error report:
SQL Error: ORA-00942: Tabel of view bestaat niet.
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:
table "DMUSER"."INSUR_CUST_LTV_SAMPLE" created.
1 rows inserted
...........
...........
1 rows inserted





Discover More
Data Mining Tool 2
Oracle Data Mining

is implemented in the Oracle Database kernel, and mining models are first class database objects. is an option to the Enterprise Edition of Oracle Database. It includes programmatic interfaces for SQL,...



Share this page:
Follow us:
Task Runner