-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathNLP - Profile Text.step
1 lines (1 loc) · 15.5 KB
/
NLP - Profile Text.step
1
{"creationTimeStamp":"2022-10-28T15:29:34.380Z","modifiedTimeStamp":"2022-11-21T18:50:38.308Z","createdBy":"Sundaresh.Sankaran@sas.com","modifiedBy":"Sundaresh.Sankaran@sas.com","name":"NLP - Profile Text.step","displayName":"NLP - Profile Text.step","localDisplayName":"NLP - Profile Text.step","properties":{},"links":[{"method":"GET","rel":"self","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","type":"application/vnd.sas.data.flow.step"},{"method":"GET","rel":"alternate","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","type":"application/vnd.sas.data.flow.step.summary"},{"method":"GET","rel":"up","href":"/dataFlows/steps","uri":"/dataFlows/steps","type":"application/vnd.sas.collection","itemType":"application/vnd.sas.data.flow.step.summary"},{"method":"PUT","rel":"update","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","type":"application/vnd.sas.data.flow.step","responseType":"application/vnd.sas.data.flow.step"},{"method":"DELETE","rel":"delete","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17"},{"method":"GET","rel":"transferExport","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","responseType":"application/vnd.sas.transfer.object"},{"method":"PUT","rel":"transferImportUpdate","href":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","uri":"/dataFlows/steps/0c09a62e-9134-4fc4-88b4-10880800de17","type":"application/vnd.sas.transfer.object","responseType":"application/vnd.sas.summary"}],"metadataVersion":0.0,"version":2,"type":"code","flowMetadata":{"inputPorts":[{"name":"inputtable1","displayName":"inputtable1","localDisplayName":"inputtable1","minEntries":1,"maxEntries":1,"type":"table"}],"outputPorts":[{"name":"casout_profile","displayName":"casout_profile","localDisplayName":"casout_profile","minEntries":1,"maxEntries":1,"type":"table","requiresStructure":false},{"name":"documentOut","displayName":"documentOut","localDisplayName":"documentOut","minEntries":1,"maxEntries":1,"type":"table","requiresStructure":false},{"name":"intermediateOut","displayName":"intermediateOut","localDisplayName":"intermediateOut","minEntries":1,"maxEntries":1,"type":"table","requiresStructure":false},{"name":"sentenceOut","displayName":"sentenceOut","localDisplayName":"sentenceOut","minEntries":1,"maxEntries":1,"type":"table","requiresStructure":false},{"name":"tokenOut","displayName":"tokenOut","localDisplayName":"tokenOut","minEntries":1,"maxEntries":1,"type":"table","requiresStructure":false}]},"ui":"{\n\t\"showPageContentOnly\": true,\n\t\"pages\": [\n\t\t{\n\t\t\t\"id\": \"page1\",\n\t\t\t\"type\": \"page\",\n\t\t\t\"label\": \"Parameters\",\n\t\t\t\"children\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"inputtable1\",\n\t\t\t\t\t\"type\": \"inputtable\",\n\t\t\t\t\t\"label\": \"Input Corpus\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Enter Input Table\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"casout_profile\",\n\t\t\t\t\t\"type\": \"outputtable\",\n\t\t\t\t\t\"label\": \"Output Table - Profile\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Output Table - Profile\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"docId\",\n\t\t\t\t\t\"type\": \"columnselector\",\n\t\t\t\t\t\"label\": \"Select Document ID Column\",\n\t\t\t\t\t\"order\": false,\n\t\t\t\t\t\"columntype\": \"a\",\n\t\t\t\t\t\"max\": 1,\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"visible\": \"\",\n\t\t\t\t\t\"table\": \"inputtable1\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"textCol\",\n\t\t\t\t\t\"type\": \"columnselector\",\n\t\t\t\t\t\"label\": \"Select Text Column\",\n\t\t\t\t\t\"order\": false,\n\t\t\t\t\t\"columntype\": \"c\",\n\t\t\t\t\t\"max\": 1,\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"visible\": \"\",\n\t\t\t\t\t\"table\": \"inputtable1\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"language\",\n\t\t\t\t\t\"type\": \"radiogroup\",\n\t\t\t\t\t\"label\": \"Select Language (NOTE : ENGLISH is the default)\",\n\t\t\t\t\t\"items\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"English\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Arabic\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Chinese\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Croatian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Czech\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Danish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Dutch\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Farsi\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Finnish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"French\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"German\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Greek\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Hebrew\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Hindi\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Hungarian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Indonesian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Italian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Japanese\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Kazakh\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Korean\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Norwegian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Polish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Portuguese\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Romanian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Russian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Slovak\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Slovenian\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Spanish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Swedish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Tagalog\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Thai\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Turkish\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"value\": \"Vietnamese\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"documentOut\",\n\t\t\t\t\t\"type\": \"outputtable\",\n\t\t\t\t\t\"label\": \"Document Output Table\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Document Output Table\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"intermediateOut\",\n\t\t\t\t\t\"type\": \"outputtable\",\n\t\t\t\t\t\"label\": \"Intermediate Output\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Intermediate Output\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"sentenceOut\",\n\t\t\t\t\t\"type\": \"outputtable\",\n\t\t\t\t\t\"label\": \"Sentence Output\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Sentence Output\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"tokenOut\",\n\t\t\t\t\t\"type\": \"outputtable\",\n\t\t\t\t\t\"label\": \"Token Output \",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\"placeholder\": \"Token Output\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"page2\",\n\t\t\t\"type\": \"page\",\n\t\t\t\"label\": \"About\",\n\t\t\t\"children\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"text1\",\n\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\"text\": \"NLP - Profile Text\\n\\nThe NLP - Profile Text custom step helps you easily obtain initial understanding of a set of text observations, also known as a document corpus.\\n\\nInput arguments:\\n1. Input port: assign an input CAS table to the input port of this node. This table should contain a text column for analysis.\\n2. Document ID column: select a column which indicates the unique ID for each text observation in this table.\\n3. Text column:select a column which contains the text to be profiled.\\n4. Language: select a language code\\n\\nOutput tables :\\nThis custom step has 5 output ports. Provide desired names and locations (caslibs) for the following.\\n1. Text Profile Output table : The main output containing a single observation with several profile statistics.\\n2. Document Output : Statistics provided for each observation as represented by the Document ID\\n3. Intermediate-level Output: Statistics provided for each sentence within the document corpus\\n4. Sentence-level Output: A distribution of the number of sentences based on token length\\n5. Token-level Output: A frequency matrix for all tokens based on their type (whether stop words, numeric tokens etc.)\\n\\nIn addition to the output tables, the Text Profile custom step also promotes these tables so that they can automatically populate a pre-defined SAS Visual Analytics report, which is an option for users to refer to. \\n\\nThis custom step makes use of the Text Profile action, documented here: https://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=default&docsetId=casanpg&docsetTarget=p1e93w56dte67qn14kcy9njkxs1p.htm\\n\\nCreated/Contact: Sundaresh Sankaran (sundaresh.sankaran@sas.com)\\n\\nVersion 1.0. Created 19OCT2022\",\n\t\t\t\t\t\"visible\": \"\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t],\n\t\"syntaxversion\": \"1.3.0\",\n\t\"values\": {\n\t\t\"inputtable1\": {\n\t\t\t\"library\": \"PUBLIC\",\n\t\t\t\"table\": \"NEWS\"\n\t\t},\n\t\t\"casout_profile\": {\n\t\t\t\"library\": \"\",\n\t\t\t\"table\": \"\"\n\t\t},\n\t\t\"docId\": [],\n\t\t\"textCol\": [],\n\t\t\"language\": {\n\t\t\t\"value\": \"English\"\n\t\t},\n\t\t\"documentOut\": {\n\t\t\t\"library\": \"\",\n\t\t\t\"table\": \"\"\n\t\t},\n\t\t\"intermediateOut\": {\n\t\t\t\"library\": \"\",\n\t\t\t\"table\": \"\"\n\t\t},\n\t\t\"sentenceOut\": {\n\t\t\t\"library\": \"\",\n\t\t\t\"table\": \"\"\n\t\t},\n\t\t\"tokenOut\": {\n\t\t\t\"library\": \"\",\n\t\t\t\"table\": \"\"\n\t\t}\n\t}\n}","templates":{"SAS":"/* SAS templated code goes here */\n\nproc cas;\n\ntextManagement.profileText /\n\tdocumentId=\"&DOCID_1_NAME_BASE.\"\n\ttext=\"&TEXTCOL_1_NAME_BASE.\"\n\tlanguage=\"&language.\"\n\tcasout={name=\"&CASOUT_PROFILE_NAME_BASE.\", caslib=\"&CASOUT_PROFILE_LIB.\", replace=True}\n\tdocumentout={name=\"&DOCUMENTOUT_NAME_BASE.\", caslib=\"&DOCUMENTOUT_LIB.\", replace=True}\n\tsentenceout={name=\"&SENTENCEOUT_NAME_BASE.\", caslib=\"&SENTENCEOUT_LIB.\", replace=True}\n\tintermediateout={name=\"&INTERMEDIATEOUT_NAME_BASE.\", caslib=\"&INTERMEDIATEOUT_LIB.\", replace=True}\n\ttokenout={name=\"&TOKENOUT_NAME_BASE.\", caslib=\"&TOKENOUT_LIB.\", replace=True}\n table={name=\"&inputtable1_name_base.\", caslib=\"&inputtable1_lib.\"}\n;\n\ntable.save / \n\ttable= {name=\"&CASOUT_PROFILE_NAME_BASE.\", caslib=\"&CASOUT_PROFILE_LIB.\"}\n\tname=\"&CASOUT_PROFILE_NAME_BASE.\"\n\tcaslib=\"&CASOUT_PROFILE_LIB.\"\n\treplace=True\n;\n\ntable.tableExists result=rc/\n name=\"&CASOUT_PROFILE_NAME_BASE.\", caslib=\"&CASOUT_PROFILE_LIB.\"\n;\n\ndo until (rc.exists=0);\n table.dropTable /\n name=\"&CASOUT_PROFILE_NAME_BASE.\"\n\t\t caslib=\"&CASOUT_PROFILE_LIB.\"\n ;\n table.tableExists result=rc/\n\t\tname=\"&CASOUT_PROFILE_NAME_BASE.\"\n\t\tcaslib=\"&CASOUT_PROFILE_LIB.\"\n\t\t;\nend;\n\n;\n\ntable.loadTable /\n\tpath=\"&CASOUT_PROFILE_NAME_BASE..sashdat\"\n\tcaslib=\"&CASOUT_PROFILE_LIB.\"\n\tcasout={name=\"&CASOUT_PROFILE_NAME_BASE.\", caslib=\"&CASOUT_PROFILE_LIB.\"}\n\n;\n\n;\n\ttable.promote /\n name=\"&CASOUT_PROFILE_NAME_BASE.\"\n caslib=\"&CASOUT_PROFILE_LIB.\"\n drop=FALSE\n targetcaslib=\"&CASOUT_PROFILE_LIB.\"\n ;\n\n\n/* Document Out */\n\ntable.save / \n\n\ttable= {name=\"&DOCUMENTOUT_NAME_BASE.\", caslib=\"&DOCUMENTOUT_LIB.\"}\n\tname=\"&DOCUMENTOUT_NAME_BASE.\"\n\tcaslib=\"&DOCUMENTOUT_LIB.\"\n\treplace=True\n;\n\ntable.tableExists result=rc/\n name=\"&DOCUMENTOUT_NAME_BASE.\", caslib=\"&DOCUMENTOUT_LIB.\"\n;\nprint rc;\n\ndo until (rc.exists=0);\n table.dropTable /\n name=\"&DOCUMENTOUT_NAME_BASE.\"\n\t\t caslib=\"&DOCUMENTOUT_LIB.\"\n ;\n table.tableExists result=rc/\n\t\tname=\"&DOCUMENTOUT_NAME_BASE.\"\n\t\tcaslib=\"&DOCUMENTOUT_LIB.\"\n\t\t;\nprint rc;\nend;\n\n;\n\ntable.loadTable /\n\tpath=\"&DOCUMENTOUT_NAME_BASE..sashdat\"\n\tcaslib=\"&DOCUMENTOUT_LIB.\"\n\tcasout={name=\"&DOCUMENTOUT_NAME_BASE.\", caslib=\"&DOCUMENTOUT_LIB.\"}\n\n;\n\n;\n\ttable.promote /\n name=\"&DOCUMENTOUT_NAME_BASE.\"\n caslib=\"&DOCUMENTOUT_LIB.\"\n drop=FALSE\n targetcaslib=\"&DOCUMENTOUT_LIB.\"\n ;\n\n\n/* Sentence Out */\n\ntable.save / \n\n\ttable= {name=\"&SENTENCEOUT_NAME_BASE.\", caslib=\"&SENTENCEOUT_LIB.\"}\n\tname=\"&SENTENCEOUT_NAME_BASE.\"\n\tcaslib=\"&SENTENCEOUT_LIB.\"\n\treplace=True\n;\n\ntable.tableExists result=rc/\n name=\"&SENTENCEOUT_NAME_BASE.\", caslib=\"&SENTENCEOUT_LIB.\"\n;\nprint rc;\n\ndo until (rc.exists=0);\n table.dropTable /\n name=\"&SENTENCEOUT_NAME_BASE.\"\n\t\t caslib=\"&SENTENCEOUT_LIB.\"\n ;\n table.tableExists result=rc/\n\t\tname=\"&SENTENCEOUT_NAME_BASE.\"\n\t\tcaslib=\"&SENTENCEOUT_LIB.\"\n\t\t;\nprint rc;\nend;\n\n;\n\ntable.loadTable /\n\tpath=\"&SENTENCEOUT_NAME_BASE..sashdat\"\n\tcaslib=\"&SENTENCEOUT_LIB.\"\n\tcasout={name=\"&SENTENCEOUT_NAME_BASE.\", caslib=\"&SENTENCEOUT_LIB.\"}\n\n;\n\n;\n\ttable.promote /\n name=\"&SENTENCEOUT_NAME_BASE.\"\n caslib=\"&SENTENCEOUT_LIB.\"\n drop=FALSE\n targetcaslib=\"&SENTENCEOUT_LIB.\"\n ;\n\n/* Intermediate Out */\n\ntable.save / \n\n\ttable= {name=\"&INTERMEDIATEOUT_NAME_BASE.\", caslib=\"&INTERMEDIATEOUT_LIB.\"}\n\tname=\"&INTERMEDIATEOUT_NAME_BASE.\"\n\tcaslib=\"&INTERMEDIATEOUT_LIB.\"\n\treplace=True\n;\n\ntable.tableExists result=rc/\n name=\"&INTERMEDIATEOUT_NAME_BASE.\", caslib=\"&INTERMEDIATEOUT_LIB.\"\n;\nprint rc;\n\ndo until (rc.exists=0);\n table.dropTable /\n name=\"&INTERMEDIATEOUT_NAME_BASE.\"\n\t\t caslib=\"&INTERMEDIATEOUT_LIB.\"\n ;\n table.tableExists result=rc/\n\t\tname=\"&INTERMEDIATEOUT_NAME_BASE.\"\n\t\tcaslib=\"&INTERMEDIATEOUT_LIB.\"\n\t\t;\nprint rc;\nend;\n\n;\n\ntable.loadTable /\n\tpath=\"&INTERMEDIATEOUT_NAME_BASE..sashdat\"\n\tcaslib=\"&INTERMEDIATEOUT_LIB.\"\n\tcasout={name=\"&INTERMEDIATEOUT_NAME_BASE.\", caslib=\"&INTERMEDIATEOUT_LIB.\"}\n\n;\n\n;\n\ttable.promote /\n name=\"&INTERMEDIATEOUT_NAME_BASE.\"\n caslib=\"&INTERMEDIATEOUT_LIB.\"\n drop=FALSE\n targetcaslib=\"&INTERMEDIATEOUT_LIB.\"\n ;\n\n\n/* Token Out */\n\ntable.save / \n\n\ttable= {name=\"&TOKENOUT_NAME_BASE.\", caslib=\"&TOKENOUT_LIB.\"}\n\tname=\"&TOKENOUT_NAME_BASE.\"\n\tcaslib=\"&TOKENOUT_LIB.\"\n\treplace=True\n;\n\ntable.tableExists result=rc/\n name=\"&TOKENOUT_NAME_BASE.\", caslib=\"&TOKENOUT_LIB.\"\n;\nprint rc;\n\ndo until (rc.exists=0);\n table.dropTable /\n name=\"&TOKENOUT_NAME_BASE.\"\n\t\t caslib=\"&TOKENOUT_LIB.\"\n ;\n table.tableExists result=rc/\n\t\tname=\"&TOKENOUT_NAME_BASE.\"\n\t\tcaslib=\"&TOKENOUT_LIB.\"\n\t\t;\nprint rc;\nend;\n\n;\n\ntable.loadTable /\n\tpath=\"&TOKENOUT_NAME_BASE..sashdat\"\n\tcaslib=\"&TOKENOUT_LIB.\"\n\tcasout={name=\"&TOKENOUT_NAME_BASE.\", caslib=\"&TOKENOUT_LIB.\"}\n\n;\n\n;\n\ttable.promote /\n name=\"&TOKENOUT_NAME_BASE.\"\n caslib=\"&TOKENOUT_LIB.\"\n drop=FALSE\n targetcaslib=\"&TOKENOUT_LIB.\"\n ;\n\n\n\n\nquit;"}}