begin
 
wwv_flow_api.create_plugin_file (
  p_id => 51454228484326441954 + wwv_flow_api.g_id_offset
 ,p_flow_id => wwv_flow.g_flow_id
 ,p_plugin_id => 51454223283973883475 + wwv_flow_api.g_id_offset
 ,p_file_name => 'sql.js'
 ,p_mime_type => 'text/javascript'
 ,p_file_content => wwv_flow_api.g_varchar2_table
  );
null;
 
end;
/

 
begin
 
wwv_flow_api.g_varchar2_table := wwv_flow_api.empty_varchar2_table;
wwv_flow_api.g_varchar2_table(1) := '2F2F20436F64654D6972726F722C20636F7079726967687420286329206279204D6172696A6E20486176657262656B6520616E64206F74686572730A2F2F20446973747269627574656420756E64657220616E204D4954206C6963656E73653A20687474';
wwv_flow_api.g_varchar2_table(2) := '703A2F2F636F64656D6972726F722E6E65742F4C4943454E53450A0A2866756E6374696F6E286D6F6429207B0A202069662028747970656F66206578706F727473203D3D20226F626A6563742220262620747970656F66206D6F64756C65203D3D20226F';
wwv_flow_api.g_varchar2_table(3) := '626A6563742229202F2F20436F6D6D6F6E4A530A202020206D6F64287265717569726528222E2E2F2E2E2F6C69622F636F64656D6972726F722229293B0A2020656C73652069662028747970656F6620646566696E65203D3D202266756E6374696F6E22';
wwv_flow_api.g_varchar2_table(4) := '20262620646566696E652E616D6429202F2F20414D440A20202020646566696E65285B222E2E2F2E2E2F6C69622F636F64656D6972726F72225D2C206D6F64293B0A2020656C7365202F2F20506C61696E2062726F7773657220656E760A202020206D6F';
wwv_flow_api.g_varchar2_table(5) := '6428436F64654D6972726F72293B0A7D292866756E6374696F6E28436F64654D6972726F7229207B0A2275736520737472696374223B0A0A436F64654D6972726F722E72756E4D6F6465203D2066756E6374696F6E28737472696E672C206D6F64657370';
wwv_flow_api.g_varchar2_table(6) := '65632C2063616C6C6261636B2C206F7074696F6E7329207B0A2020766172206D6F6465203D20436F64654D6972726F722E6765744D6F646528436F64654D6972726F722E64656661756C74732C206D6F646573706563293B0A2020766172206965203D20';
wwv_flow_api.g_varchar2_table(7) := '2F4D534945205C642F2E74657374286E6176696761746F722E757365724167656E74293B0A20207661722069655F6C7439203D2069652026262028646F63756D656E742E646F63756D656E744D6F6465203D3D206E756C6C207C7C20646F63756D656E74';
wwv_flow_api.g_varchar2_table(8) := '2E646F63756D656E744D6F6465203C2039293B0A0A20206966202863616C6C6261636B2E6E6F646554797065203D3D203129207B0A202020207661722074616253697A65203D20286F7074696F6E73202626206F7074696F6E732E74616253697A652920';
wwv_flow_api.g_varchar2_table(9) := '7C7C20436F64654D6972726F722E64656661756C74732E74616253697A653B0A20202020766172206E6F6465203D2063616C6C6261636B2C20636F6C203D20303B0A202020206E6F64652E696E6E657248544D4C203D2022223B0A2020202063616C6C62';
wwv_flow_api.g_varchar2_table(10) := '61636B203D2066756E6374696F6E28746578742C207374796C6529207B0A2020202020206966202874657874203D3D20225C6E2229207B0A20202020202020202F2F20456D697474696E67204C46206F722043524C46206F6E20494538206F7220656172';
wwv_flow_api.g_varchar2_table(11) := '6C69657220726573756C747320696E20616E20696E636F727265637420646973706C61792E0A20202020202020202F2F20456D697474696E6720612063617272696167652072657475726E206D616B65732065766572797468696E67206F6B2E0A202020';
wwv_flow_api.g_varchar2_table(12) := '20202020206E6F64652E617070656E644368696C6428646F63756D656E742E637265617465546578744E6F64652869655F6C7439203F20275C7227203A207465787429293B0A2020202020202020636F6C203D20303B0A20202020202020207265747572';
wwv_flow_api.g_varchar2_table(13) := '6E3B0A2020202020207D0A20202020202076617220636F6E74656E74203D2022223B0A2020202020202F2F207265706C61636520746162730A202020202020666F72202876617220706F73203D20303B3B29207B0A202020202020202076617220696478';
wwv_flow_api.g_varchar2_table(14) := '203D20746578742E696E6465784F6628225C74222C20706F73293B0A202020202020202069662028696478203D3D202D3129207B0A20202020202020202020636F6E74656E74202B3D20746578742E736C69636528706F73293B0A202020202020202020';
wwv_flow_api.g_varchar2_table(15) := '20636F6C202B3D20746578742E6C656E677468202D20706F733B0A20202020202020202020627265616B3B0A20202020202020207D20656C7365207B0A20202020202020202020636F6C202B3D20696478202D20706F733B0A2020202020202020202063';
wwv_flow_api.g_varchar2_table(16) := '6F6E74656E74202B3D20746578742E736C69636528706F732C20696478293B0A202020202020202020207661722073697A65203D2074616253697A65202D20636F6C20252074616253697A653B0A20202020202020202020636F6C202B3D2073697A653B';
wwv_flow_api.g_varchar2_table(17) := '0A20202020202020202020666F7220287661722069203D20303B2069203C2073697A653B202B2B692920636F6E74656E74202B3D202220223B0A20202020202020202020706F73203D20696478202B20313B0A20202020202020207D0A2020202020207D';
wwv_flow_api.g_varchar2_table(18) := '0A0A202020202020696620287374796C6529207B0A2020202020202020766172207370203D206E6F64652E617070656E644368696C6428646F63756D656E742E637265617465456C656D656E7428227370616E2229293B0A202020202020202073702E63';
wwv_flow_api.g_varchar2_table(19) := '6C6173734E616D65203D2022636D2D22202B207374796C652E7265706C616365282F202B2F672C202220636D2D22293B0A202020202020202073702E617070656E644368696C6428646F63756D656E742E637265617465546578744E6F646528636F6E74';
wwv_flow_api.g_varchar2_table(20) := '656E7429293B0A2020202020207D20656C7365207B0A20202020202020206E6F64652E617070656E644368696C6428646F63756D656E742E637265617465546578744E6F646528636F6E74656E7429293B0A2020202020207D0A202020207D3B0A20207D';
wwv_flow_api.g_varchar2_table(21) := '0A0A2020766172206C696E6573203D20436F64654D6972726F722E73706C69744C696E657328737472696E67292C207374617465203D20286F7074696F6E73202626206F7074696F6E732E737461746529207C7C20436F64654D6972726F722E73746172';
wwv_flow_api.g_varchar2_table(22) := '745374617465286D6F6465293B0A2020666F7220287661722069203D20302C2065203D206C696E65732E6C656E6774683B2069203C20653B202B2B6929207B0A202020206966202869292063616C6C6261636B28225C6E22293B0A202020207661722073';
wwv_flow_api.g_varchar2_table(23) := '747265616D203D206E657720436F64654D6972726F722E537472696E6753747265616D286C696E65735B695D293B0A20202020696620282173747265616D2E737472696E67202626206D6F64652E626C616E6B4C696E6529206D6F64652E626C616E6B4C';
wwv_flow_api.g_varchar2_table(24) := '696E65287374617465293B0A202020207768696C6520282173747265616D2E656F6C282929207B0A202020202020766172207374796C65203D206D6F64652E746F6B656E2873747265616D2C207374617465293B0A20202020202063616C6C6261636B28';
wwv_flow_api.g_varchar2_table(25) := '73747265616D2E63757272656E7428292C207374796C652C20692C2073747265616D2E73746172742C207374617465293B0A20202020202073747265616D2E7374617274203D2073747265616D2E706F733B0A202020207D0A20207D0A7D3B0A0A7D293B';
wwv_flow_api.g_varchar2_table(26) := '0A';
null;
 
end;
/

 
begin
 
wwv_flow_api.create_plugin_file (
  p_id => 51454233782383079822 + wwv_flow_api.g_id_offset
 ,p_flow_id => wwv_flow.g_flow_id
 ,p_plugin_id => 51454223283973883475 + wwv_flow_api.g_id_offset
 ,p_file_name => 'runmode.js'
 ,p_mime_type => 'text/javascript'
 ,p_file_content => wwv_flow_api.g_varchar2_table
  );
null;
 
end;
/

prompt  ...data loading
--
--application/deployment/definition
prompt  ...application deployment
--
 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
begin
s:=s||''||unistr('\000a')||
'begin'||unistr('\000a')||
'    wwv_flow_api.create_or_remove_file( '||unistr('\000a')||
'        p_location => ''APPLICATION'','||unistr('\000a')||
'        p_name     => ''emp_slide.pptx'','||unistr('\000a')||
'        p_mode     => ''REMOVE'','||unistr('\000a')||
'        p_type     => ''STATIC'');'||unistr('\000a')||
'end;'||unistr('\000a')||
'/'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'begin'||unistr('\000a')||
'    wwv_flow_api.create_or_remove_file( '||unistr('\000a')||
'        p_location => ''APPLICATION'','||unistr('\000a')||
'        p_name     => ''GitHub-Mark-64px.png'','||unistr('\000a')||
'        p_mode     => ''REMOVE'','||unistr('\000a')||
'        p_type     => ''IMAGE'');'||unistr('\000a')||
'end;'||unistr('\000a')||
'/'||unistr('\000a')||
'';

s:=s||''||unistr('\000a')||
'';

wwv_flow_api.create_install (
  p_id => 8189707789662029 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_include_in_export_yn => 'Y',
  p_deinstall_script_clob => s,
  p_required_free_kb => 100,
  p_required_sys_privs => 'CREATE PROCEDURE:CREATE TABLE:CREATE TRIGGER:CREATE VIEW',
  p_deinstall_message=> '');
end;
 
 
end;
/

--application/deployment/install
prompt  ...application install scripts
--
 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE TABLE PPTX_TEMPLATE'||unistr('\000a')||
'( '||unistr('\000a')||
'  CREATED_ON DATE'||unistr('\000a')||
', TEMPLATE_CONTENT BLOB'||unistr('\000a')||
', TEMPLATE_NAME VARCHAR2 (200 CHAR)'||unistr('\000a')||
');'||unistr('\000a')||
''||unistr('\000a')||
'ALTER TABLE PPTX_TEMPLATE ADD CONSTRAINT PPTX_TEMPLATE_PK PRIMARY KEY ( TEMPLATE_NAME );'||unistr('\000a')||
'';

wwv_flow_api.create_install_script(
  p_id => 8195015998581181 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Create PPTX_TEMPLATE Table',
  p_sequence=> 10,
  p_script_type=> 'INSTALL',
  p_condition_type=> 'NOT_EXISTS',
  p_condition=> 'SELECT 1'||unistr('\000a')||
'  FROM user_tables'||unistr('\000a')||
' WHERE table_name = ''PPTX_TEMPLATE''',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE TABLE DEPT'||unistr('\000a')||
'('||unistr('\000a')||
'  DEPTNO NUMBER (2) NOT NULL'||unistr('\000a')||
', DNAME  VARCHAR2 (14 CHAR)'||unistr('\000a')||
', LOC    VARCHAR2 (13 CHAR)'||unistr('\000a')||
');'||unistr('\000a')||
''||unistr('\000a')||
'/* Load Data */'||unistr('\000a')||
'INSERT INTO DEPT (DEPTNO,DNAME,LOC)'||unistr('\000a')||
'  VALUES (''10'',''ACCOUNTING'',''NEW YORK'');'||unistr('\000a')||
'INSERT INTO DEPT (DEPTNO,DNAME,LOC)'||unistr('\000a')||
'  VALUES (''20'',''RESEARCH'',''DALLAS'');'||unistr('\000a')||
'INSERT INTO DEPT (DEPTNO,DNAME,LOC)'||unistr('\000a')||
'  VALUES (''30'',''SALES'',''CHICAGO'');'||unistr('\000a')||
'INSERT INTO DEPT (DEPTNO,DNAME,LOC)'||unistr('\000a')||
'  VALUES (''40'',''OP';

s:=s||'ERATIONS'',''BOSTON'');'||unistr('\000a')||
'COMMIT;'||unistr('\000a')||
''||unistr('\000a')||
'/* Enable Contstraints */'||unistr('\000a')||
'ALTER TABLE DEPT ADD CONSTRAINT DEPT_PK PRIMARY KEY ( DEPTNO );';

wwv_flow_api.create_install_script(
  p_id => 8195510504607980 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Create and Load DEPT Table',
  p_sequence=> 20,
  p_script_type=> 'INSTALL',
  p_condition_type=> 'NOT_EXISTS',
  p_condition=> 'SELECT 1'||unistr('\000a')||
'  FROM user_tables'||unistr('\000a')||
' WHERE table_name = ''DEPT''',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE TABLE EMP'||unistr('\000a')||
'('||unistr('\000a')||
'  EMPNO    NUMBER (4) NOT NULL'||unistr('\000a')||
', ENAME    VARCHAR2 (10 CHAR)'||unistr('\000a')||
', JOB      VARCHAR2 (9 CHAR)'||unistr('\000a')||
', MGR      NUMBER (4)'||unistr('\000a')||
', HIREDATE DATE'||unistr('\000a')||
', SAL      NUMBER (7,2)'||unistr('\000a')||
', COMM     NUMBER (7,2)'||unistr('\000a')||
', DEPTNO   NUMBER (2)'||unistr('\000a')||
');'||unistr('\000a')||
''||unistr('\000a')||
'/* Load Data */'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7839'',''KING'',''PRESIDENT'',NULL,to_date(''17.11.1981'',''DD.MM.YYYY''),''5000'',NULL,''10'');'||unistr('\000a')||
'INSER';

s:=s||'T INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7698'',''BLAKE'',''MANAGER'',''7839'',to_date(''01.05.1981'',''DD.MM.YYYY''),''2850'',NULL,''30'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7782'',''CLARK'',''MANAGER'',''7839'',to_date(''09.06.1981'',''DD.MM.YYYY''),''2450'',NULL,''10'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7566'',''JONES''';

s:=s||',''MANAGER'',''7839'',to_date(''02.04.1981'',''DD.MM.YYYY''),''2975'',NULL,''20'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7788'',''SCOTT'',''ANALYST'',''7566'',to_date(''09.12.1982'',''DD.MM.YYYY''),''3000'',NULL,''20'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7902'',''FORD'',''ANALYST'',''7566'',to_date(''03.12.1981'',''DD.MM.YYYY''),''3000'',NULL,''20'');'||unistr('\000a')||
'INSERT INTO';

s:=s||' EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7369'',''SMITH'',''CLERK'',''7902'',to_date(''17.12.1980'',''DD.MM.YYYY''),''800'',NULL,''20'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7499'',''ALLEN'',''SALESMAN'',''7698'',to_date(''20.02.1981'',''DD.MM.YYYY''),''1600'',''300'',''30'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7521'',''WARD'',''SALESM';

s:=s||'AN'',''7698'',to_date(''22.02.1981'',''DD.MM.YYYY''),''1250'',''500'',''30'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7654'',''MARTIN'',''SALESMAN'',''7698'',to_date(''28.09.1981'',''DD.MM.YYYY''),''1250'',''1400'',''30'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7844'',''TURNER'',''SALESMAN'',''7698'',to_date(''08.09.1981'',''DD.MM.YYYY''),''1500'',''0'',''30'');'||unistr('\000a')||
'INSERT INTO';

s:=s||' EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7876'',''ADAMS'',''CLERK'',''7788'',to_date(''12.01.1983'',''DD.MM.YYYY''),''1100'',NULL,''20'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7900'',''JAMES'',''CLERK'',''7698'',to_date(''03.12.1981'',''DD.MM.YYYY''),''950'',NULL,''30'');'||unistr('\000a')||
'INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)'||unistr('\000a')||
'  VALUES (''7934'',''MILLER'',''CLERK'',''';

s:=s||'7782'',to_date(''23.01.1982'',''DD.MM.YYYY''),''1300'',NULL,''10'');'||unistr('\000a')||
'COMMIT;'||unistr('\000a')||
''||unistr('\000a')||
'/* Enable Constraints */'||unistr('\000a')||
'ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY ( EMPNO );'||unistr('\000a')||
'ALTER TABLE EMP ADD CONSTRAINT EMP_DEPT_FK FOREIGN KEY ( DEPTNO ) REFERENCES DEPT ( DEPTNO );'||unistr('\000a')||
'ALTER TABLE EMP ADD CONSTRAINT EMP_MGR_FK FOREIGN KEY ( MGR ) REFERENCES EMP ( EMPNO );'||unistr('\000a')||
'';

wwv_flow_api.create_install_script(
  p_id => 8195727257622357 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Create and Load EMP Table',
  p_sequence=> 30,
  p_script_type=> 'INSTALL',
  p_condition_type=> 'NOT_EXISTS',
  p_condition=> 'SELECT 1'||unistr('\000a')||
'  FROM user_tables'||unistr('\000a')||
' WHERE table_name = ''EMP''',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'/** Upload the template PPTX file.'||unistr('\000a')||
'*   Inspired by the way APEX handles static files.'||unistr('\000a')||
'*/'||unistr('\000a')||
'DECLARE'||unistr('\000a')||
'  l_file_parts sys.dbms_sql.varchar2_table;'||unistr('\000a')||
'  l_blob BLOB;'||unistr('\000a')||
'  l_size NUMBER;'||unistr('\000a')||
'BEGIN'||unistr('\000a')||
'  l_file_parts(1) := ''504B03041400060008000000210034EEE66EED010000DD0D0000130008025B436F6E74656E745F54797065735D2E786D6C20A2040228A000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'0'';'||unistr('\000a')||
'  l_file_parts(2) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(3) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(4) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(5) := ''000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(6) := ''000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CC97DB6EDB300C86EF0BEC1D0CDD0EB1926E3D0D717AB1C3D5BA0648FA009A'';'||unistr('\000a')||
'  l_file_parts(7) := ''CD246A65499098AC79FBD1CAC90DBC386D5CCC378669993F3';

s:=s||'F51B644F66F9F73152DC0796974C27A719745A05393493D4DD8C3F847E79A451E85CE84321A12B604CF6E071FCEFAE3A5051F91B7F6099B21DA2F9CFB7406B9F0B1B1A06964625C2E904C37'';'||unistr('\000a')||
'  l_file_parts(8) := ''E556A44F620AFCBCDBBDE4A9D1081A3B5868B041FF1B4CC45C61F4FD991EAF481E2D4C59F475F562112B61322F04C200AFF471A0FC9E8FB056C95420CD8E2F74B647D65953C5E419DEF13369FD474267D5118A919750E5006BBF7B4AA793194443E1F097'';'||unistr('\000a')||
'  l_file_parts(9) := ';

s:=s||'''C8099D5B8BDC3AF034EB10283EAC54816A2613994266D2794E2271592C572FCC3817526F26F12F18AF88F04E78A4A5E725A3D7345949FB28A635CDFB70D4116883E0375929198DD394B4EB988A951E3A637DD32BB315AE235848F8F32E045BE13A02A47D'';'||unistr('\000a')||
'  l_file_parts(10) := ''0578B89EBE1441A636A2F8AD60844B058DE71D77D27514E1E7F92996668EEBFF62659C9E84BDFDA314E8AD4CE74D7F9F0D307D6A21D3E716325DB490E9B2854C572D64BA6E21D34D0B997ADD3642FDCF9DBC74AA9EBE7';

s:=s||'91F75AA86B26754949E9EEFEE1B'';'||unistr('\000a')||
'  l_file_parts(11) := ''CFC14EFAD06146B574A86AA81D71F0FA6F63D33B14DE1D4B051A3894B0ED1EAA0AEF6D44EA1A5E1F70AF0380A259CA20AB88CD437336F80B0000FFFF0300504B03041400060008000000210068F874A105010000E20200000B0008025F72656C732F2E72'';'||unistr('\000a')||
'  l_file_parts(12) := ''656C7320A2040228A00002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'0000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(13) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(14) := ''000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(15) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(16) := ''00000000000000000';

s:=s||'000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(17) := ''0000000000000000000000000000000000000000000000AC92DB4A03311086EF05DF21CC7D37DB2A22D26C6F44E89DC8FA006332BB1BDD1C48A6D2BEBDA1E061612D82BD9CD33F5FF2CF7AB377A378A7946DF00A96550D82BC0EC6FA5EC173F';

s:=s||'BB0B80591'';'||unistr('\000a')||
'  l_file_parts(18) := ''19BDC131785270A00C9BE6F262FD44237219CA838D5914159F150CCCF14ECAAC077298AB10C9974A1792432E61EA6544FD863DC9555DDFC8F453039A89A6D81A05696BAE40B4875836FF475B3A6234C8287548B488A99025B6E52DA2C5D4132B30413F96'';'||unistr('\000a')||
'  l_file_parts(19) := ''743E7654851AE43CD0EABC403CECDC8B473BCEA07CD5AAD748FD6F40CBBF0385AEB39AEE83DE39F23C63829C767C33C5C83226CA65EC68FBA91FBA3E2710ED99BC2173DA348';

s:=s||'CF193484E2EB3F9000000FFFF0300504B030414000600080000002100D803'';'||unistr('\000a')||
'  l_file_parts(20) := ''826BD7000000CE010000200000007070742F736C696465732F5F72656C732F736C696465312E786D6C2E72656C73AC91C16AC3300C86EF83BD83D17D56D24319A34E2FA350E869ED1EC0D84A6296D8C672C7F2F6732FC581C22EBBE997D0A70FB4DBFFCC'';'||unistr('\000a')||
'  l_file_parts(21) := ''93F8A6C42E7805AD6C409037C13A3F28F8BC1C5E5E4170D6DEEA297852B010C3BE7B7EDA7DD0A47359E2D14';

s:=s||'51685E259C198737C436433D2AC598648BE4CFA90669D4B4C03466DBEF440B8699A2DA69A01DD8A298E56413ADA0D88CB12CBE5BFD9A1EF9D'';'||unistr('\000a')||
'  l_file_parts(22) := ''A1F760AE33F9FCE004FA9089CF93B354A83A0D94154859B5B9AA5B59DC011F6BB5FFA9C537A3935EC235AFBCAA3E6315EE66B8FA42F70B0000FFFF0300504B0304140006000800000021003F2D199E22010000670400001F0008017070742F5F72656C73'';'||unistr('\000a')||
'  l_file_parts(23) := ''2F70726573656E746174696F6E2E786D6C2';

s:=s||'E72656C7320A2040128A0000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(24) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_fi';

s:=s||'le_parts(25) := ''0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AC94D14EC3201486EF4D7C07C2BD'';'||unistr('\000a')||
'  l_file_parts(26) := ''A59D3A8D19DD8D31D98589D1F900D89EB6440A8483D3BEBDA4D3CA96A5DE7003F97FE0E7CBE184D5FAAB5764070EA5D19C16594E09E8CAD452B79CBE6E1F2E6E29412F742D94D1C0E90048D7E5F9D';

s:=s||'9EA1994F0E11076D22209291A39EDBCB7778C61D541'';'||unistr('\000a')||
'  l_file_parts(27) := ''2F3033167458698CEB850FD2B5CC8AEA5DB4C01679BE642ECEA0E54126D9D49CBA4D7D49C976B0E1E6FFB34DD3C80AEE4DF5D183F627AE60DA78C047811E5C8815AE05CF696462BCA3C8023B65A7B16E526279F1A6E0C50F2A1477C28ACC3990454A1054'';'||unistr('\000a')||
'  l_file_parts(28) := ''B2863F8451221BA7D96A14C9218E1F6964D89B3F407B318BB54C89E5434F47B519251BC75986EB940C3B099F4FCED8A84D266BAE4';

s:=s||'9AE5242580778043159BF10ECE07B28BF010000FFFF0300504B0304140006000800000021004DCDCC8C5D020000E30C'';'||unistr('\000a')||
'  l_file_parts(29) := ''0000140000007070742F70726573656E746174696F6E2E786D6CEC96C18EDA301086EF95FA0E91AF151B1242C8468495DA0A69252AA1857D80D96480681D27B20D857DFA8E1DD304DAC33E406EB13DF3CFEFCF83F1FCE95C71EF845295B5C858F030661E'';'||unistr('\000a')||
'  l_file_parts(30) := ''8ABC2E4AB1CFD8EB76394A98A7348802782D30631754EC69F1F5C';

s:=s||'BBC491B890A85064DA91EC9089542C60E5A37A9EFABFC8015A887BA41416BBB5A56A06928F77E21E137C957DC0FC7E3D8AFA014CCE5CBCFE4D7BB5D99E3CF3A3F5654BE1591C8AD0F75'';'||unistr('\000a')||
'  l_file_parts(31) := ''281B75556B3EA3D6DFC5AD250527DC1CDF14EA652DB4223A6C41DB56BCF8054AA37C2E564ADFCD786591B1308866513289236227533343B101F31773FF7FE9A2D6A8EE246FE63A918913B959EE5CF41D3D17AD9769DC33117626FAB19B0F2F3F67EC3188'';'||unistr('\000a')||
'  l_file_parts(32) := ''A';

s:=s||'2F1983A20BF642C4EA6891DE84B43E7AE728928A2B375D0A4D6804BFB1B69D2AE1AB4D9262D700747AEB778D61B7DE1B89883995BAFA5FB7A594B8F83693514A3D78D75D70FE1271E341453815C658C9C01DF539B72E691CC16DE361FD78AB449CD6D08'';'||unistr('\000a')||
'  l_file_parts(33) := ''C24A7C97EFE6B8485B97C20D29FB40A5A8F3D64791EBF6386D31E3429152401B66DE3B4AF34BA0DEA4E38654D5BC2C9625E77660BA1A7F70E99D80AAE9737BAA7751B6AA67B8ED202776DF2A31E2DA6C0E5284BB0584762';

s:=s||'157770BB9EA7090436A1E481D'';'||unistr('\000a')||
'  l_file_parts(34) := ''0F23449F6187269ACE8CE1818F85E2F84C3A3E6D5B0E7C4EDC40717CA28E4F309905F1D040E65765A83840D31EA0244CECF530DC40868A03147780C230A1061AAE20EA2043C5019AF500CDA2C97047DB3F2E43C5014A3A40860EBD3F864BFAC40D1507E8'';'||unistr('\000a')||
'  l_file_parts(35) := ''B107289ECE864BDA7690A1629FD3FF3E31E98DDD7FD32FFE000000FFFF0300504B0304140006000800000021003951375F97030000C1090000150000007';

s:=s||'070742F736C696465732F736C696465312E786D6CC456DB6EDB38107D4E81FE83403F3BBAF922'';'||unistr('\000a')||
'  l_file_parts(36) := ''0B910B5F8B05E2C488DD0FA025DA264A9104493B3616FBEF3BA4A4A49B3840B26DD1175B14678673CE190DE7E6CBA964DE91284D05CF50781D208FF05C1494EF32F46D3D6F27C8D306F30233C14986CE44A32FC3CF9F6E64AA59E18137D729CED0DE1899'';'||unistr('\000a')||
'  l_file_parts(37) := ''FABECEF7A4C4FA5A48C2616F2B54890D2CD5CE2F147E84A825F3A320E8F925A61CD5FEE';

s:=s||'A3DFE62BBA539998AFC50126EAA208A306C2073BDA75237D1E47BA24945348471DEFF496908C8F2152BECBF966B45887DE2C7AF4AAEE452B9EDBBE35279B400BE'';'||unistr('\000a')||
'  l_file_parts(38) := ''90C77109B420BFDEA8CDDC9283193CF82FDC774D249C9EB6AA1CDEE014B079A70C01F967FB0B4E382527E3E5D5CBFCF96DBEBFBF609BEF6717ACFDE600C8E0E9508BAA42F41A4ED4C05953C388173EA1AA4C31B8DE8AFCBBF6B8009C167E052FBF3B36C1'';'||unistr('\000a')||
'  l_file_parts(39) := ''2C661B5EEE3D7396C04';

s:=s||'C6E948B569B56FB8E92C6453B5A9B5C9FC8E82571B707D507D8E320EA0FDC61CFB4F4FBFDA8130063969CB0D30F82A8EBCE6802C1195564999AD35814674BEA06FE9D283865DAACCC99114736508253481C7E405A866DF513DEFE'';'||unistr('\000a')||
'  l_file_parts(40) := ''B6425E419571FC7BBA341346307C27B54466D89ADD8D16B3D60D506D40E93A06E1C5122BFCF066284B1B4EE15048B249CEE56BA97B5B9FB8D16775D8182751F42B24D2874D2511D434145CA3EA07A40AC36EAF2ADE288CA3A4DBB369FDA0D5200';

s:=s||'A92A4D6'';'||unistr('\000a')||
'  l_file_parts(41) := ''2A4A82240E5DE24F050A6A70EF3143E0DAEF22EBAA05A3C59C32E6166AB79930E51D31CBD0209A065D2700B8FF60062BC61DA36FC96E4371313A18B1A5A692A0AA07BBF1BA1CA02C3DCC762037ABE0FC8FFA98128995B10D2BBD6A4D67CBF5DDFDCB62D9'';'||unistr('\000a')||
'  l_file_parts(42) := ''7C302CE0AC5D6CDA1F2BD75929993813D2826C668BE59F4D668139DE11955E5DB5165F1FFE242D2BCCB03ADB4456A3DBDF9CC8852632116549B5BD81D3178DE46269B84FCB0CA';

s:=s||'FDE637BB1674DEE178B97287FA665B9CED5DC94706DDD6AE885D25D6007'';'||unistr('\000a')||
'  l_file_parts(43) := ''4533F4F7783CE8459364DC1E879D79BB331DF4DBA379AFDB9E77E34E67324E469378F60F7CF632ECA4B922EE52FEAB192EE0E5AB0BBDA4B9125A6CCD752E4ABF9A0C7C291E899282BAE1200CEA09C3F58C30E8C649DC09A3D85D112E37D72A9A6C014273'';'||unistr('\000a')||
'  l_file_parts(44) := ''E9E74C2DB0BC3F3AEE6196314441EF815712A617DB35C0F4D904FA372D61C30236BC460EDFBC5DE76BDE4C09C';

s:=s||'501661CCA0BB2A59C1A823C183F0C74860C7102D317F4755190B5BB304DF92084A9F37491E0C43AB47DAA8F834718C086FF020000FFFF03'';'||unistr('\000a')||
'  l_file_parts(45) := ''00504B030414000600080000002100D5D192F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574382E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4'';'||unistr('\000a')||
'  l_file_parts(46) := ''039664DB06DB2464A3E8DF9B6305C1E3EC306';

s:=s||'F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B551'';'||unistr('\000a')||
'  l_file_parts(47) := ''69CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B030414000600080000002100D5D192F1BE000000370100002D0000007070742F73'';'||unistr('\000a')||
'  l_file';

s:=s||'_parts(48) := ''6C6964654C61796F7574732F5F72656C732F736C6964654C61796F757431312E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE'';'||unistr('\000a')||
'  l_file_parts(49) := ''04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51';

s:=s||'D4BF37F76E83A67E810CC63229F7F54281E9DA533'';'||unistr('\000a')||
'  l_file_parts(50) := ''72A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B0304140006000800000021004AAF7539D4000000BF0100002A0000007070742F6E6F746573536C696465732F5F72656C732F6E6F746573536C696465312E786D6C2E7265'';'||unistr('\000a')||
'  l_file_parts(51) := ''6C73AC90C16AC3300C86EF83BD83D17D56D2C318A34E2F63D0432FA57B00612B8969621BCB1BEDDBD75018091476D949FC12FAF4A1E';

s:=s||'DEE324FEA87B3F8180CB4BA01C5C146E7C360E0EBF4F9F2064A0A0547530C6CE0CA02BBEEF9697BE4894A5D92D127'';'||unistr('\000a')||
'  l_file_parts(52) := ''519512C4C0584A7A47143BF24CA263E250277DCC33951AF38089EC9906C64DD3BC625E32A05B31D5DE19C87BB70175BAA67AF96F76EC7B6FF923DAEF994379700265F28E2B90F2C0C580D6F78EDC4BABAB2CE0638FF63F3D422C2C0792C27965B3E80B2E'';'||unistr('\000a')||
'  l_file_parts(53) := ''C2AF19AEDEDEDD000000FFFF0300504B03041400060008000000210';

s:=s||'0D5D192F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574392E786D6C2E72656C73848FC10AC2301044EF82FF10'';'||unistr('\000a')||
'  l_file_parts(54) := ''F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813'';'||unistr('\000a')||
'  l_file_parts(55) := ''E62';

s:=s||'253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B0304140006000800000021007545E174F2020000'';'||unistr('\000a')||
'  l_file_parts(56) := ''F40600001F0000007070742F6E6F746573536C696465732F6E6F746573536C696465312E786D6CAC55D14EDB30147D9FB47FB0FC1ED22669D7464D5113DA0989958AC20718C76D2212DBB34D698790F88DFDC03E8C2FD98D9';

s:=s||'300836E308997C4B17DAFEF'';'||unistr('\000a')||
'  l_file_parts(57) := ''39E7FA6474B82D0BB4614AE78247B87BD0C188712AD29CAF237C713E7306186943784A0AC15984774CE3C3F1E74F23197261984610CF7548229C192343D7D5346325D10742320E6B2BA14A62E053ADDD54911BC85B16AED7E9F4DD92E41C37F1EA3DF162'';'||unistr('\000a')||
'  l_file_parts(58) := ''B5CA293B12F4BA64DCD449142B8881DA75964BDD6693EFC92615D390C646FF51D218B0D16591566F2DCF1563D5886FBE2AB9940B6597E79B8542790A8C61C';

s:=s||'44909C460B75968B6D94F0EDB60E0BE085FB79948B85DA9723C22216043DB0803FDBBEA0941'';'||unistr('\000a')||
'  l_file_parts(59) := ''24645B83683D499F666976BA672FCDA67B76BBED0150C1E3A115AA1AD16B385E0B6759E42943C7255933B4280865992852A650F711671D4C20D989A0571A7101C86B42C49930CD28C9085FB389968CDAA99A0D3ADFB467571455D5C80C999D042275911E'';'||unistr('\000a')||
'  l_file_parts(60) := ''97EBEA184B5BB56A076D80060DEAC51AC6DFC1F82D98B9EDD4E730BCB761BC5DE9A548771';

s:=s||'8BA0024B2B4FCB35E199A6D0C0195B055A00541C2429BA5D9150C4E2321C84242C00B0F68AF02988B30E3CEC512A33457C6F600D2A5490A46E0B6366D62C627'';'||unistr('\000a')||
'  l_file_parts(61) := ''CC3CDCFFD4483386F2151A81EC06586B73ED4DB8274D7DA16F84BA7AB8FFF52209E3E9822872F6A2AE8A245B37606FF1C1F02D65825699BACDE6D7E525F4D67381FC8F10085A09528381FD88F0F76BA20C53AD5E96BB8F116C55A4D60A6EFDA9DF4F2647'';'||unistr('\000a')||
'  l_file_parts(62) := ''B1E325F1C409FAD3AE331';

s:=s||'C0C7A8ED79B24B1E77BF1A413DFE1C736870BC6A1BAF7AAD37D52044EACA2FE5F132B4DEB68602F271AFA445AA3B95679846FE378D8F79241ECC4DD60E60447C32FCE64D6EF39B39E1F04493C9824FEF40E4A96DD20A48A59F3'';'||unistr('\000a')||
'  l_file_parts(63) := ''3C4E1B1387C957C65BE654092D56E6808AD2AD1DDC95E2862929726BE2DD4EF327D890022E92DFE90DFD4127F8D2380054690DA0AD1620B4E64C0BF58DC8D38DBD31F0CF0179133B25E12FD35CDFA72D95D8950F8C7F030000FFFF0300504B03041';

s:=s||'40006'';'||unistr('\000a')||
'  l_file_parts(64) := ''00080000002100D5D192F1BE000000370100002D0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F757431302E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4039664DB06DB24'';'||unistr('\000a')||
'  l_file_parts(65) := ''64A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A00';

s:=s||'9598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E'';'||unistr('\000a')||
'  l_file_parts(66) := ''56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B030414000600080000002100D5D192F1BE000000370100002C0000007070742F736C6964654C6179'';'||unistr('\000a')||
'  l_file_parts(67) := ''6F7574732F5F72656C732F736C6964654C61796F7574352E786D6C2E72656C73848FC10AC2301044EF82FF10F66';

s:=s||'ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAE'';'||unistr('\000a')||
'  l_file_parts(68) := ''B62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1A'';'||unistr('\000a')||
'  l_file_parts(69) := ''A49CDF792E6A59DE07D536EA6B6EFB010000FFF';

s:=s||'F0300504B03041400060008000000210069A25F211E010000C70700002C0000007070742F736C6964654D6173746572732F5F72656C732F736C6964654D6173746572312E786D6C2E72656C73C4D5DD6A'';'||unistr('\000a')||
'  l_file_parts(70) := ''C3201407F0FBC1DE41CEFD6292B6E90735BD1983C2AE46F700124F3E58A2A2762C6F3F290C12288E42C09B808AE7FCF82BE678FA197AF28DC6764A32C8921408CA4A894E360C3E2F6F2F3B20D6712978AF243218D1C2A97C7E3A7E60CF9DDF64DB4E5BE2'';'||unistr('\000a')||
'  l_file_p';

s:=s||'arts(71) := ''AB48CBA0754E1F28B5558B03B789D228FD4AADCCC09D1F9A866A5E7DF106699EA60535D31A50CE6A92B36060CEC2F7BF8CDA77FEBFB6AAEBAEC257555D0794EE4E0B6AFB4EE03B1FD5D5F9B2DC34E81824C974DE4E07BBC4F381DE97AD62CA5621D936A6'';'||unistr('\000a')||
'  l_file_parts(72) := ''6C1B9265F99234E7AF19CE0EF236436FDF2CE45894F1E8ADCA43B26CC9801E9505332B62CA8A606671430BA6B68999DA26989A7FEBE33DAD591AB2AD63D2D621D93EA66CFF27A3B3DF6FF90B0000FFFF0';

s:=s||'300504B030414000600080000002100D5D192F1'';'||unistr('\000a')||
'  l_file_parts(73) := ''BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574342E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F'';'||unistr('\000a')||
'  l_file_parts(74) := ''769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073D';

s:=s||'C29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76'';'||unistr('\000a')||
'  l_file_parts(75) := ''E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B030414000600080000002100D5D192F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F73'';'||unistr('\000a')||
'  l_file_parts(76) := ''6C6964654C61796F7574312E786D6C2E72656C73848FC10AC2301044E';

s:=s||'F82FF10F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B0'';'||unistr('\000a')||
'  l_file_parts(77) := ''6F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA'';'||unistr('\000a')||
'  l_file_parts(78) := ''6B6EF';

s:=s||'B010000FFFF0300504B030414000600080000002100D5D192F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574322E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A'';'||unistr('\000a')||
'  l_file_parts(79) := ''1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598';

s:=s||'648BE385D4813E62253AF'';'||unistr('\000a')||
'  l_file_parts(80) := ''229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B030414000600080000002100D5D192F1BE00000037010000'';'||unistr('\000a')||
'  l_file_parts(81) := ''2C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574362E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27';

s:=s||'A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC306F769AFD6B1AC59312'';'||unistr('\000a')||
'  l_file_parts(82) := ''BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F76E83A67E810CC6322'';'||unistr('\000a')||
'  l_file_parts(83) := ''9F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF030';

s:=s||'0504B0304140006000800000021007696846A1B040000B00C0000220000007070742F736C6964654C61796F7574732F736C6964654C61796F757431312E78'';'||unistr('\000a')||
'  l_file_parts(84) := ''6D6CB457DB8EDB36107D2FD07F20D467ADEE170B6B07966C150536BB8BD8C93B23D16B2194A852B463A70890DF6A3F275FD221257AB35E17F576DD17D992660E67CE991952D76F7635455BC2BB8A3563C3B9B20D449A829555F33036DE2F733336502770'';'||unistr('\000a')||
'  l_file_parts(85) := ''5362CA1A3236F6A433DE4C7';

s:=s||'EFEE9BA4D3A5ADEE03DDB0804184D97E0B1B116A24D2CAB2BD6A4C6DD156B4903EF568CD758C02D7FB04A8E3F03764D2DD7B643ABC655630CFEFC1C7FB65A550599B162539346F4209C502C20FE6E5DB59D466BCF416B39E9'';'||unistr('\000a')||
'  l_file_parts(86) := ''0046793F0D49EC5BC8168811CB4A50326DCAE5CE40CA9E6FE18D634C808262414BD4E01A1E7C00D3AAC014297B048CA125D90965D6B54B4E887468B6BFF276D1DE73E57DBBBDE7A82A25DA806258C38BC14CDD3660067FAC23F7078D8493DD8AD7936';

s:=s||'B9C'';'||unistr('\000a')||
'  l_file_parts(87) := ''003B68373640C4BDBC82134E200854F40F8BC7A7C5FAEE846DB19E9FB0B6F40210C16151D0BFED337A9E8EABD33922C539A4D7FB60C0B861C5A70E350C12963CF47916B75B8D2A9397EBB46BD46B22A41E0662BC02E57A8906AFDE54D1A4BD3B45B58EFF'';'||unistr('\000a')||
'  l_file_parts(88) := ''405018BA23DFEE6972233FF4E2A75CB97610A9F792B1200E9CC00DD4221A0916E9A1DB44EC5256EE25D31FE11704954533360896C9F7B0B4130BB1A744E901ACE10452820B18532C1';

s:=s||'B8D34E6FB05345A2D324A3034E2A09D9864B42A3E21C110292B81DE'';'||unistr('\000a')||
'  l_file_parts(89) := ''E24E108E1405D09600790DE208A88D019234E53DE6F8DD11B2641527B032C4ADE355294866FF5947EFB98EB29AEE292EC89AD11242716586D0085AB0FF24A924EE4851680BA8595D0FE72BEB07110C1655FFA7840D6D6714CBF7FF97B0506F886EE941C1'';'||unistr('\000a')||
'  l_file_parts(90) := ''570A2DE9563A774F84EEC5548AC2452FA9D87A416D2D48C1604C51B225F40C7825F50BE097EB8A9F8FEEF5AD72365';

s:=s||'F39DB70B13E3B78FFA5F0D5EA243ACCD38BB698AF5B6C860579D2598A90D776562960AA7C81AD10D39531F4949A2D6A4ACAC9AAFEFC'';'||unistr('\000a')||
'  l_file_parts(91) := ''382E553FEB21A1879A9A5CCFC7D80AB63FB97FFD91DB9E970751664E83796CFA711C99A91D85A63FB5E7E1349DCFE22CFB6A0C13BC8454455593BC7AD87072B7919BE479D330B45C17F67CC77F2C5708417A5F569540AB92332607EE8F134F55D26B7559'';'||unistr('\000a')||
'  l_file_parts(92) := ''09DE0BF3FB067358416BF32F03EF25DA5C9691503';

s:=s||'3B2A05549D0EDA6FE78C48BDA205FCB0B9C2901FA24356AFC5CB86C9D781A67B3CC3167B3DC317D3773CD1154971945419A86A917CF62EF50B69DCCBC81E8CEADD6EFDFFEFCE5FBB7BF2E50AB6AAFD6'';'||unistr('\000a')||
'  l_file_parts(93) := ''6748D8136E3AD8F35B75B4DBF00AFA2F4D47A19BC5A9993A7E6EFAB351644EF33030F3C0F3FD2C8DA79937FF0A81B78E9F149CA803EF6FE570F08687CF0ECB755570D6B195B82A586DF5A76EAB659F096F59A50EDE8E3D9CDEB718B63BC78FBDD88E5D5F'';'||unistr('\000a')||
'  l_file_par';

s:=s||'ts(94) := ''573044A9868B8E165290A7657558A0FC2D6EEFB6307D7002DF0950FF997AD4C2970194B8347D3491B9EB2F8DC9DF000000FFFF0300504B030414000600080000002100F18F7574CF030000D00B0000220000007070742F736C6964654C61796F7574732F'';'||unistr('\000a')||
'  l_file_parts(95) := ''736C6964654C61796F757431302E786D6CAC56518FDA38107E3FA9FFC14A9FB321214088162A12C8E9A4EDEEEAA0F7EE3A66B1EAC439DB506855A97FEBEEE7F497DCD889B7C7964A6C9797409C99CF33DF8';

s:=s||'C3FCFF59B7DC5D18E4AC5443DF1C2AB9E8768'';'||unistr('\000a')||
'  l_file_parts(96) := ''4D44C9EA8789F76E55F8898794C67589B9A8E9C43B50E5BD99BEFAEDBA49152F6FF0416C35028C5AA578E26DB46ED2205064432BACAE44436BF8B616B2C21A5EE543504AFC11B02B1E44BDDE30A830ABBDCE5F9EE32FD66B46E85C906D456BDD8248CAB1'';'||unistr('\000a')||
'  l_file_parts(97) := ''86F8D58635CAA135E7A035922A80B1DEC721E94303D902317AB5F790B5933B5809BD29A44E96BC4435AE6061C534A70808427F81312398A';

s:=s||'315DD6B6BA69A95A4D438D4BBDF65B36CEEA5F5BEDDDD4BC44A83D6A17841F7A133B3AF3598C19FE089FB8343'';'||unistr('\000a')||
'  l_file_parts(98) := ''C2E97E2DABE9354E8115B49F7850BC837982134E210844DA45F27D956CEE4ED892CDE28475E03680081E3785BA376D463FA613B9745A52C2C7AC5A530CAE37827C50A81690A749BF4D8FDCEE1C98C9D9C0371BD496401B7E3BBBF6A3E5C3D92BE0D492A5'';'||unistr('\000a')||
'  l_file_parts(99) := ''F799280F26F1F7F06B1771CA955EEA03A79610081BA7000E0FA09F63D3E';

s:=s||'1B4F6DF2DA1C32B9D738AE10474E4E969CE19F980B440B4641ABDC54A53896C30701E00F21AD8D1509C0E92D6E53D96F8CF27C8263F9CC2CE10B48B10FEB614FE9CC8BE23F2A8'';'||unistr('\000a')||
'  l_file_parts(100) := ''A7D03DC7846E042F2194E812E41AAA3C24248343D076BB077D094DE32AF31CC68D8C000AC5266813DD29FEA15C88EFF823D12FAC8769725B0E75548F96734B3C3CDC9636A967B4C0921201E79AD31DE567C0DB8A3C037EB561F27CF47ECBE8D97C15622B'';'||unistr('\000a')||
'  l_file_parts(101) := ''F5E6E';

s:=s||'CE0E3E7C2B3F54974D09D8B9E84D89D8439D6F4E8005842408A9D76FC92BA941A0EFF27B82A305FBBD6B7126045C648D18BD4660DD784D1F9CF45AFDF2F06A3DC9F0D16891F27C9C8CF7AA3A11FCF7A8BE12C5BCC933CFFE275925742AA9A55B460'';'||unistr('\000a')||
'  l_file_parts(102) := ''0F5B49EFB6E632394FB4864114C19D18C6DFDB154230DE97ADCAC055A510C2E8E2FF85C976D24BEBB2D6B22DCCDF5B2C6107579B5FD1A59F28D16519193A46969C9514DD6EABF74F78195C42B061E602E893D458F9B970DB86';

s:=s||'C92CC9E779E8CFE745E8C7'';'||unistr('\000a')||
'  l_file_parts(103) := ''511EF963E82E7F341A64D930EB27F3A4FFD8B6CA645E4374E776EBB7AFFFBCFEF6F5DF0BF4AABD52DDAC0577C28D82ABB9B123D05632387F59361E467992F95918177E3C1F8FFC59311CF8C5A01FC77996CCF2FEE20B04DE84714A24B503E11F653798C2'';'||unistr('\000a')||
'  l_file_parts(104) := ''E20FC364C588144AACF5151155D04EA541233E52D9086607D3B0D74DB73B0CD75D7F1CF5A2381A8FAD6C41BC10A51517172D2C99A9D2844DB87C8B9BBB1D';

s:=s||'A80F4E618E86FECFED520393B399288E4C4CEE6E129FFE070000FFFF0300504B030414000600'';'||unistr('\000a')||
'  l_file_parts(105) := ''080000002100455892CBB8030000990B0000210000007070742F736C6964654C61796F7574732F736C6964654C61796F7574322E786D6CAC56E16EDB3610FE3F60EF4068BF1559966C2B42ECC292AD61409A0475FA008C44455C29512369D5EE50A0AFB5'';'||unistr('\000a')||
'  l_file_parts(106) := ''3D4E9F64474A4C9BD4059CD980214BD4DDA7BBEF8E1FEFEACDAE66A8234252DECC1DFF';

s:=s||'62E420D2E4BCA0CDE3DC797F9FB99183A4C24D81196FC8DCD913E9BC59FCFACB551B4B565CE33DDF2A04188D8CF1DCA9946A63CF9379456A2C2F784B1A78577251'';'||unistr('\000a')||
'  l_file_parts(107) := ''63058FE2D12B04FE08D835F3C6A3D1D4AB316D9CC15F1CE3CFCB92E664C5F36D4D1AD58308C2B082F865455B69D1DA63D05A4124C018EFE721A97D0BD9F2873F1D648C44078FBEB380BCF30D2B50836B58B8A78A1104ECA094370A908C816CEF0521DAB4'';'||unistr('\000a')||
'  l_file_parts(108) := ''E97E17EDA6BD13C6';

s:=s||'EFA6BB1388161A67F077BCE1C560661E1B30831BEF85FBA345C2F1AE14F5E20AC74006DACD1DA8D95E5FC109C764A750DE2FE6DF56F3EAF6806D5EAD0F587BF60310C1D347A1DC6D9FD18FE98C6D3A3D1DFE5356BD2906D76B9E7F90'';'||unistr('\000a')||
'  l_file_parts(109) := ''A8E190A74EBF4F2FBFE92C98CE59C3B715EA99579AD9C1AE7F69F8B0F612383564A95DC28BBD4EFC01FECD228E99541BB567C4100261E318C0E102F433AC1B9B34EEFB0D3476AD52463034FE409E5AA48CE61F90E2881454A1B7582A22900';

s:=s||'906B601405E'';'||unistr('\000a')||
'  l_file_parts(110) := ''013B0A8A334092A6B8C302BF7B81ACF3C3317C1982B611C26D4FE1CF890C2C914337A13B86735271564010E3D368A505348565FE0C8C420110EBD813752732ACDBD6102C9F31DCB368A8848BFDA449E31545DD909CC31E65A423EC0878C3F42BE0EF2B2A'';'||unistr('\000a')||
'  l_file_parts(111) := ''8E470F741D5F819EF1AD50D5D1C187AF85A7E541745092B3F676687B7B851579D6D886109055AB06FF4B2F0A05DBF913683E66A50322AB9BDD6C6A231B5A5C4ED28F122';

s:=s||'45F2BF7DFD92808B2C92C75979375E48651347393D16CEA86CBD17ABA4CD6AB28'';'||unistr('\000a')||
'  l_file_parts(112) := ''4D3F3B83881590AAA235C9E8E35690DBAD3E1EA0F22FC4E2900C4DBDF1180E373FFCD6AE1082F63E6F5526B62A19E75AE9BE171CD349A7D6A554A22FCC5F5B2CE00BB6366754A2F33232B58C6C182D08BAD9D60F2F78999C26C4FDF906C313401FA4C6C8'';'||unistr('\000a')||
'  l_file_parts(113) := ''CF99DBD68F9651BA4A7D77B5CA7C371CA763F712BACB9DCD2649324D826815054F6D2B75E60D44776';

s:=s||'CB77EFDF2CF6F5FBFFC7B865E3587A49D9EE04CB89670D8B666A8D90A0AFB2F492EA7E3344ADCC40F33375C5DCEDC65369DB8D92408C334899669B0'';'||unistr('\000a')||
'  l_file_parts(114) := ''FE0C81B77E18E78298C9EE8F62983061F187A9B0A6B9E09297EA22E7B5D78F975ECB3F12D1726A264C7F348CA91D86E32EF023F885FE6CAADB00E28528EDBF891696F484A8C3CE99788BDBDB0ED407C7301043FFA766A98511B8F7FECE44E76E47EAC57F'';'||unistr('\000a')||
'  l_file_parts(115) := ''000000FFFF0300504B030414000';

s:=s||'600080000002100E1E2EB29A104000008110000210000007070742F736C6964654C61796F7574732F736C6964654C61796F7574312E786D6CCC585D6EE336107E2FD03B08EAB3A27F8916122F2C392E0A6493609D3D00'';'||unistr('\000a')||
'  l_file_parts(116) := ''23D1B6B094A852B4D76EB1C05EAB3DCE9E646728C976B2296A1446E1179BA286C36FE69B216774FD6E5B7163C3645B8AFAC674AF1CD360752E8AB25EDE981F9F6616318D56D1BAA05CD4ECC6DCB1D67C37FEF9A7EB26697971477762AD0CD051B709BD31';

s:=s||''';'||unistr('\000a')||
'  l_file_parts(117) := ''574A35896DB7F98A55B4BD120DABE1DD42C88A2A78944BBB90F433E8AEB8ED394E6457B4ACCD7EBD3C65BD582CCA9C4D45BEAE58AD3A259271AA007FBB2A9B76D0D69CA2AD91AC05357AF54B486AD780B5AA549C998616931B9870CD31589ECF7961D4B4'';'||unistr('\000a')||
'  l_file_parts(118) := ''8289279430E6BC2C987ED5364F923114AA37BFCA66DE3C4ABDE27EF3288DB2400DFD4AD3EE5FF462FAB1063118D8AF962F074D34D92E6435BEA60938C2D8DE98C0D70E7F61114DD856';

s:=s||'197937991F66F3D5C31BB2F9EAF60D697BD80010EC3705AA9BCEA2'';'||unistr('\000a')||
'  l_file_parts(119) := ''1FCDF106733A47B87BAB3A510A4BEF44FEA9356A0176A2F99D79F9FD66508636A3FA6665745ECF95D4DA7AD1EEBD76C9B0A4D56E1DB0EE9D119190389D473CD777022F7CE997388EBD0005D03B6E103B4E27716C75A7BA49D43615C50EBDFA0CFF9A159A'';'||unistr('\000a')||
'  l_file_parts(120) := ''F056CDD58E33ED6DF0094D0039FC00B79C62C6B0DAFA38878CA954C619858CEA9951E38C97F92743098315A532DE';

s:=s||'D3563169281D3D2DAABC06100A98EF55B2BA78A4927E78A5199D4713D819DC31208461C7CF3FB3E40F2CCDD7CFDD9EDE39886AD7CF1D'';'||unistr('\000a')||
'  l_file_parts(121) := ''5110D9107603B7A713E6FAB11BF58CF984447026BC642C02BA34A59AB138F450BA73429708DAF82E7E067FBCC918D2C437DC85C0312A2AEF74E6947501D9AF87942F812D883CC86250B0BE87D34EB35CB005908093AD802C9F959CEB073CE258C6A5B1A1'';'||unistr('\000a')||
'  l_file_parts(122) := ''1C0E8A2D9E0CC06059AB6E260E9D3D547D1EA2';

s:=s||'B066EF480F7039E887618F0FF5C0D03B400DC2183D635C1E5E04D9E3F50F78476EA0D3ECF2F022C81E6F70C0BB0FC3CB038C287BC0E11160E2119D1697071851F680A30360CF2390B91719C288B2071C1F'';'||unistr('\000a')||
'  l_file_parts(123) := ''018E03FF42730E51F680C90130A2BDD0A443943DE0D111E0288CF5D97F79318C28F5513DDCF788FE0CD73DDC97FFD78D1F0C37FE942A663C729AB395E005D41CFE396EFE424191F30794D8942FE05ED2B77F773163E5AABD8783B97624D627BA803AD42C'';'||unistr('\000a')||
'  l_file';

s:=s||'_parts(124) := ''6FDED187AA6A01F53516CB7FCE1CDF9F8571664DC25B620584C456EAC491154C9CDB6892DE4E49967D31FBBAB100535559B159B95C4BF6B05626F2764A7116D99E07BD841B1CAA308080ABCF5B8785032B3321B0FE3BE62538072F0B28603431BFAFA984'';'||unistr('\000a')||
'  l_file_parts(125) := ''1D066EFEA53403CF9FCCCD793D120D1ED12D9471BFAE9E5FF945D7F0D0730D0DC37F6A29A05705D56FBA4657C2BABB385FD8BA6442B269E65AD3E9CCB5022FF3AC11449715C7619A46A94FA6C4DF8';

s:=s||'76D8BCD630DE84E8DD66F5FFFFAE5DBD7BFCF10ABBA'';'||unistr('\000a')||
'  l_file_parts(126) := ''7A1E1A56E81EEF5A68411ADD47AE6509F997A6A3C8CB486AA56E30B382E928B626B328B466A11F04594A26997FFB0580376E90E492E946FAB7A26FE861F28726BC2A73295AB15057B9A8ECAE9BB71BF199C94640ED8C49E8F45F0574610DA51989C8280C'';'||unistr('\000a')||
'  l_file_parts(127) := ''757A005E40A9BB9F012D4C613B8EB0732EDFD3E6610367374DE0FB03C43FD4DC30D5C017076C1A5E88A0EDC3178CF177000000F';

s:=s||'FFF0300504B0304140006000800000021006843A36911080000E8300000210000007070742F736C6964654D6173746572'';'||unistr('\000a')||
'  l_file_parts(128) := ''732F736C6964654D6173746572312E786D6CEC5B5D6EE346127E5F20772098C78546E23F258C1C58B2950CE04C8CD839408B6C595CB7486EB3A5D80902CC1DF6067B8BDDBCE5287392ADAA6E52942DCDCAB00DD863610C99EC6E16BBEBABDF4F9EF7DFDD'';'||unistr('\000a')||
'  l_file_parts(129) := ''2C84B5E2B2CA8A7C683BEF7AB6C5F3A448B3FC6A68FF7239E';

s:=s||'9C4B6552996A74C14391FDAB7BCB2BF3BFAE66FEFCB4125D21F59A5B8B440465E0DD8D09E2B550EBADD2A99F305ABDE1525CF616E56C80553702BAFBAA964BF82EC85E8BABD5ED85DB02CB7'';'||unistr('\000a')||
'  l_file_parts(130) := ''CDF3729FE78BD92C4BF849912C173C575A88E48229D87F35CFCAAA9656EE23AD94BC0231F4F4C6968EE07CC98548F1F7F44A7FFECC675696DE80967A3DC73E7ACF06744E3E16D25A3131B4A7578EDD3D7ADFC54760B1B9C287ABF252728E57F9EA7B595E'';'||unistr('\000a')||
'  l_file_parts(131)';

s:=s||' := ''94E7126F928FAB73093241A46DE56C01FA4501346196D16D0ECBB4E08DC7AF6A496C7033930BDC11A8C7821D028AB7F8090FB101BF5156A20793F56832FF69CBDA647EBA6575B77E011CAD79299E4A9FE8FE71DCFA38979912DC3A172CE1F342A4602BA4'';'||unistr('\000a')||
'  l_file_parts(132) := ''223AA17E0CB4589E15C97565E5059C1955A18F0ACAA905E3F9F155E5DC52B7256849A158B34E4FC2CEF2667D45FAAD37DD68C50F22303A528D1BF9A1176FEA2776DD7E88F3A825C7F1BD1EDCE05ED6824A59A9EF';

wwv_flow_api.create_install_script(
  p_id => 8196106179644597 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Install PPTX Template',
  p_sequence=> 40,
  p_script_type=> 'INSTALL',
  p_condition_type=> 'NOT_EXISTS',
  p_condition=> 'SELECT 1'||unistr('\000a')||
'  FROM pptx_template'||unistr('\000a')||
' WHERE template_name = ''Employees''',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||'79B1B0F062684B9E283204B63AAB945E'';'||unistr('\000a')||
'  l_file_parts(133) := ''5A2F21F4F546CA81BA1915E92D823185DF8039781C3C3F2FE46FB6253EE4D5D0EE3BBE0FEF5674433BB52DD99E996ECC28312EC0E4E0099627206768274AD25E72F0B6E3A52A6699D9917E25BE5C54EA42DD0A4E6601E0B101A8153E604382A1C3F3BCF3'';'||unistr('\000a')||
'  l_file_parts(134) := ''CB0538FC428D056710108C09A9A3B1C8926B4B15164F336519BF2718203C8048D492225D91489EA7E74CB29FEF48362A22DDD43A01E4B421ED';

s:=s||'3627AF3127B4E5B635B908D063AD0915641BD77E8C5139603D6860A4DEDAEB36ACCA0FDCA01F7A2FDFAAD0'';'||unistr('\000a')||
'  l_file_parts(135) := ''2C1E6448E07196589145D2F11F6958A83DB2AB6AC3B0C0C8C86CF547FD4A8A180FB0E50B9E14796A09BEE2620FF164630F107F39CFE4FED2C9181E207D522CA59AEFBD795F5BE3DE704CB2D956E990469ED4A5FDDAA54F98DA4C10A490C7BA74AA208AFD'';'||unistr('\000a')||
'  l_file_parts(136) := ''0611968999716D8291D204269307E68BD00BE0E78E6BBB8EE73509C30B03';

s:=s||'C70D5EBE676FE40B72D53A2B50865809075D99892B88FEC2C6B194CF308EA33A1D0C6F385615224B2799107483E5DEBA0C5237BA3A5259AE74611405EB54DAD44C942C5A72C0'';'||unistr('\000a')||
'  l_file_parts(137) := ''B7F59B680262096E445F9BB485EF22CF9F8994AAA6DF273DCF9B04D1B8731C9CC61D3F8EA3CEA817851DFFB8771A1E8F4E4FE2F1F80F48AA5434A460692A5BF04976B594FCA7A54EDDFB24BFB0EBBA506A3AFE3A5AC016703B4FEB1441ED1493A2C0BABA'';'||unistr('\000a')||
'  l_file_parts(138) := ''9DE9C8';

s:=s||'911FEB1633A81108C87F2E99843718D7D009092BA87D5DC3735CBFAEA5B6FB46DC0FBE6ADFA8CBAD97E71D4F6B93616D9317E0F1DCFAB85C4CEF582605BDC75A263493207A9B7192E13F286E8741E07DD938BFF6C0AD3B8197679A4DE076E2E378'';'||unistr('\000a')||
'  l_file_parts(139) := ''7C32763A272713A7E3BB63B7D387F8DA89A260340A475E7C127B4DE0AED0F272B00E8CB8FBC4EBCF9FFEF3EDE74FFF7D82684DCD49DDBB43510A6D1EF61B589E2E6536B47F1F8DFAA13B8E479D91E34F3AFE493FEA1C4FC2A03';

s:=s||'3093CDF1F8FE2E3B177FA'';'||unistr('\000a')||
'  l_file_parts(140) := ''076CBC74FC412239310D1F52C378C0E03D96629125B2A88A997A97148BAEA63BBA65F12B9765010915D350CFD026443A38BD7EE0F7DC280AA9F6A0BD517953EF168E50331989903FB2D2029E0272BB02CE0152F5D04EAFE16A7AE5E21834EEEA06AED26B'';'||unistr('\000a')||
'  l_file_parts(141) := ''B8624902E408AC3017F508CCEB91668D578F40A7A6A7E060E6A21E09EA11C8727A2AAC4720C6CC45965F8332F0976DCD0AF1831EA8AFF07044399DB1DB62A';

s:=s||'93EA40609881BF5089504AEE3477EEC857E1FDAE701522BF2436A38875D6BA1AE5BAF351DE5'';'||unistr('\000a')||
'  l_file_parts(142) := ''CEB5A0AB46AE295577AE05FD346B4DFEDEB91634D7AC351175E75A289E9BB504FB866636F41080B69BB5D13D2D6EAE051C9AB5448E7C416ED45ADBFF3F7281436CE43A54447F41F006703519D45285015EDD109551A159100F41B718214CE9686A58CCD3'';'||unistr('\000a')||
'  l_file_parts(143) := ''1644C24B36BD800A966816C45B69F684B3B37C24C1F20057641173730B4BE6408900557';

s:=s||'9BECC13E06A0CE357262364F690B54ACE1353DFD291A07E8531333B5D7E04BA94CAEB5614068607E45E738954EBBEA5340841D1ED829B364A55ED0C88B5A1FDF7'';'||unistr('\000a')||
'  l_file_parts(144) := ''C53F3A4221085091B23B139CE989A4BA33915438B1ABECDED42A509A4092DC53F182C9B3A1EDF96E1F0F96E510A641559D7AA0EE229E5BFFA04A4DBBDCC16052400782C5BF56D3B1CC98B0AD92E545055A03AE66D40B7B103C9B7FE05865A692F9842D32'';'||unistr('\000a')||
'  l_file_parts(145) := ''012CA00703C99CC98';

s:=s||'AC3B14CF7375D8E61848687F6E74FFFD6DA6DA1AC6B8FE74039DF8572DED98172DEF922CAE42C2E367C1AC90890C468D820E9C601346F10B04D3FF83523F9AF7B48BAF173F9EB132289F099B0E7AD91ACF9EB16946E4C0DD95B80F2'';'||unistr('\000a')||
'  l_file_parts(146) := ''BE53BACF167A9F104AC4CF40E9B7A034B4F2DB84728B5762B07F962CFA8450227E06CA600DA5DB0B2232C475807D335EF9D79FF7E3EB6B4012E13348862D2403C7A770FA0691DC56F46009F6E29D12F13350462D28FB914389FE002571C3AF';

s:=s||'024AC4CF40'';'||unistr('\000a')||
'  l_file_parts(147) := ''19AFA1D48DC74601FB66E2EBABF54AC4CF40D96F4119C721B6C86FB3EAD952C0BE86008BF811F9D8620BCA41A1E65C36DC0174CAE71A70D333B7FFF4A42124CC929ACBD1ED2958C3D3772FADCE5DA78157D9B9D77FDB74D0CFF67EB8E6FD0EFAD9D1647A'';'||unistr('\000a')||
'  l_file_parts(148) := ''11FEF9D2C1C156627BEBE6C46E4C55E2C18276744454691D2C0852D68E3E23F235357CB0A01DD53BD47BC48E1C14B4A3260E83E810A4E94B8BA6D26C1797F055F7FA6B41';

s:=s||'FCEABEFE1F0A47FF030000FFFF0300504B030414000600080000002100D5D192'';'||unistr('\000a')||
'  l_file_parts(149) := ''F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574372E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC30'';'||unistr('\000a')||
'  l_file_parts(150) := ''6F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE6';

s:=s||'4223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF37F'';'||unistr('\000a')||
'  l_file_parts(151) := ''76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1AA49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B030414000600080000002100C68E0557EC0400005C110000210000007070742F736C6964654C61796F7574732F736C6964654C'';'||unistr('\000a')||
'  l_file_parts(152) := ''61796F7574332E786D6CCC58DB6E';

s:=s||'E336107D2FD07F20D46745F78B85D80B4B8EDB02D924A8B31FC048742C2C7529457BED160BEC6FB59FB35FD2194AB49D6C8ABAD920C84B2253C3E1993367C8A1CEDF6D2B4E364C7465538F0DE7CC3608ABF3A628EBFB'';'||unistr('\000a')||
'  l_file_parts(153) := ''B1F1E1766EC606E924AD0BCA9B9A8D8D1DEB8C77931F7F386F938E179774D7AC25011F7597D0B1B192B24D2CABCB57ACA2DD59D3B21ADE2D1B5151093FC5BD5508FA097C57DC726D3BB42A5AD6C6305F9C32BF592ECB9CCD9A7C5DB15AF64E04E35402FE''';

s:=s||';'||unistr('\000a')||
'  l_file_parts(154) := ''6E55B69DF6D69EE2AD15AC03376AF6434872D742B41DCB7F61B4308832141B18728C09C49E2F78416A5AC1C082E5B838414326D4DBAEBD158CA15DBDF959B48BF646A849579B1B41CA029D0C930D6B783198A99F3598C183F568FABDF64493ED52549373'';'||unistr('\000a')||
'  l_file_parts(155) := ''9A001B643B3620693BFC0B9368C2B692E4FD607E18CD57D74FD8E6AB8B27AC2DBD0020D82F0AF96EFB88BE0DC7D5E1DC969233E2ECA3EA4D294CBD6CF28F1DA91B8813C3EFC3CBAF36D';

s:=s||'A19C68CEEDB15E9A997E86AB0EB5F2A3EB47DA738D540F74C44AE'';'||unistr('\000a')||
'  l_file_parts(156) := ''EB399EA2C3F7ED70643F22258A22D7874182D4385EE8DA51A016D19E6091DE759BC86DDA143BA4F40EFE43E6689DAF1A50A9C41934E19D5CC81D873CC3F3863B8088507E0F65C441053429D8F23718EAFE181BB024AC79A7129F536080723E2C3BCC8474'';'||unistr('\000a')||
'  l_file_parts(157) := ''3FF40864D30428813FE08453AC47569B1F16508F95CC38A3B0D0109D9C64BCCC3F12D910569492BCA79D6482280AA';

s:=s||'17A01237A976A0DE592D5C50D1514E11D7BC6ACD00456061674F48A10CCCCBFA71FF8EE4BE116B577C369CE560D8762202E0609D5A2'';'||unistr('\000a')||
'  l_file_parts(158) := ''F3FC2C2520FB06940D685A0BE7598270477618813854F274953C144460DB4E1C0D99E98BEC1441DCF53E9F124445C5A52AD0B22E60A7C147CCE9DDFA0AB65385E44826B025F6AFBB8697C5BCE41C6DD56ECA322EC8867250DF16B720486759CB7E2402D8'';'||unistr('\000a')||
'  l_file_parts(159) := ''4A0990BCBDB14AE5911F78D7AFA45EEC55A7A4E';

s:=s||'BA2747BA47E10010AA0FB04B84EFC8A701123860DC8BD03DC9103657E2ADCF015E122C601AE7F80EB789183284EA31723530278053520C8016F70843776634CF2DBC38B2007BCE101AFEBC640EF5BC48B'';'||unistr('\000a')||
'  l_file_parts(160) := ''2007BCD111DEC8F74E2FB7D7D403821CF0C607BC08F6F47A7B4DBC0872C03B3AC21B06D1DBAC3704D9EFC4475D843AF3113D6C72FBC35D85F5FC1E000F3AD502740F7A80E79CF3BE3EE76754B207E7BC3A54BFF79C2F24B436D02CAD285FEAF3BE3FD6B0'';'||unistr('\000a')||
'  l_file_';

s:=s||'parts(161) := ''115674E1C34231D7B769AABBD09D8AEED3D4A9AACF62F543F1BA848E1D7BEF3FE7B6E7CD832833A7C1456CFA711C99A91D85A63FB52FC2697A318BB3ECB331B4A105842ACB8ACDCBFBB560D76B69A0CA4E494768B92EDC4F1CFFC03B40C0D92FDB7D053A'';'||unistr('\000a')||
'  l_file_parts(162) := ''2BF3A6C1AEEFB8FFF25FA2FF5A4AD127E6F73515B082CECD7F3463FF27372FCB48A819594017C5C8D5BABA7BC48BEAF9BF57AF70FF05D74F52A3FA5EE81C5F52B64E3C8DB359E698B3D9DC317D3773';

s:=s||'CD11A8CB8CA2204DC3D48B67B1B7976D8791D780EE'';'||unistr('\000a')||
'  l_file_parts(163) := ''54B57EFDF2D74F5FBFFCFD025A550DB3BEFFC2EE73D9C1C5A355D7D2B528A1FED27414BA599C9AA9E3CF4D7F368ACCE93C0CCC79E0F97E96C6D3CCBBF80CC05BC74F72C1D4E5FCD762F8480083DF5CECAB32174DD72CE559DE5456FF85C06A9B4F4CB40D'';'||unistr('\000a')||
'  l_file_parts(164) := ''34C95884F6F0A54175D08EE3B941E8459E4E13A054771E8D1642C00BBEBABA70F19EB6D71BB50BC3370DD03F74E230D4C2570C90';

s:=s||'389A1E4C3076FD5564F20F000000FFFF0300504B0304140006000800000021007B4D943E7E0400006B12000021000000'';'||unistr('\000a')||
'  l_file_parts(165) := ''7070742F736C6964654C61796F7574732F736C6964654C61796F7574342E786D6CEC585D6EE336107E2FD03B10EAB3A27F5916122F2C392A0A6493609D3D0023D1B1BA94A852B4136FB1C05EAB3DCE9EA4434A7412C759DB8D1FF3624BD4C7E1CC373F1C'';'||unistr('\000a')||
'  l_file_parts(166) := ''F2F4C34345D192F0B664F599E19CD8062275CE8AB2BE3B333E';

s:=s||'DF646664A056E0BAC094D5E4CC5891D6F830FAF597D3266E697181576C2110C8A8DB189F1973219AD8B2DA7C4E2ADC9EB086D4F06DC6788505BCF23BABE0F81E6457D4726D3BB42A5CD646'';'||unistr('\000a')||
'  l_file_parts(167) := ''3F9FEF339FCD66654E262C5F54A4169D104E2816A07F3B2F9B564B6BF691D670D2821835FBB94A62D580B5E29E5DDDFE692085E34B18718C11989E4F69816A5CC1C0CD3D4329AB0588519FDAE686132241F5F277DE4C9B6BAE665C2EAF392A0B29A19F69'';'||unistr('\000a')||
'  l_file_parts(168) ';

s:=s||':= ''58FD871EA65E6B80C183B531FD4E4BC2F1C38C57A3531C0313E8E1CC0087ADE42F4CC231791028EF06F3C7D17C7EB5059BCFCFB7A02DBD0068B05E147CDD7416BD34C7D5E6DC948212E4ACADEAA018A65EB0FC4B8B6A06764AF33BF3F2CBA516266D96E2'';'||unistr('\000a')||
'  l_file_parts(169) := ''9B39EA6997A27A5CF751F1A1F12D70AAC8120F092B56D2F05BF8578338A6AD988A15258A10501BC7201C7E807E8A655493DAFC3C85A8AE444A0986A8EFC913A39496F9172418224529D047DC0AC2915076B552E42';

s:=s||'9B023C039BD485217D798E34F1B92A5'';'||unistr('\000a')||
'  l_file_parts(170) := ''7D3886954169AD213C7614BE4EA4A789ECA3095D539C9339A30528E1BE8DD6F62B6403A633032210C243FBE0156E255D1B51E60703C857156A4E68DBF259F1AB03CEB7BD08C60D24C3CE0FDC60187ACA815A9222A073B3E664ABD7E4DA74491D9536382E'';'||unistr('\000a')||
'  l_file_parts(171) := ''C84CD22BF577A36E51E0F609001EDD2D58FF29560300EB6DC1DA4FB11A0058FF25D679A683060036D885D500C086BBB01A00D8C12EAC060036D';

s:=s||'A85D500C00E77613B80E4BA4F27E918954D3013818475DABC31BB6404A9E46A9F655797419B4BAAC03D20'';'||unistr('\000a')||
'  l_file_parts(172) := ''A1A724677581285912BA877895650788BF99977C7FE92A210E909EB10517F3BD95F7BB8CDCDB1D5939DB2A1D7691A3D635FF67754D7102FBA9DE0C0EDC2E36EA9AF29FDA2A64A5510F4FF78C6D752DF4A3F7C2063BC27B618BDF0BDBBA117A2F6C7B346C'';'||unistr('\000a')||
'  l_file_parts(173) := ''812E6C132CC8B36E4D95E2FF5FD5BA26B810D0A36EF46DCA41AF17B8439AE';

s:=s||'2199C60E471E4EFCCF6BC2C18A4E638388F4C3F8A0666620F42D31FDBE7E138399F4469FACDE83BF3024C156545B2F26EC1C9D5429E79604BDBE880B7F5D6A1E5BA705C73FC'';'||unistr('\000a')||
'  l_file_parts(174) := ''C77D185490B38FBBDD84DA2B1963B27D7FDA45076FEBA23BBFCC04EF1CF3D702735841F7D43B9AEA437C735C46069A91292D0B822E17D5ED062FE1317881EB0010BD959A1DFBF221D4ACC3D689C6513A491D7332C91CD37753D71C4274998341902461E2'';'||unistr('\000a')||
'  l_file_parts(175) := ''4593C85';

s:=s||'B876D2B2DAF41BB7DA3F5C7F77F7EFBF1FDDF23C4AA2A24FA4A009ADD8B164E908D3AA92F7809F99724C3D04DA3C44C1C3F33FDC970608EB33030B3C0F3FD3489C6A977FE0D146F1C3FCE395177157F14FD9D090CBEB8E7A8CA9CB396CDC449CE'';'||unistr('\000a')||
'  l_file_parts(176) := ''2AABBB30B11A764F78C34A7567E2D8FDC5CB12431F0F7B7FE00576E80FD5894DE9A6BA27AD2D98202F3CA4DA39E51F7173B584F60AC770C503F19FAAA1062E75C08F12FA0891B6EB4BA2D17F000000FFFF0300504B0304140006';

s:=s||'000800000021005AC949'';'||unistr('\000a')||
'  l_file_parts(177) := ''F9DA050000381C0000210000007070742F736C6964654C61796F7574732F736C6964654C61796F7574352E786D6CEC59DD6EA34614BEAFD47740F49AB50730602BCE2AC67155299B448DF70126308EE9024387B1E3B45A695FAB7D9C7D929E333036FEDB'';'||unistr('\000a')||
'  l_file_parts(178) := ''254E2E566A6E6C8C3F3ECECF9C8FC399B3F7AB2C35964C9409CF872679D7350D96473C4EF287A1F9713AB102D32825CD639AF29C0DCD27569AEFCF7FFEE9AC';

s:=s||'1894697C459FF8421AC09197033A34E75216834EA78CE62CA3E53B5EB01CFE9B719151093F'';'||unistr('\000a')||
'  l_file_parts(179) := ''C5432716F411B8B3B46377BB5E27A3496ED6D78B36D7F3D92C89D898478B8CE5B222112CA512EC2FE749516AB6A20D5B21580934EAEA6D93E45301DECA473E5D4D1FF9CDFD1FA6A1C06209A789790EFE4777696CE434831321CF0A2A9292E7EA9FB2980A'';'||unistr('\000a')||
'  l_file_parts(180) := ''C610932F7F15C55D712BD405D7CB5B61243112D4179A9DFA8F1AA67EE6008383CECEE50F';

s:=s||'9A890E5633919D9FD10144C3580D4D48DA137EC24574C056D288AA93D1E66C34BF39808DE69707D01D7D03B0607D53C8775179B4EF8EADDD9926326506597B55'';'||unistr('\000a')||
'  l_file_parts(181) := ''41295C7AC5A34FA59173F013DDAFDC8BAE979A0C7D46FA626ED4A147AA1A57FDA9E2A1F125C454054BAE463C7E42C7EFE15B9DA483B49477F2298514C0F132252A017410B3D9EF55681BA7C1DB261C9CA40330053E205929C53A60B9F5F10EEA209361CA'';'||unistr('\000a')||
'  l_file_parts(182) := ''28D4491D6A791EA649';

s:=s||'F4C990DC6071228D0FB4944C185245A14403CE805D422A6B4A96C7B7545030628B19A3410770677051FB038755C08F87DD59871D737E9BD288CD791A8305F66B6400E369C27285B5A41376241118AD9D25E9F67C2870B52E49CFE9'';'||unistr('\000a')||
'  l_file_parts(183) := ''11E2A0499BD5E976DD2E09405C708D7A4EDFF794CD10868A48B95F2D091D119D6183E6D19C835ADC5794CDECD5C936322AAE545D24790C058E8778F7FBC535A89832A45A0B46F9D7D0B45DB4F45EBBD9581BEAD086D553136AAF5AB176F7599';

s:=s||'10AED0033'';'||unistr('\000a')||
'  l_file_parts(184) := ''9D0D6B9FB8CA8236AC24D86745AA9AD5DDB012C7271E825BD12AE4760890ABA6ED3568033B50369C4A8B5C35ADB7A1B5ED004C7881B5C855D3FA0D5ADF75D43A3CD55AE4AA69830D2D72B64FD981D822574DDB6FD07A3DFF4529432EA525CD9A508A8637'';'||unistr('\000a')||
'  l_file_parts(185) := ''8155B7962E75F7D3150E0547095CB9A570A7A898AB552CE4B9845ADD1232A51AF0A8D50F8A673E4AB0BAE7349DD53256490C3E565598F0A0F93CC1841C97319BF86EE0F7B';

s:=s||'E21634EBF47A03810D146C7940C3513B5F7A4DAA85345D900C0A11693A69261'';'||unistr('\000a')||
'  l_file_parts(186) := ''09ADB11A00582D110DAC529235560300ABEBBE89C555B9C66A006075311FC56A006075851EC56A006075D91DC56A0060752D1DC56A0060AB02D19D808AAF12C9B56F3F4605A966003E74D1AAE7EF33DA923B16F13C3652B664E98102DDA55775F10CFAE9'';'||unistr('\000a')||
'  l_file_parts(187) := ''3C11EDD9EB277F6BC599F08590F3D6C6BB5545B6A74F6607D9A13779D5EEACA7756DBADB9D298B4F17B';

s:=s||'5AA3FAEBA3314B83F175440DB596B9C8AB66A955B6B9CE7F6BA36980B9DD8B15E8DF8A07C6FBDDAD07CEBD5A05F7EEBD586A6F37FECD53CAD6987'';'||unistr('\000a')||
'  l_file_parts(188) := ''7A35D51A9D2E6BFB52A674F264293BD6AF6DA4ECAD5FC3986FF73F6FFDDA9199CE37DF78761BAAB77E0D4768D5DBE06E6C7ED47ECDD7DA36A6926DBD847AD8619E2E6C55BF164B18206EBF8E92EA9DEAE8FBA8BAEBEEF40B4E6E0696EA877ABF9FC12C1A'';'||unistr('\000a')||
'  l_file_parts(189) := ''27CB7F4FBA8E33E9F9A175D1BB0C2';

s:=s||'C37087C6BD4F53DCBBDE85E7A17A3CB7110869FCD7AC81A83AB32C9D82479580876B39026B2B7190B781DDB86E93B7137AF1760025EFDBA5D344C08AB11FB84739CAD36A79CFE6BE46526A173DE7FF690EF8C3C9F93'';'||unistr('\000a')||
'  l_file_parts(190) := ''9BD78D485F47E42E4D62665C2FB2FB9DB8A809C44BD72BECEE00F5C1D07C678CF29CD0AC972D092E82701C126B3C9E10CBB543DBEAC3EAB2E0BD6334F2464E300E9CF5B22DD1F31CAC6BBB5ABF7EF9E797AF5FFE7D85B5AAE6D27A77079E0957258CF70B'';';

s:=s||''||unistr('\000a')||
'  l_file_parts(191) := ''B5E9B21009D4DF68D4F7EC30185923E24E2C77DCF7AD8B89D7B3263DC775C35170113A979FC1F082B8834830B5F5F45B5C6F81C1C9BD6DAB2C89042FF94CBE8B78D6A9F6BF3A057F64A2E089DA0223DD7A1F6D4961C0E7746D87105F27096C54FB0ADA56'';'||unistr('\000a')||
'  l_file_parts(192) := ''700037AE94A0A5E2032D6E9620D57400FB75505FA13A55C00E1D6411A11B087AAE77FCCEFF030000FFFF0300504B0304140006000800000021003AC03304160500003312000021000000';

s:=s||'7070742F736C6964654C61796F7574732F736C6964654C61796F'';'||unistr('\000a')||
'  l_file_parts(193) := ''7574392E786D6CAC58DB6EE336107D2FD07F20D46745D65D16E22C6C392E0A6493A0CE7E0023D1B1B0BA95A21D7B8B05F6B7DACFD92FE90C25DA56E2741DAF5E129B1E1ECEF5CC90971F367946D68CD769598C34F362A01156C46592164F23EDD3C34C0F'';'||unistr('\000a')||
'  l_file_parts(194) := ''34520B5A24342B0B36D2B6ACD63E5CFDFACB6515D6597243B7E54A10C028EA908EB4A51055681875BC6439AD2FCA8A';

s:=s||'15F0DBA2E43915F0953F1909A7CF809D6786351878464ED3426BF7F353F6978B451AB36919AF7256880684B38C0AD0BF5EA655ADD0'';'||unistr('\000a')||
'  l_file_parts(195) := ''AA53D02ACE6A8091BBBB2A896D05D65669FCB0D18814E36B5830B52BB03C9E670929680E0BF7692C569C91E7542C49442BD443CAD4D503670CA58BF5EFBC9A57F75C6EBD5DDF73922608D5426846FB432B26BF1620061F8C17DB9F14120D370B9E5F5DD2'';'||unistr('\000a')||
'  l_file_parts(196) := ''103C4236230D02B7C5BFB089866C2348DC2CC6FB';

s:=s||'D578797744365E5E1F9136D401A0C1EE508879D558F4DA1C4B99F3908A8C11736755234A61EB4D197FAE4951829D687E635E7CBB56606833C2574BD2B85F20542BD7FC28FDA1E46BE953A5E8CE13A63F'';'||unistr('\000a')||
'  l_file_parts(197) := ''B4AC00F2162C7702C8B2C10BAFB84EE039B048D037AEE7F976200F51487048035D85623329932DBAF411FE43E468112F4BC8D447DC41C3AC1673B1CD20CEF0799D99A011A1D9139452065940C3842DFE84A5FACB48837C87231F95E53B79087217075C4C'';'||unistr('\000a')||
'  l_file_p';

s:=s||'arts(198) := ''437004FC81AD19C54A6485FE690E95988B286314E05B93C45594A5F167224AC29254908FB4168C13E938A85BD00CD1853C4342B222B9A79CA25287C8180B1AC2C960BBB259BA01E3F176D06D15745506F7198DD9B2CC1250C2421741B1A8009F95025081'';'||unistr('\000a')||
'  l_file_parts(199) := ''1A940BE4B24A98F312C1332DDF779BA0A9EAE8E481639A982CA726C29BD1CF29BF91D5981609500B7EC4503EAE6E813FE5AE839CB02129DA13DBEC4159F868612235508EEBA3143905CFDA5BD082B47';

s:=s||'8F61E6F683A32F94FC243C92637000F415A3C678F'';'||unistr('\000a')||
'  l_file_parts(200) := ''67DABE8925769A8258043B40446901DD03C000AAF73C40446901BD3D20B0012878968688D202FA0780BE23237786C988D202067B40443B3D281D1F224A0B383C00F45CFFCCA020CA714EEA973B1CC51D0F588F87C4616386FC2C71205F036102F12E69B6'';'||unistr('\000a')||
'  l_file_parts(201) := ''6839445292EC21D2466CAE7369AE627CD5028E3613D78656D1F48A7D8BED90483080D6D21CA290FEA799483638D641DEC52166A74';

s:=s||'6B103B5E9702687981D4E429016EF4C0E313BE9DA03870C7BA6900E5E0F0CD2C1EB81403A783DF04707AF07FAE8E0BD'';'||unistr('\000a')||
'  l_file_parts(202) := ''CD1E9048049AC86E74916975FE8483A421079CBA33E19C33C5B88A89A654B00E13397D3051225EF190D93441E49FA34424F94FCD616AF6ECD085FC2227C505DC45F03EF1F76C60DB33D78FF4B17B1DE84E10F8FA64E07BBA331E5C7BE3C9F53488A2AF5A'';'||unistr('\000a')||
'  l_file_parts(203) := ''3B5A2760AA4873364B9FE0FA72B7121A56F929E1F00CCB827B9';

s:=s||'7E9ECFD0E2AE0EE7EFB83A7A2322B4B9C690F3B841CE47EB6432C046F02F3D78A723841CD993F1834DF139B7E3DE22B8FCCB33461E476953FBEF08BD747BEC2BD1EA08FBAE607FDF33DAE'';'||unistr('\000a')||
'  l_file_parts(204) := ''D9A5AD198C83681A99FA743A3375C78A2C7D08D9A5C3B83E9978133B9806F62E6D6BB4BC00ED4ECDD6EFDFFEF9EDFBB77F7BC855D9C8D59D1ED8E7A6866B5525AFDA2B9E42FD4D2643CF8A82893E319D99EE4C87BE3E9E79AE3E736DC78926C138B2AFBF'';'||unistr('\000a')||
'  l_file_parts(205) :';

s:=s||'= ''82E295E9843167F2D1E18FA47DFC80C5570F16791AF3B22E17E2222E73A379F930AAF299F1AA4CE5E38739685F50D61488D57361703683406601A80B4ACA0B9D521696F0E542CE5619FF48ABBBB5246178AA81F48FE452058F33104614DD8BA0E9EAB1E7'';'||unistr('\000a')||
'  l_file_parts(206) := ''EA3F000000FFFF0300504B0304140006000800000021006679B9D357050000C5120000210000007070742F736C6964654C61796F7574732F736C6964654C61796F7574382E786D6CCC58DD72E23614BEEF4CDF41E3';

s:=s||'5E3B58FEC713B2134CE874269B640A'';'||unistr('\000a')||
'  l_file_parts(207) := ''FB00C216C15DDB726541A09D9DD9D76A1F679FA447B24580B08B4972D11B30E2D3A7F37F8E75F9615DE46845799DB17260E00BCB40B44C589A958F03E3D3746C8606AA05295392B3920E8C0DAD8D0F573FFF745945759EDE920D5B0A041C651D9181B110'';'||unistr('\000a')||
'  l_file_parts(208) := ''A28A7ABD3A59D082D417ACA225FC3767BC20027EF2C75ECAC913701779CFB62CBF5790AC34DAFDBCCB7E369F67091DB16459D05234249CE64480';

s:=s||'FCF522AB6ACD567561AB38AD8146EDDE17496C2AD096CDFE98AE0DA4607C050BD8B802CD93499EA29214'';'||unistr('\000a')||
'  l_file_parts(209) := ''B010B35200037ACAC402C5A49272284C5D4D39A5125DAE7EE5D5A47AE06AEBDDEA81A32C95542D85D16BFF6861EA67093078E81D6C7FD44C245ACF7971754922B0085A0F0C70DC467EC22612D1B54049B3983CAF268BFB23D864717304DDD3078004DB43'';'||unistr('\000a')||
'  l_file_parts(210) := ''C1E755A3D14B756CADCE3413394578AB550325B0F596259F6B5432D053AADF';

s:=s||'A897DCAD3499D459D2570BD4985F48AA16D7FCA9ECA1F1B5B2A916746B09D70B20B69439ECC0B1BC039B3896153AD83190B40CC6BEDD2276356E98AB48AC872CDD488BCEE0'';'||unistr('\000a')||
'  l_file_parts(211) := ''1B1C47CA64C12050678D9DF35A4CC426073793285FE5180442247F844CCA21084894D2F9EFB054FF353040249069A615DFE2C1C7F0BCC303162611D8013E606B4E6422D2D2FC3481442C449C5302F4AD4EE22ACEB3E433120CD13413E823A905E548D90D'';'||unistr('\000a')||
'  l_file_parts(212) := ''D2162493';

s:=s||'EC429DA12869993E104EA450BBCCD215248293C1BE5A67786CBCFD7D9F8311F7B3E02127095DB03C0521ECB745409642FCEA20E9EE7CC70B3CE950990CC7BCEF618C01D178DF0B3D07432834EA3709A5D46EE2505B427B5FA5D6AEAB5A971F78'';'||unistr('\000a')||
'  l_file_parts(213) := ''DA91D1D750EE00E0D16EE375372AC25DAC0600D639827577B11A0058F7085646DB56060D00AC770AAB0180F54F613500B0C129AC0600363C85D500C0F64F611BC0B11C829D0818B6C9F2C69C923555A554BD97534DDEA8E4810F7';

s:=s||'DA40ADC33D278421356'';'||unistr('\000a')||
'  l_file_parts(214) := ''A628A72B9A77A057B97506FD7491F1EEEC2A21CE601FB32587EED755785706E639F4D9FC283BB4B977AD66AEAE6653E9EADD52A60C026D5FB7AA573533D941A084432B58907C6EC00C00054E395235355972D4C34445BC2CBE72E947DD0DBB8E879B3C7F'';'||unistr('\000a')||
'  l_file_parts(215) := ''6EF97BEDCDF5FBD8F2DF5CE05041F8AD1A31B2328569473E4AD166CB3B180A9537776A1ADEAB53B2274A2C64A22C6F2D95EED19DF8F6EAE9418D6CF9FAD895A';

s:=s||'7A24E7C7BB5F1A08EB67CD809B0DF95B0FF835AABF9423B94A5BE93807B7C07F5B8E5B3ED'';'||unistr('\000a')||
'  l_file_parts(216) := ''10C47B0DDF41CDD67C81ABDAD6F9F21DD4F5964F927576C89EBE07B55FF3F95EF03A7FFC3FFA0364B69E26D48021C7DCEFCF559EAE442322E85E2552B5F3AD9528152FEA106EA605F9B671B410418E3F6B70741E525540CDAE737839922F387F8F2DC719'';'||unistr('\000a')||
'  l_file_parts(217) := ''7B416C5E7B37A1E98661600EADC037DD6BEBC6BF1EDE8CC238FE62B4B37E0AAA8AACA0E3E';

s:=s||'C71C9E9FD52A80AD36504F67BB60D2F82D87D6E9C2082AC39EFDB1F7CED95316372CADEED109EEC696FF5CB5CF0C6317F2E098713DA1E814F4CC1E7F8E67D2D'';'||unistr('\000a')||
'  l_file_parts(218) := ''12688B4CF22CA5E86E59CC0EECE2BF875DE0A201A88F9AE644FF3CC734DBB0C5E175188F626C8E46636CBA766C9B7D882E3308BCE1D01F3AE12874B6615B4BCD4B904EC65B9768FDF6F59F5FBE7DFDF71D625515127DC90023CB6D0D2F7A957AF75FF20C'';'||unistr('\000a')||
'  l_file_parts(219) := ''F26F38ECFB761C0ECD2';

s:=s||'176C7A63BEA07E6F5D8F7CCB1E7B86E3C0CAF63E7E60B085E61374A3855B720BFA5ED6D0C2CBEB84129B284B39ACDC545C28A5E7315D3ABD813E515CBD46D0CB6DA2B9D1581C1DBF17168859E8FB59B404A35E5686941057997A2'';'||unistr('\000a')||
'  l_file_parts(220) := ''5227E71F4975BF52C3025C1E41FCC76AA982EB22F0A3843E43A4EEFAFAE9EA3F000000FFFF0300504B030414000600080000002100CBF007AE100300006A070000210000007070742F736C6964654C61796F7574732F736C6964654C61796F75';

s:=s||'74372E78'';'||unistr('\000a')||
'  l_file_parts(221) := ''6D6CAC556D6E9B4010FD5FA97740F437E1D31823DB910153554A13AB4E0EB081254681DDEDEEDAB55B45CAB5DAE3E4249D5D206993548A54FFB16198999DF7DEECCCF474DF36C60E7351533233DD13C73430296859939B997975995B9169088948891A4A'';'||unistr('\000a')||
'  l_file_parts(222) := ''F0CC3C60619ECEDFBF9BB25834E5193AD0AD34200711319A991B29596CDBA2D8E0168913CA30816F15E52D92F0CA6FEC92A36F90BB6D6CCF7142BB453531FB78FE96785A55';

s:=s||'7581335A6C5B4C649784E30649A85F6C6A26866CEC2DD918C702D2E8E8BF4B'';'||unistr('\000a')||
'  l_file_parts(223) := ''92070668AF1B446E4D43BBF11D185C730EC88B75531A04B56048B487320A76C931564F64F791B3355B71ED7BBE5B71A32E556C1F63DAFD87DE4DBF12708307FB59F8CD9009C5FB8AB7F3298A8102633F3341A983FA852014E3BD348ACE583C598BCDC52B'';'||unistr('\000a')||
'  l_file_parts(224) := ''BEC566F98AB73D1C00153C1EAA5075885EC2F106381992D85835A8C01BDA94981BEE23C02E0A4196335A';

s:=s||'DC0A835080AC98E89016E7BB21AF82AF4E621BA3A3BE94D078DF4144D45426F007E05C0D5633A49CF5C3102F806ECDA3DC27B43C284EAEE15F1B'';'||unistr('\000a')||
'  l_file_parts(225) := ''51DC08B99687066BAE00118A2B505089F223777C3F1F8D536B315A46561045632B71C6A1152C9C65B848965994A677E650144095758BF3FA66CBF1C556423BA09883C0D006706130B1AED650772BD30623B850BD3C721EDA9E07DDEA0653205A42F1BA04'';'||unistr('\000a')||
'  l_file_parts(226) := ''2D1D295788A32FCF922886500CB502';

s:=s||'CC01133C767AFC5B157F5025A75482167FEAE21D43974AF24E98AF5BC4E184419B41D34EC8FFD2061F9591606064DDD42536CEB7EDF5335EFC63F002D31052BF4A8DE65D3372BCB675A3459466A96B6559EE5A8197'';'||unistr('\000a')||
'  l_file_parts(227) := ''7AD604BACB1A8F474912267E9445FE63DB0A859C40756FEDD687FB9F1F1EEE7F1DA15775CB0E8311A6D49980E6677A5E6D790DF72F4926A197468995B8416E05D9646C2DF27064E5233F08D2245AA4FEF20E0A676E10171CEB51FDA9EC5706185F8CF9B6'';'||unistr('\000a')||
'';

s:=s||'  l_file_parts(228) := ''2E3815B49227056DED6E5FD88C7EC39CD15AAF0CD7E9F7CE0E35305546C1249878A113F65309AAD4B76EA81620A881AFCA2E1AFE19B18B1D4C1F14C38683FE4FB589C14EEB67DA938BC23EECC8F96F000000FFFF0300504B030414000600080000002100'';'||unistr('\000a')||
'  l_file_parts(229) := ''BB7ADEA043030000BC080000210000007070742F736C6964654C61796F7574732F736C6964654C61796F7574362E786D6CAC56FF6E9B3010FE7FD2DEC1627F53209084A2265320619AD45';

s:=s||'F5ADA07708DD3A019DBB39D2CD95469AFB53DCE9E6467036DD7'';'||unistr('\000a')||
'  l_file_parts(230) := ''7652A5E59F04ECBBF37DDF7DE7E3E4FDAE61684B95AE059F78D151E821CA89A86A7E3BF1AEAF4A3FF59036985798094E27DE9E6AEFFDF4ED9B139969569DE2BDD8180431B8CEF0C45B1B23B320D0644D1BAC8F84A41CF6564235D8C0ABBA0D2A85BF42EC'';'||unistr('\000a')||
'  l_file_parts(231) := ''860583301C050DAEB9D7F9ABD7F88BD5AA26742EC8A6A1DCB4411465D840FE7A5D4BDD4793AF892615D510C679FF9D9';

s:=s||'2D94B406B6AC3E805677B0F3953B585C5C89B027AB26415E2B881852B6B859C99DDD1F24A516A9FF8F683924B79A99CC3F9F652A1'';'||unistr('\000a')||
'  l_file_parts(232) := ''BAB2013A472FE8363A33F7CAC10C1E8227EEB77D249CED56AA999EE00CB840BB890725DBDB5F70C219DD1944DA45F2B04AD6172FD892F5E205EBA03F0032B83FD4A26A113D8733E8E1B43C44F7A85A530CAEA7827CD6880BC069E1B7F0C8F9B60F6631DB'';'||unistr('\000a')||
'  l_file_parts(233) := ''F0728D1E11DFD9B59B8E8FDE5E03A78E2CB3CB45B';

s:=s||'5B7C06FE0DF2DE28C69B3347B461D219036CE2038FC00FD0C5B5D53EE5F2F41D78D2918C5A0FB8E3C332D584D3E232310AD6A83CEB0365421A702E802087902EC18284E1792F2EA122BFCE949648B0F'';'||unistr('\000a')||
'  l_file_parts(234) := ''67703224DD67088F2D85FF2632EE899C6343D125C384AE05AB2083C12138AD0C40FE066D81D9CA0321824A2207DC516B0BF05F1CAFA01FACBABF97611C97C371E1CF868BD44FD274ECE7E178E427B370319AE58B795A14775E57E80AA09ABAA1657DBB51'';'||unistr('\000a')||
'  l_file_pa';

s:=s||'rts(235) := ''F46263BCD7966A140C06D0FF51F2501348C17A1FB62A495F955208AB86C775890F519795516D61BE6CB08213FADAF47D7200FD1F969161CFC892D51545E79BE6E6092FC9217881F902A15FA4C6F5C381651BA5B3B49817913F9F97919F0C8A817F0CEAF2'';'||unistr('\000a')||
'  l_file_parts(236) := ''C7E3619E8FF2389DA7F1BD6CB545CE21BBD7AAF5F78F9FEF7EFFF87500ADBA8BA49F3070DD9F6AB890A4BBF837AA86FECBF3E3D1A048733F8F92D24FE6C7637F568E867E398C93A4C8D359112FEE2071';

s:=s||'19251951D40DBF8F55378461F1D9E06C6AA28416'';'||unistr('\000a')||
'  l_file_parts(237) := ''2B73444413B4133890E22B5552D46E08476137C9B7984DBC380AC749388A87AE3D205FC8D25D2E7DB6B064C7A74D9B307586E5C5166E1F9CC13703E8BF704B12BE12BA39F16062B1F75F1DD33F000000FFFF0300504B030414000600080000002100D5D1'';'||unistr('\000a')||
'  l_file_parts(238) := ''92F1BE000000370100002C0000007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574332E786D6C';

s:=s||'2E72656C73848FC10AC2301044EF82FF10F66ED27A1091A65E44F0E045F4039664DB06DB2464A3E8DF9B6305C1E3EC'';'||unistr('\000a')||
'  l_file_parts(239) := ''306F769AFD6B1AC59312BBE035D4B20241DE04EB7CAFE1763DAEB62038A3B738064F1ADEC4B06F978BE64223E612E2C1451685E259C39073DC29C566A009598648BE385D4813E62253AF229A3BF6A4D655B55169CE80F68B294E56433AD91AC4F51D4BF3'';'||unistr('\000a')||
'  l_file_parts(240) := ''7F76E83A67E810CC63229F7F54281E9DA53372A654B0987ACA1A';

s:=s||'A49CDF792E6A59DE07D536EA6B6EFB010000FFFF0300504B03040A000000000000002100E6482659004000000040000017000000646F6350726F70732F7468756D626E61696C2E6A7065'';'||unistr('\000a')||
'  l_file_parts(241) := ''67FFD8FFE000104A46494600010101006000600000FFDB00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFDB0043010101010101'';'||unistr('\000a')||
'  l_file_parts(242) :=';

s:=s||' ''0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFC000110800C0010003012200021101031101FFC4001F000001050101010101010000000000000000'';'||unistr('\000a')||
'  l_file_parts(243) := ''0102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363';

s:=s||'738393A434445464748494A535455'';'||unistr('\000a')||
'  l_file_parts(244) := ''565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100'';'||unistr('\000a')||
'  l_file_parts(245) := ''030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061';

s:=s||'241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A'';'||unistr('\000a')||
'  l_file_parts(246) := ''35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9'';'||unistr('\000a')||
'  l_file_parts(247) := ''EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00FEFE28A28A0028A';

s:=s||'28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A2'';'||unistr('\000a')||
'  l_file_parts(248) := ''8A0028A28A0028A28A0028A28A0028AFE6A7FE0AEDFF00053AF17FECA3FB55687E02F03FC5BFD927C2D07C2FFD8A7F6A9F8C3ADF853E2A7EDFDA9FECFF00E2AD7FC79A8E8FE01D17C03A1EB3F06B46F80BF1164F17FC47B5B3BFBFF13FECDFE049BC4135'';'||unistr('\000a')||
'  l_file_parts(249) := ''E7C57BE93';

s:=s||'C6F756D75F0EA5F07695AB78AB869FC6BF15BE2A7C4BFF8271783BC4FA3FED85FB56681AD7FC1307C51E3AF12F85FFE09D5FF00052DF12F8434DF1878E3C35F127E08F84348F8EDE29F8FBA8FED57FF0004FDB2F8DB2EA5A0EA3A943ABEA77D'';'||unistr('\000a')||
'  l_file_parts(250) := ''ACF88B548BC4FE2FD421B2D275ED3EC25F179CF0539639C1D183546AE2AAE128D797338D5A984C071DE373051853854AA9E0E7C098CC34DCA9AA4E79860AACEB52A11AF3A6F196C0A8FB67EFBC3FD6274E2E1CD4A35730E0DC0E0D';

s:=s||'4E55274E9DF151E34C'';'||unistr('\000a')||
'  l_file_parts(251) := ''162E118CDD55430B5A31A552BD5A14A7FD47D15FCE0FEDADF123E3F7ECCDFB72FC03F88DF087C79FB434FF00047F638FF827F37C72F8E3FB2DEA7F14FC67F1297E2FFC18B1F8CFA17C2EF8BDABF8DA1F12F8BBC6D77F147E3DFC23F863AEDFFC50F08F8E'';'||unistr('\000a')||
'  l_file_parts(252) := ''B59F167887C5DE2DF15FC3C7F0FDF78CF56B6F17DEEA12F4307EDE979F0E7F61FF00F8297FED01FF000D01A3BC7A8FEDE5F117E0BFECC9F15FE287C42697E1B7';

s:=s||'80EDFE3659FC0DF05FC18D66CFC49E26D72D748F0C7C23F02DFF00C44FF8595710DBEA7A'';'||unistr('\000a')||
'  l_file_parts(253) := ''3F86F46F0C586BDAC03656ED77714A955589A35AB61A3ED1C309C4188A34673A30AD5AA64DC7181E05C150F72A56A34FFB7F33C6C9E575BDB4E8D6A980CC70B4E556A61273732942962F0D85AF274D57C764B829D78D2AF3A547FB4F84715C638CA9ECDD'';'||unistr('\000a')||
'  l_file_parts(254) := ''18626B3C932EA187799D2A7877528C333CB6B4B95E25D187F43B457F2BB7FF00B58E9FAEFF';

s:=s||'00C12A3FE0A61F023E02FEDCFE32F8EBE2FF00D907C71A5F82FC01FB62FC33FDA621F8A3F16F5AF841F1DBC6DE0DF1FF00C2EF14C3FB42F82BC55AEEB17DE3'';'||unistr('\000a')||
'  l_file_parts(255) := ''8F05695E2FF187C17BDD66EF586D716E3E1848755373F6A90CDEAFE3AFDA4FE3E78DBF608F0CFEC5969F167E24F86FF6D1D07E297C5DFD957E3AFC62F07F8AEE740F8C7E1AF877FB1868973F12FE237ED0171E2C8AFE1F10F877C51F1F3E02E97F086F74'';'||unistr('\000a')||
'  l_file_parts(256) := ''CF1969663D5E2F11FED3';

s:=s||'BE1AF11682D672CD61776F1986269E029E2EB7BD561432ACAB3BA1EEBA552A655994A8C6BE3B194A57A99751C9FF00B4326FED875E339611E632872CE783AD1778084B1D5B0D425C94275330C66555EF5235634F1F87862EAE1B'';'||unistr('\000a')||
'  l_file_parts(257) := ''0F84953BACC279A51CAF37AB96C68F24F131C1D08282AB8FC3D35FD25D15FCB359F8D7E2BFC57F167FC12CFC37E2AF0EFF00C142FF0069DD2BC67FF0486D27E2F78DFC0DFB24FEDB7E24FD99BC69AEFC4F6D5BF674B17F8C5F13FC59A8FEDAFF0';

s:=s||'0B1ADB7'';'||unistr('\000a')||
'  l_file_parts(258) := ''C40BC16DE24D7B4AB99F57F1FF008C3C433EA5E2737E7409E3FB66AD61AFFF000539FF00828DF88FF628F8E7F0CFE0EFC37F8ABFB3AF83749F821FB017ED1BF126FF00C19FB48FFC14BFC61E02F8C5ABF8D3FE114F871E1BF877E1BF893E17BEF85BF1EB'';'||unistr('\000a')||
'  l_file_parts(259) := ''C4FF0018FE3769DA7DD5EF88BE0669DE23F8A3E31F117C75F109F881AECDE2CF0A5F785F4EF13F8CBA7368CB2AA7884E32C562A38FE27C060B0B45724F1D3E15C7715E0F1BC';

s:=s||'93AEE928CABAE12C6D7C37B38D7C3A856A54B1189A18952A2F2CA26B37A98'';'||unistr('\000a')||
'  l_file_parts(260) := ''654FF7146AE1387F1789AF55A943091E22C070E63B09192A3ED1C9D37C4B83C34E137471152BC272A187AB8792AEBFA82A2BE4CFD83BC4DE22F187EC5FFB2F788BC5BE29F08F8EBC47A87C10F87ABAAF8E7C0DF19F50FDA23C37E36B8B2F0ED969EBE31B'';'||unistr('\000a')||
'  l_file_parts(261) := ''7F8D7AA786BC237FF11751F1443691EBBE20D7E7D0E1DDE21BFD56D23BFD722B58F5CD47EB3AEAC7E15E0';

s:=s||'31F8DC0BA91ACF078BC4E11D582B42ABC3D69D17520AEFDD9F2734757A35A9CF80C5AC7E03058E8D39528E370986C5AA5369CE9AC45185654E4'';'||unistr('\000a')||
'  l_file_parts(262) := ''D68E5053E5935A369D828A28AE43AC28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A00F8DBF681FD87FE147ED23AB7C5AD5FC77E22F889A74FF193F66D7FD967C4B0785B55F0CD85B69BF0DAEBC65A97'';'||unistr('\000a')||
'  l_file_parts(263) := ''8D756BCF0F8D53C23AD4F6DE2AD66FB';

s:=s||'52FECEBDD4F539F56D3EDF49B3B44D2348D3352379A95DE5FC76FD8A4FC60F8E3E04FDA27C11FB4EFED19FB337C51F01FC27F15FC14B6D57E07D8FECD1AEE9FAF7803C61E2BF0B78CF55D3B5FD1BF690FD9BFF682'';'||unistr('\000a')||
'  l_file_parts(264) := ''D3FED91EBDE0ED0A7B2D4F418742BD860826B69659E2B99437DBB454C20A947091A5CD4D60679854C22A739C3D84F3596692CC9C1C649DB1AF3ACD96262DB8D58E3F1309270A8E2134AA4B133A918D496323838E25D48466AAACBE396C704DA92694B0CB'';'||unistr('\000a')||
' ';

wwv_flow_api.append_to_install_script(
  p_id => 8196106179644597 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||' l_file_parts(265) := ''27CA9D29C54671965F859DF9E9464BE60D03F656F0A69DF19FC39F1FBC51E38F885F12BE2668DFB329FD96B5BD57C6CBF0EE1D33C79E10B9F17E95E37D67C63E2EF0E7827E1E7837415F1E78835DD283EABFF08A69FE16F01259DF5F59695E03D3206B55'';'||unistr('\000a')||
'  l_file_parts(266) := ''B4F953F66CFF008243FECB3FB2AE9DF09BC37F0B759F8BA7C05F04BF6A3F8B7FB5BFC3AF873E26F15786F59F0868DF12BE2A7C34D5FE12586912C49E0AB2D72FBC13F08BC11AF6ADA7FC21';

s:=s||'D26EB5C9356F0FDC5CC57BAFEBFE2AB8D3B4B6B2FD4AA2AE94'';'||unistr('\000a')||
'  l_file_parts(267) := ''9D09735051A0FD9D7A4BD84634631A788CF65C4F52118D2508C22B3F94B35A4A297D5F1539CB0FECA32945C54A71AB1946AA7554EAD3AD53DA4A53752A53C8DF0D2752526E53553206F29C4466DC313837ECB111AAB53E0DFDA53FE09E7F06FF006A1F15'';'||unistr('\000a')||
'  l_file_parts(268) := ''7C49F16F8C7C5DF153C2577F17BE037873F67AF88DA77C3ED5FC19A6695E29F097827E2BD9FC60F016BF7E9E23F01F8A';

s:=s||'6FC78CBC0DE216F14693E1DD4A0D422D257C35E3EF17D86A9A16A77B2E83A96833C9FF0004EEFD9DDBF6A6FDA13F6C28E0F17C1F'';'||unistr('\000a')||
'  l_file_parts(269) := ''18FF00692F80D69FB3DF8DE7875AD3BFE11BD17C2A34FD3F47D7BC4BE0DD125D0E53A578F7C67A27863E1C687E2DF106A579AD5B6A5A4FC28F87B656DA5D8C7A5EA7FDB1F75D158CE851A94A14274E2E9C30D9A61211B59C70D9D7F68ACD6829AB4FD9E3'';'||unistr('\000a')||
'  l_file_parts(270) := ''E39BE650C42E6F7E9E2EAD3D29F2C63BC6AD4856AB';

s:=s||'888CDAAD5E79654AD53ED549E4B3CBAA655295F46F033CA72D9E1F4F72583A2F571D7F352EBFE09A5E1FD1EFBF66ED6FE0DFED59FB53FECF5E27FD98FF00661B5FD91FC25E28F8690FECB1E28D4BC5'';'||unistr('\000a')||
'  l_file_parts(271) := ''DF08AD6E3C0B7A23F1ED87C7BFD977E34F86EE7C4B35FF00C3BF0DDECDAD784341F068F363BC861B38ACEE9AD57D07E2A7EC0BF0EBE36E97E37B6F8A7F143E32F8BB5DF893FB2969BFB21F8E3C6725E7C2ED0FC41AFF008161F12DE78AFC41E337B2F0C7'';'||unistr('\000a')||
'  l_file_par';

s:=s||'ts(272) := ''C2AD13C21A67C46F1AEAB7B21F10DE689E16D33C17636D1C50F83BC0FE14224793EEAA2BAA75AAD4AD0C4549B9D7A78ACCB1B4AB4ED3A947139CFF006BFF006ACE84E579518E60F3FCE278AA549C2955A99857A9283A8E328F2C2851A745E1E9D38D3A32'';'||unistr('\000a')||
'  l_file_parts(273) := ''A19761A74E9DE9C6A51CA7FB2FFB3154E46BDA4F02B25CAA386AB3E6AB4A181A14E33E44E2D91A2C51A4518DA91A2C68B92708802A8C9249C00064924F724D3E8A2B26DBD5EADEADBEA6B14A294629463';

s:=s||'14A318C559452564925A2496892D120A28A2818'';'||unistr('\000a')||
'  l_file_parts(274) := ''5145140051451400514514005145140051451400515E3BA678D7E26788D754BEF0DF817C0B3E8D67E26F17F86ED2E35CF89BAFE91A9DD3783FC55ACF84AEEEEE34DB0F84FAF5A59ADDDEE8973736D0C5ABDF15B596032CAB299224D2FED6F8D3FF004207'';'||unistr('\000a')||
'  l_file_parts(275) := ''C2FF00FC3BDE2BFF00E7215E0D3E24CB2B53A75A8C337AD46AC2352955A5C3BC4352955A738A942A53A90CAE50A94E716A509C1B8CA';

s:=s||'2D4A2DA699C71C7509C6328AC4CA324A51947058D94651924D4A3258769A69A69A766B55A1EA145797FF6B7C69FFA'';'||unistr('\000a')||
'  l_file_parts(276) := ''103E17FF00E1DEF15FFF00390A3FB5BE34FF00D081F0BFFF000EF78AFF00F9C855FF00AC180FF9F19DFF00E235C47FFCEA2BEB947F9317FF008418EFFE67FEBE4CF50A2BCBFF00B5BE34FF00D081F0BFFF000EF78AFF00F9C851FDADF1A7FE840F85FF00'';'||unistr('\000a')||
'  l_file_parts(277) := ''F877BC57FF00CE428FF58301FF003E33BFFC46B88FFF009D41F5C';

s:=s||'A3FC98BFF00C20C77FF0033FF005F267A8515E5FF00DADF1A7FE840F85FFF00877BC57FFCE428FED6F8D3FF004207C2FF00FC3BDE2BFF00E72147FAC180FF009F19DFFE235C47FF00CE'';'||unistr('\000a')||
'  l_file_parts(278) := ''A0FAE51FE4C5FF00E1063BFF0099FF00AF933D428AF2FF00ED6F8D3FF4207C2FFF00C3BDE2BFFE72147F6B7C69FF00A103E17FFE1DEF15FF00F390A3FD60C07FCF8CEFFF0011AE23FF00E7507D728FF262FF00F0831DFF00CCFF00D7C99EA145797FF6B7'';'||unistr('\000a')||
'  l_file_parts(279) := ';

s:=s||'''C69FFA103E17FF00E1DEF15FFF00390A3FB5BE34FF00D081F0BFFF000EF78AFF00F9C851FEB0603FE7C677FF0088D711FF00F3A83EB947F9317FF8418EFF00E67FEBE4CF50A2BCBFFB5BE34FFD081F0BFF00F0EF78AFFF009C851FDADF1A7FE840F85FFF'';'||unistr('\000a')||
'  l_file_parts(280) := ''00877BC57FFCE428FF0058301FF3E33BFF00C46B88FF00F9D41F5CA3FC98BFFC20C77FF33FF5F267A8515E5FFDADF1A7FE840F85FF00F877BC57FF00CE428FED6F8D3FF4207C2FFF00C3BDE2BFFE72147FAC180FF9F1';

s:=s||'9DFF00E235C47FFCEA0FAE51FE4C'';'||unistr('\000a')||
'  l_file_parts(281) := ''5FFE1063BFF99FFAF933D428AF2FFED6F8D3FF004207C2FF00FC3BDE2BFF00E72147F6B7C69FFA103E17FF00E1DEF15FFF00390A3FD60C07FCF8CEFF00F11AE23FFE7507D728FF00262FFF000831DFFCCFFD7C99EA145797FF006B7C69FF00A103E17FFE'';'||unistr('\000a')||
'  l_file_parts(282) := ''1DEF15FF00F390A3FB5BE34FFD081F0BFF00F0EF78AFFF009C851FEB0603FE7C677FF88D711FFF003A83EB947F9317FF008418EFFE67FEBE4CF50A';

s:=s||'2BCBFF00B5BE34FF00D081F0BFFF000EF78AFF00F9C851FDADF1A7FE840F85FF00F877BC57FF00CE42'';'||unistr('\000a')||
'  l_file_parts(283) := ''8FF58301FF003E33BFFC46B88FFF009D41F5CA3FC98BFF00C20C77FF0033FF005F267A8515E5FF00DADF1A7FE840F85FFF00877BC57FFCE428FED6F8D3FF004207C2FF00FC3BDE2BFF00E72147FAC180FF009F19DFFE235C47FF00CEA0FAE51FE4C5FF00'';'||unistr('\000a')||
'  l_file_parts(284) := ''E1063BFF0099FF00AF933D428AF2FF00ED6F8D3FF4207C2FFF00C3BDE2BFFE72';

s:=s||'147F6B7C69FF00A103E17FFE1DEF15FF00F390A3FD60C07FCF8CEFFF0011AE23FF00E7507D728FF262FF00F0831DFF00CCFF00D7C99EA145797FF6B7C69FFA103E17FF00'';'||unistr('\000a')||
'  l_file_parts(285) := ''E1DEF15FFF00390AC3F13F8DFE2CF847C35E21F15EADF0F7E1DCBA5F86343D5BC43A947A7FC58F12DC6A1269FA2D85C6A57896305CFC19B2B79AF1EDEDA45B68AE2F2D219262892DCC08CD2A655F89B2BC351AD88AF4F39A542852A95AB559F0D711A853'';'||unistr('\000a')||
'  l_file_parts(286) := ''A54A0E752A';

s:=s||'49FF00656918422E527D1264CF1F87846539C71518422E5293C063AD18C55DB7FECFB25ABF9F667B6514515F4076051451401F0EF8CB57F0AE95E0CF8789E3CF1DDE7C3BF046A9FB50FC73D3FC4FAF5B7C4DD7FE11C325A2EB7FB446A3A758'';'||unistr('\000a')||
'  l_file_parts(287) := ''6A1E33F0E7893C27A85ADA4FAFD86912A599D6A182FAF60B38648A73B233E5DE26FDA4FC79F093C27E16B0F0EEA9A5EBDE19D6B55F89375F0FFE23FC57D53C27241E2EF05787356D1ED7C1DA54DE2FF89BF1B7E02DAEAB71ACC7AAD';

s:=s||'F4BA378EA1D6BC73A'';'||unistr('\000a')||
'  l_file_parts(288) := ''E6B7E0CD2749F14FFC23DE328F53BCF155C7D6BE12F1FF00813E1D780EFB57F883E36F08F81749BBF8B9F1B34FB5D53C63E24D1BC31A75CEA0FF0018FE22DC258DBDEEB77B636D35E3DBDBDC4E96D1CAD334304D2842913B2FB9D85FD8EA96367A9E9979'';'||unistr('\000a')||
'  l_file_parts(289) := ''69A8E9BA8DA5BDFE9FA8585C4379637F63790A5C5A5E59DDDBBC96F7569756F2473DBDC4123C33C2E92C4EC8CAC7C2E164D70F64538C9B8AC9F2A5521151F66E5';

s:=s||'2CBB053A72AA9A95F134DD04E8CA4F91E1EA57A156856A55647360DC6580CB6328A4E38'';'||unistr('\000a')||
'  l_file_parts(290) := ''1C338B6DA9CA11A75A35141AE56A8D458A51AAA3792AD430F5A1529D5A54DC7E30B6FDA3FC5377F17EEFC151EBDF0B365978EF48F09CBF09ECACAFB5CF8BEFE1DD57E1868FE37BCF88915FE97E3D7B69BC3FE1DD4B559ED2F52D7C0377A76A7A769571F6'';'||unistr('\000a')||
'  l_file_parts(291) := ''2F125BEA1776D0AF9EFC3EFDACFE2378EF45F18FF646A1F0D759D42CBC41F03745F0E78860F';

s:=s||'0F68A9A459FFC2DAF1F5EF837503AFF0086BC05FB497C62B892F743B28AD3588B47D5BC61E02F1109A63A7EADA0E9D1BC3A837DFF00A3F86B45D06F3C457F'';'||unistr('\000a')||
'  l_file_parts(292) := ''A4D97D92EFC59AD2F88BC412FDA6EE7FB7EB09A3E93A02DE797733CD15AE349D0F4AB4FB3D925B5A9FB2F9E603733DCCD35FD3B54D3357825B9D2751B1D52DA0BED474C9AE34EBBB7BD821D4B48BEB8D2F56D3E596DA49638EFB4BD4ED2EF4ED46D1D84F'';'||unistr('\000a')||
'  l_file_parts(293) := ''657D6B7169731C5710C91';

s:=s||'AFBD0E54A973C79AD1C0BAD08CA714FD8BC24F1B46351CA555D3AF569578D3C4B71C428E2EAF3B74561B0985DE4A5CB2E5972C9BE4A756518BB4D4EB4A35254D28D273A9876E13A3674A3EC61529C7DB42AD7ADF19DC7C56F8B'';'||unistr('\000a')||
'  l_file_parts(294) := ''DA2F8B3E2AF8425F88DF08B5BF15693E3DF83DE18F0C7866EBC01AC69377A0E8DF1157E1D6957BE33BAD3AD7E285CEB1ADF8623D475FD7BEC1612496F34DAFD9DC593F8C60B26834DD3698F8EBF1C3C2FA5F88F5CF1659FC3BF18DB69DA17ED003';

s:=s||'49D1BC'';'||unistr('\000a')||
'  l_file_parts(295) := ''0FE12F14787B58BAD77E08F896DB40B6D4EE2E35BF1FF892CDB4BF13466F2F2EB4058ADA5F0FAC70E7C5BAAC467962FB9A8A8B4BD8CA1CDFBC946AC155B7C319D0C3D1A4D4559BA949C31359CDCFDFAB8B72B47EAD86F65774A70928E91A942528B6DF3C'';'||unistr('\000a')||
'  l_file_parts(296) := ''69AAAEB5377F752AF55E1A49C629D3A786951F7E38AC4BA9F017803F68CF8BBF12348F0BD8787B52F84075CF13FC58BDF0341E324B4F0CF8BBC3B6DA2D97C31D6FC7B733DC78';

s:=s||'3BE11FED2BF1420B5D76DEF743934C4B4BFF008B764F79617D6BAA1D3AC5'';'||unistr('\000a')||
'  l_file_parts(297) := ''40867E97C21F1B3C73AD78B6DCF8A3E277C24F02695ADFECF3A0FC43D3BC37AFF85AE76DBF88616F19DB78BBC5163AE5E7C46F0F5D5FF85FC3573A4E9DACF8974C9E2FF46F0D5C69965FDAFE1FBB8EFF00C4FAC7D817BE21D034DBB8B4FD475CD1EC2FE7'';'||unistr('\000a')||
'  l_file_parts(298) := ''FB0F91657BA9D95ADDCDFDA7A8C7A469BE55B4F3C7349FDA1AB4D0E9963B10FDAF51963B283CCB97588EC5';

s:=s||'5B7CCF9E292849CE2F769CE1839611C6128B8C62E15E5F59AB1B393A9A5E15A34B114E62B954A126F9BF7324F4E687FC2852C749DA4A5755B0'';'||unistr('\000a')||
'  l_file_parts(299) := ''B4E3828A97EEE346529C612855AD4AAC16B279B6D6F2F9F05D79B04527DA6D576DB5C6F8D5BCFB75F3AE36C12E7CC887DA27C46CA3CE97EFB4F45143776DA564DB76D34BBDB4515F724BB24B408A6A293776924DEBAD95AFEF393D7CE527DDB7A9F9F7F1'';'||unistr('\000a')||
'  l_file_parts(300) := ''9FC69F1ECFED2BE1BF06F819759B3F04';

s:=s||'35DFC26B4BE9ED749D1AF6C255BFD5BC61E30D72F2F6E13F681F07EA76D6ADA3F80B55B2BA2FE02B8B9D4F4CB3D634796DAE6297405F15F8F5AF8E6D23F82B71AF7C24F8D5E2DF18F8824FD99BC63ADFC6BDDF1A'';'||unistr('\000a')||
'  l_file_parts(301) := ''FC6BF10E0F0478A2DBC13657DA1EB92EB3A9F893C4D71F093C6E7C5726A56563A568FA97869AFF004C8FC45711F8735093C2705EF87FF52F50F12787749B94B3D575ED174CBB916CDE3B5D4354B1B2B974D46FE3D2B4F6482E678E565BED5258B4DB360A'';'||unistr('\000a')||
'  ';

s:=s||'l_file_parts(302) := ''45D5FC91D9C05EE1D633C4689F1C3E0AF89BECFF00F08DFC5FF85DE20FB5EB761E19B5FEC4F1FF0084F55FB4F893558AEA7D2FC3F6FF0060D5A7F3B5BD4A0B1BD9AC3498F75FDE45677525BDBC896F3148A5171C3D6A14DA9C6AD4AAE1579554AB4EA621'';'||unistr('\000a')||
'  l_file_parts(303) := ''D6A1529393E6854A13C4E221FECF282FDEC614E328CD5174B494D2C42AF25CB6865EA74AFCB4A5FD9F7AEAAA8E92855AB8684652AAA5A4613AAD4E8CA5497C21247E22F89127C2EF0A7C25F';

s:=s||'19697AD3EA3E15F8EDA86A971E0EFDB9FE3E78CBC37A3F883'';'||unistr('\000a')||
'  l_file_parts(304) := ''4CBFF83963A36BD71F13F4CD2AEFC51E2FD57C356FE20FB65B7C33F11697A7785E25D66FCFDB60FB499EFBBEF881E10BAF0FF88FF68ABC87C7BF16DF55F0A7ECCDA678EB4B9A1F8CDF176CF46B4F1C78923F8E3A76BDE22D37C249E3A97C33A5ADC0F0E6'';'||unistr('\000a')||
'  l_file_parts(305) := ''8F71A468B6DA6FF62785EE34FB59FC3763A65C42273F66EB9F127E1D785CEBC3C4BE3EF057878F856CB4AD4BC5035CF14';

s:=s||'E87A49F0DE9DAF5D358E877FAF0BFBEB7FEC7B2D66F51ECF4ABAD43ECF06A3748D6F6724D32940FD1BE22FC3EF11C7E1D97C3DE'';'||unistr('\000a')||
'  l_file_parts(306) := ''3BF06EBD178BEDF57BBF09C9A3789F44D523F145AF87E44875EB9F0EBD8DF4EBADDBE892C91C5ABCDA69B98F4D92444BC6859941BBC654F9631BD9568D49F33949B9FD6E7CB196F45429CE4A4A0D4EA430B49549BA583C253C2442F084613777174B91D9'';'||unistr('\000a')||
'  l_file_parts(307) := ''47E0C66131D51496AEA4AAD182A0DCE4D429E2AAD58';

s:=s||'46F8BC52C57E7F6A5F10BE20E8DAFF8F3E1F78DBC65E2CD1ECBE1BF857E06786FC7DE35B7D4F5BB533FC3AD67E24F8A23D4FE2DD8EA5630C6BA0EB3E23F007F67E9DE3DF1969BF61B9F076A765E25'';'||unistr('\000a')||
'  l_file_parts(308) := ''D4EDF58B087C37A6EA90F39F10FE2878EFC2FA56AA7F672F16F8A3E227C36B7F1D2EA7A2F8CA5F113FC62B6FF8A73E11F887C5BE35F0E687E34F18FC77F05EB9E34F0F5B5D68B6BA85EC31F893C5D6BA66A72789F44B768753D1B49F09DE7E896B1F17BE'';'||unistr('\000a')||
'  l_file_part';

s:=s||'s(309) := ''1378762F0DDC7883E287C3BD0A0F192EFF00084DAC78D7C35A645E2A40F6D1EEF0DC97BA9C09AE2F9979691EED31AE86FBAB65CEE9E20DD637887404D4D7456D73475D65EE12CD3496D4EC86A6F77269D73ABC76AB6067174D7126936579AA2402232369'';'||unistr('\000a')||
'  l_file_parts(310) := ''D69737AAA6DA096558941D4A1284E5372955A93789A6F92A4EBC71585C4B85595A50952A55A83AAF0D08D350AF89ACE2E9E1EA4B0ADC1AA75F9DC62E1EC6953FAB495E9C293C14B052A9493BCA156AC2EA';

s:=s||'35E7ED2F0A54635157AB4EAD7ADCD7C2B83C51'';'||unistr('\000a')||
'  l_file_parts(311) := ''6BF0D3C036DE3692E26F175BF843C3D0F88E4BC454BE6D622D2ED52F86A063F1278C239B5159D59750B98BC51AEC5777827BA8B51B88E656AEF68A2B6AD51D6AD56B38C60EAD49D47082B422E72727182D6D18DED15776491951A6E951A549CA5374E9C2'';'||unistr('\000a')||
'  l_file_parts(312) := ''9F3CBE29F245479A5ABF7A56BBD5EAF70A28A2B3340A28A2800A28A2800A28A2800AF2FF008DFF00F245BE2F7FD92FF1FF00FEA29AB5';

s:=s||'7A85797FC6FF00F922DF17BFEC97F8FF00FF00514D5ABC4E25FF009273883FEC499AFF00EA0573971DFEE58CFF00'';'||unistr('\000a')||
'  l_file_parts(313) := ''B05C47FE9A99EA1451457B675051451401F0D78BFC35E3DD6FC2BF0FB56F015978FEE6F3C23FB487C7DD6B56B8F86373F08A1F19E9FA55E78A3E3A78745CE9717C6E9E2F01DDA49A86B563677F0DEC77378961737171A7C4B730A4F16CDCFC20F881E31F'';'||unistr('\000a')||
'  l_file_parts(314) := ''135AF88F5ED73E3668567AB7C4DB26D5348B4F8D5ABF85C69FF0A0';

s:=s||'7C1AB749B4D9F44F873E37B7F0B69FA8C9F15215FED3D43C269FF0922DF3DDCBA2EB11F8526591BAAD3FE2E786FE14785FC363C4963AF5DC5E3DFDA23E2DF812C2E745B3B4BC8347BE'';'||unistr('\000a')||
'  l_file_parts(315) := ''D53E2FFC4CBB1ACF880DCEA163259F876C2DEC279754D42D22D426B183FD2A4B336915CDC41D9C9FB437C30B2F197C48F086BBAEDB78562F85761E16BCF16F8C3C57A8E85E1FF03DBCDE2D678F4ED2E0F106A3AC423FB4ADE4FB2C37D15E5AD9DBA5D6A1'';'||unistr('\000a')||
'  l_file_parts(316) := ''';

s:=s||'67676B7577786E6DEDFC2E16E45C3D91BF7672A992E5D0E5A967C9ECB0194E22B722767184A9D3A14EAB77A7529E2AB509733ADCAB9707CD2CBF03BC1432EC2D3E68269FFB4C6BE1F0D579B5FF0068A789AD39E164AD3A55E851ACA36A7797C991691F1A'';'||unistr('\000a')||
'  l_file_parts(317) := ''AF3C6BA4F824FF00C2E3D4FC6BE12F861F00AE20D7EC7E2D41A77827C17AE3F8C3C730F89F5DF89FA3C7F123476F8907C41A1787EDA0D4224F0A7C476D5069D2A4F169F777C6FA7E935FF867F18AC74E96DADFC3BF143';

s:=s||'53D3A7F10FED21AA68DA37C2BF8'';'||unistr('\000a')||
'  l_file_parts(318) := ''ADA57C3BBDD2BC5DE37F8BFAD789FE1D78DFC5D7F0FC45F02AEBDE17FF008466FBCEFEC23A87895B4D9AEEE22D5FC09A95DCC134FF00ACAF3E357C1BD3F48D03C417FF0016BE19D8E81E2B320F0BEB779E3CF0B5B691E2430DCFD8E61A06A536AA965AC1'';'||unistr('\000a')||
'  l_file_parts(319) := ''8AF3FD1641A74D71B2E7F70D897E5AD38FE27FC359BC6537C3A87E21F81A5F8836E8D2DC78123F16681278CA08D2C57537926F0C2EA075B89134D74';

s:=s||'D419DEC5556C5D6EC9103090FB924DDB9A73E68CF1D394B99C24EA4B5C4CA5CBCAA3570B785455A2A'';'||unistr('\000a')||
'  l_file_parts(320) := ''35F0D5A14711ED235E8D0A94FAF9D38B495354B9B015611E58B84551A3570F4524EF1F618B75ABFB5A56F6389552A5194274EB62635FE4ABFD37F682BEF13FC52F037877C6F2DF6ABE13F8797BE34D27541AADE456D37C4AF897E13B2F0FE8BE16292DD5'';'||unistr('\000a')||
'  l_file_parts(321) := ''A81A2787757F0DFC46F17E99A5DDDCE9DA6E987C69E06FB3C7A7A6836D7B6DC19';

s:=s||'F87FF00B52AFC2EFECAB43F127CE7F8989A96A7E1DD4758D462F190F0A0F074D691C5E1FF0011C1FB7C6B1E29BBD21BC589A7EA97D6B7DFB4BF84A6B7916F63B5F0BEA7'';'||unistr('\000a')||
'  l_file_parts(322) := ''A3BC9A66A3F67DBFC7FF0081177A3EAFE22B5F8D7F092E7C3FE1FBAB0B2D7B5CB7F891E0D9B47D12F35579E3D2ED357D4E3D65ACB4DBAD4A4B6B98EC20BC9E196F1EDE75B7491A2902EFDDFC54F861A7CF676D7FF11FC076573A878767F17D85BDDF8BFC'';'||unistr('\000a')||
'  l_file_parts(323) := ''3D6D3DF784E';

s:=s||'DB4F9B56B9F1459C536A2925CF876DF4AB6B8D4E7D6E157D362D3E09AF64B95B689E4573F794EE9453A787A32E48C60A34F0F5A59861A168A492A74231A71E64DCB07463393954E7AF2514E12A74D39B92A95A7084DCA752556AD08E0F132'';'||unistr('\000a')||
'  l_file_parts(324) := ''9393752A4AA5573AB3BB6E388AB282E5A4A1463F0A49FB36FC71F16FC47F851E2FF13F8B3553A4F87349F83B6DE23FED7BEF1C689AFB8F09278C35EF10A5ED9F82BF6A0D5FC3136BB2EB9A7F84EC6FEF5AD7C5704F79ADE9FAC41A9E';

s:=s||'B72787FC517DE25F'';'||unistr('\000a')||
'  l_file_parts(325) := ''D06F09C3F66F0D68707F66F88747F274CB48FF00B2BC59ADFF00C24BE25D3F6C4A3ECBAE6BFF00F09078AFFB635387EE5DEA1FF092EB9F6994349FDA5759F35B7A29639E28E686449A1991258A589D648A58A450F1C91C884A3A3A90C8EA4AB290549041'';'||unistr('\000a')||
'  l_file_parts(326) := ''A7D5F34A31A9492E584F135B14E9A4D28D7AEEF5DABFBDEFC97338CDCB967CD2872CAA557384A32942ADF9A4B0B85C229E9EFD1C24671C3B7CA9479A34E7C9CD15';

s:=s||'1528C62DA72BC99451454167C13F19BF675F8A1F11FE3F697E39B0F107D93C0F60DF0E'';'||unistr('\000a')||
'  l_file_parts(327) := ''E37B28F56F88BA6CAB67E1DFF84DFC41ACC36F0F87FE3A786F4496EA7D7ECFC2966F7179E027803EBDA5EA16F6D75FF08D78965F10F15A0FC15F8C5E27F85FF07FC07E26D03E25D86B1F0D6FEC3508355F8977FF00B3FDC693E15D6B43F839E31D17C2B7'';'||unistr('\000a')||
'  l_file_parts(328) := ''DE05FF008547ABCBA9EA3A0F867E222785EE6CE4F18C173E2E617165792DDDC456FA9CD63F57';

s:=s||'7C42FDA63E107C30F19D8F803C5BE2BD2AC3C55A8C3E1E9AD748935CF0BDA5EBAF8975E8F41B106CB54D7B4FBFDD133BEA97405A11FD910CB716A6EAE3CB'';'||unistr('\000a')||
'  l_file_parts(329) := ''B49302CBF6AFF86F7BF0CFE1EFC504D2FC63069DF12BC67A5F81743F0E5CE99A4C3E2DB3D6354D526D3967D634EFEDE6D3ED74BB4B68575DB9BEB5D56F964D0AEAC2F2C12FA5D42CADA79A11BE1ABD3C34A5EC6B62A9ABC395BC3E3562E74D56A4E517EC'';'||unistr('\000a')||
'  l_file_parts(330) := ''EB7D6E4E33A9514A9C2A3B';

s:=s||'FB9ED66EA55797EFE352BC52AD0C2460D4934AAE1560E738464934A6A5825294610B4AAC68F372CEA529C9781CBF033E33788FFE12CF15EB3A24BE18F1DFC535FD9FFC4BE28BAD03C43E15D5AE3C21AF785BE3D2F89754D274'';'||unistr('\000a')||
'  l_file_parts(331) := ''8B9F100D4346D42E3E18FC31B0F0F4105C5CE897FE1ED7AFF4797EC163ADCF793D95C7A6F8BBF676D6E0D57C1FA8F82F53D5355F14783747F8B9E35D2BE20F89EEBC3B1EA775F17BC4FE27F879ACD80D6ECF44D2F42D320D2FC67A5697E29F09F88';

s:=s||'22F0D'';'||unistr('\000a')||
'  l_file_parts(332) := ''78634DD32DBC2D79A95B2A58EA37969733FB3687F1960F127891B4AD17E1E7C47BFF00098D7F5BF0C47F14E1D3BC347C093EB7E1DFED0B7D5E08EDBFE12BFF0084FD74DB5D674AD47C3C9E269FC0B0F852EB57B602CF5C9F4EBAB1D46EBCFECBF6B5F87A'';'||unistr('\000a')||
'  l_file_parts(333) := ''9E17D4FC5DE32D0FC53F0C749B2F0E7823C61A7B78FEFBE1D589F10F85FE20EA37BA6786F57D26EB42F881E20D2A013DCE9F746E34BD7B51D135D82188CBFD94EA0E08F2B843D';

s:=s||'8DA8A87B6AB4650D25461985070A34297B5E6B429D3A14F1585C3C94A75'';'||unistr('\000a')||
'  l_file_parts(334) := ''160F0F8AC44713470F092567CF5A7513ADCD3A6F131A9CD284E5F57A797CE7595371D2B421530B5A69C614EB62B1583A4E84ABCA81E33E0CF879F163C13E079344D5FE085E78DF54F885FB3E7827E1B6A16D6FE2EF875269BE06D6B45B0F16D96ABE15F1'';'||unistr('\000a')||
'  l_file_parts(335) := ''B4BADF89348927F054B77E2CFED39757F0147E3BBDBCFF0089F6740F3A0D1E1D4DFF000EBF665F8AFA17ED0';

s:=s||'1A4FC41F1578BCEA7E18D06EAF66564D5BE25C52EA6749F86DE0AF08787FCBD3DFE3AEABE1A10DF5EEA1E309A77BEF87C87CCD1755171616D'';'||unistr('\000a')||
'  l_file_parts(336) := ''A6F8A340B4D0BECDF86FF123C23F15FC2B6FE33F046AB69ACF87EEB52D734CB6BFB2BED33518269742D62F7469E54B8D26FB51B430DD3D97DBAC87DA45C369F75672DCC16B34AF6F17775B293A75EAD75050A95936D352B4632AD5B1341D38C9BE4743EB'';'||unistr('\000a')||
'  l_file_parts(337) := ''355509A7CD3854E7AF2AF5542AACDA556';

s:=s||'9D384A6EA53829C7ECFBF2951C3E1EBCA728A4F9EA7D5294A6938C69CE2E14614A95A9228A28ACCB0A28A2800A28A2800A28A2800A28A2800AF2FF8DFFF00245BE2F7FD92FF001FFF00EA29AB57A85797FC6FFF'';'||unistr('\000a')||
'  l_file_parts(338) := ''00922DF17BFEC97F8FFF00F514D5ABC4E25FF9273883FEC499AFFEA0573971DFEE58CFFB05C47FE9A99EA1451457B675051451401F2B5B7C28B0F8ADE0FD3ECF55D49ECB4DD0BE2F7ED2D717D6B15A19A6D52D7C4DE27F8DDE029ADA1BB1776CDA64F689'';'||unistr('\000a')||
'  l';

s:=s||'_file_parts(339) := ''E2B3AAC17AB15DBF9B6096E90C4D38BBB7CAB7FD98BC4BA6F87753B4D2FE316AB178C75DF07F85B42F1078DA6D1B5AD36FF5FF0010699F107C49E3FF0016788AFA4F02F8EFC0DE23D3ED7C6173E28BFD2D749F0AF8B7C377FA069F1DB436BE23BCB547B3'';'||unistr('\000a')||
'  l_file_parts(340) := ''932BC49ADF8F346F8796D2F81B5DD534A5B7F8B9FB436B3E2CB5F07CBF0DDBE245E785B47F8A1F121EE2F7C23A67C57B5BAF076B161A36AD75A45E78BEC677D2B566D05E46D07598757FB269';

s:=s||'7AC749A57ED2379A87C51F0B7806DBC37A7EB9E18F14BDB6'';'||unistr('\000a')||
'  l_file_parts(341) := ''9D63F113451F14A18D7549FE1C5D7C418D751B4D57E0EDAFC35D2EE27B5B368DBC3B6FF1AF5BF1469F05E594D75A43CC9A85AD8FCFF0D4A0B86F28A89373A191E5356A535ACE54E9650A5CCA2DF2AA3569D5AD45C6A3A74F1B529CA9B8D7784FDC73611C'';'||unistr('\000a')||
'  l_file_parts(342) := ''A39765CE7FC3797D1AAA7F629AC3CF0F59BBEFEDE8D4A74EBDE9F355C3D19294DD2A58A8AAF0F873F65C3A4E8169A56AFE';

s:=s||'358B5ED422F87DF1D7C1173AA5CE85AE5FBCD73F1C3C57A778A2FB584B9F17F8EFC65E2799345363269ED6DAE78AB5ED535D86'';'||unistr('\000a')||
'  l_file_parts(343) := ''E04D7FE218E58DC4F16B5FB3BF8D2E3E215B78FC7C4CBAD734BF0DC17779E1AF00DD0F1C5A43F6F5F861A9F80ADF4B417BF13F56F841616335E6A779AC26A92FC0BBEF104325DBDB6A1AC6AD01BB6BDE47C33FB5078B34EF0FFC02835BF0DD9F8D67F1E7'';'||unistr('\000a')||
'  l_file_parts(344) := ''82FE0ADEF8DFC5162DF1061D5746D67E27DF69FA10D4';

s:=s||'750D3FC27F04B5BF857A24135FDD1D46D2DBC4BF143C0D26A1125DDBE9BA6C623D3C6A1DC5D7ED317FA068577E39F18F80AD346F874BE2BF89BE12B0D774CF17DCEB9AEB5EFC37FF0084DA159358'';'||unistr('\000a')||
'  l_file_parts(345) := ''F0F3F83F49B0D2878B750F035FE95E1C8AD7C4BAC4936A5AA6856171E55FEA49689F4189A4D47134E729349E370129528B9B738E2AAFB78D0A6E1294EBBC4E6757D872D1956A9F59952A3195352A71EC836AA72B8A9394AA56A91937184A38EA30AB5DD5'';'||unistr('\000a')||
'  l_file_parts';

s:=s||'(346) := ''A91943928D4A1808CEB3F694E1423415472A33B49F82FC3BFD9ABE29F887C1D1691E219359F851ABF853C4DA17883C35AE6B1AC7C449B5CD6E54F05EB3E0AD5B4BD5E5F879FB6478D3C571F87B48D1EEF4E4F0BFFC23DF18FC05A543772EAF6927C36834'';'||unistr('\000a')||
'  l_file_parts(347) := ''82C758FABBE1DFC16BBF86C355BCD0FC41A30D66F3E17F817E1FE9AF2F87FC497DA3699A8781A7F1BDE5AEB3341AF7C42D73C59AC693797DE32F324D0B51F1BBEA915BE9EF0B78B6E27BEFB5D9FAD7872FB';

s:=s||'C4B7F686E3C49A1697A04B2C1A5CD6D67A7EB'';'||unistr('\000a')||
'  l_file_parts(348) := ''F73AEDC2B5CE916173AADBEA266F0FE890DA4FA6EB72EA3A5DB7D925D4E1D474FB3B4D5E49B4FB8BF9747D3FA2AD6B4A52A959CB9632AB284AAFB3927173A741508CA338CA567ECBDD7C924AEDBB736A614B95D3A6E2DCE3C89C1CE2B584EBC3196941C6'';'||unistr('\000a')||
'  l_file_parts(349) := ''2B5AF0854E59C6E9AE46942F0191094451899D24982209648A3686279428123C713CB3B448CD9291B4D332290A659082E5F45159B776D';

s:=s||'F777D1597C92B25E8959742D2B2495F456D5B6F4EEDDDB7E6DB6FA8514514867CDBE34FD9B341F1B7C54B6F8A37'';'||unistr('\000a')||
'  l_file_parts(350) := ''FE29F17DA5D5ACBE1099742D3FC5FE3FB1D1676F07D8F8DE2B38EEB48D3FC6F65E1C9AD64D57C51A46B1F63FF84792D924D0B53B79A3BB4F19F88E49F86D2FF642B7D360B2B7FF0085877F716FA6F863E1369161A7BF87A05D2ACFC43E00D4BC03378ABC'';'||unistr('\000a')||
'  l_file_parts(351) := ''5F05A0D5DAE56FBC7DA2FC2FF04E87F636BE683C369A7EA17D0CBAB';

s:=s||'CDAC5EC478CF8F3FB44FC55F05FC6ED3BE1CF82B4CD3ED743921F8791DD6BDE22D27E23A6850DD6B9AAF8835BD66F2FB59D2FE08F89FC376FA35B7857C29AAC3AE5F49E3CD3ED6C34'';'||unistr('\000a')||
'  l_file_parts(352) := ''88F56D52D6F2C2FF00C3BE23B8F0EC52FC61F899E1CF871AB78535CF1678ECFC67BFF13F85FC3FF6F3F0EBC39F13AFFC3035AD02E3C47A9F8AFC1DA47C0FF0A6A50F8DBE1CDD699E1FD6E5F07BEB5E08B4F196926EAD9FC7D636E93DAC714D19A850A989'';'||unistr('\000a')||
'  l_file_parts(353) := ''A';

s:=s||'77A5158A50E47A3A988A75BEAD4DC21AD271AAF12AAA6DC61384615AB5A7848FB1BAD16F134E8D46A551E128D45596BC9858D358B8BE74BDABF62A8BC3CA34E33A9A4B0505528D6F6753D5ECBF66BBAB1F1E783F5E1E23F04DEF84FC03E2EF13F8AFC1F'';'||unistr('\000a')||
'  l_file_parts(354) := ''69A97C2C4B9F8A7E1F83C590F886E753F07E9BF1622F19DB5B5BF83535DF125DDEDB6983C02D7EDA4DA69BA3DFEAB7D73683597C2D33F637F09E8BE18D3BC1BA2EBF73E1BF0E3DAFC29BAF16E9DE0B8FC43E011E27F19F';

s:=s||'C34D5ED2F2EBC72B73E07F18F8'';'||unistr('\000a')||
'  l_file_parts(355) := ''7AF34AD73C61A5C0FA76B4FF0068D464FED1B6F0F789DAE6EB5CF0E595CC9D1FC32F8D1AF78D755D7F57B986E534CB1F803F0C7C7527843FB17538AFB47F1D6A1AF7C60D27C73A449676DA05EF8D5AFEDF51F0659E813E8ADA56A3A9DA5D690F158E8275'';'||unistr('\000a')||
'  l_file_parts(356) := ''5B8BAB6BAE33F642F8DFF147E33C9E31B9F1EE90BA6E9DA2E87E043624E99E35D3243AB6BF65AA7892EC37FC255F077E19DB5DCF2E83AB78705CFF00';

s:=s||'646A5AE58436D6DA56A7A72C9A7F8860D5F52D152F673A986859BC33A55AAA8BE68FEE2AE268D1AB'';'||unistr('\000a')||
'  l_file_parts(357) := ''5652D2B7356A55677AAE6EB578D1AD554B111A12594E7CD7AB3E68FB486128F3A7CAD46AE1F0F8EA34E9FB37CD4B929E651A3374F917255AD87E69E15C94BE9AF85BF0FECBE16F803C31E02B0D4B55D661F0EE9CB6D36AFAD6A5ABEADA96AB7F34B25E6A'';'||unistr('\000a')||
'  l_file_parts(358) := ''7A95C5D6B7A9EB3A847F6FD46E2EAEE3B26D467B6D3A2992C6CBCBB3B78224EFE8';

s:=s||'A2894A5393949DE526DB7DDBF4D3E4B45D06924AC924AEDD92B2BB776F4EADB6DF76EE14514548C28A28A0028A28A0028A28A0028A28A002BCBFE37FFC916F8BDFF64B'';'||unistr('\000a')||
'  l_file_parts(359) := ''FC7FFF00A8A6AD5EA15E5FF1BFFE48B7C5EFFB25FE3FFF00D45356AF13897FE49CE20FFB1266BFFA815CE5C77FB9633FEC1711FF00A6A67A8514515ED9D4145145007817847C03E04F887E04BED27C7FE0AF0978E74AB3F8BBF1B351B4D33C63E1BD1FC4'';'||unistr('\000a')||
'  l_file_parts(360) := ''DA7DAEA11FC6';

s:=s||'3F88B6F1DFDB596B5677B6D05EC705C5C42975146B3AC33CD1AB8495D5BD0C7C2EF866BE303F10D7E1D781478FCC6909F1C8F08F87C78C0C51E9EBA4A447C4C34FFEDA31A69489A6A27DB76AE9EAB6600B65118F97BC4FA3DA6ABE0EF084'';'||unistr('\000a')||
'  l_file_parts(361) := ''DE2BF09EA7E3CF857A67ED05F1E2EBE24F8434AF0A6A9E3D3A8D9CBF107E2EDA785EFB56F01E89A76B5AAF8D341D23C5B71A4DD5DE8965A1EB4F6BA8B691E269AC3EC9E1DB8BBB4C8BFF001178FF0042D5F44D2BE1869DF16FC0FE0EB';

s:=s||'6D3BC0E3E107C38'';'||unistr('\000a')||
'  l_file_parts(362) := ''B4F8437B7BE10F135BDFF8C35883C5763F13B5FD6FC0FE24D57E11E87A7686BA71F0E786AFFC55F096E7C21E189AC608F4E13DAB786744F0F8592970EE41149294B2CCAA82E5F795EAE5186949D44AD539EA421ECD53A70ACEAD2827CCD4270A7C983D32'';'||unistr('\000a')||
'  l_file_parts(363) := ''FC1B7AC5657467252D2F04E9C654E0DDE9FB35271A951D5A946319B8A946F3A32A9F565C7C1EF84779A9F86B5BBBF859F0E6EB59F0658E9BA6783F57B8F0478667D';

s:=s||'4FC29A6E8D2BDC691A7F86AFE5D31AEB42B1D2A79249B4DB4D2E5B582C657792D6389'';'||unistr('\000a')||
'  l_file_parts(364) := ''D989B1E24F869E13F13689A77872E34F8B4DD0F4FF001968BE3A6D2F46B4D36C6CAFF5DD13C53178D627BF80D84D1C916A1E2885358D5DEDD6DAFB51BC334B35EEEBABA337CA7ABDA7ED3378BA86AB61F14BE25E90D79A27ED07AE41A158FC31F86B7167'';'||unistr('\000a')||
'  l_file_parts(365) := ''A56A1E03F1941A77C22F0F696753F86FA86ACD178C341B87BABD8F57BFD5F55F16DB5A9BCF0A5';

s:=s||'CE82A649EBA2BEB5FDA0BC49E2B86E2DBE247C41F04687A9FC50B3F09CBA468BF0F3E1F5C69BA2F810FC1BB7F15DE789ED2FF00C59E00F106A83527F887'';'||unistr('\000a')||
'  l_file_parts(366) := ''1CDE1FB7D7B55D4EFF00C336AD70DA0CDA05DEAD1C570BEE5372A92838A929D270C7252693A556198528539DEEE12ACF16A35ED094EF083AD56CADCDD752D18B949A946AD2C4D373577CD470D8572AA9E9ED22961AA4A3453519C9B953A29D4F74FADECF'';'||unistr('\000a')||
'  l_file_parts(367) := ''48D274FBBD5750B0D2F4EB1';

s:=s||'BFD76EA0BED6EF6CECADADAEF58BDB5B1B5D2EDAF355B986249B50BAB7D32C6CB4E82E2EDE6962B1B3B5B48DD6DEDE28D346BE08BEF107C6BB5F0E6BDAEDE1F15681E2E9BE0AFC0889BC59A3FC1DBDD4BC4FAB78BE0F1A7C5'';'||unistr('\000a')||
'  l_file_parts(368) := ''03E2ED218F86BE0F7C53D4EC6E2E74D8B4B92FADE6F877E33D07C003C4936B363E0FD39B5D69EE37B40F1DFC56BCF885F06EDAEA7F8D52E85AE782B49FF84ABC35A8FC3B874B86CB59934CD6EE67D7FC77E2A9FF00676B1F08DDFDB8FD8E7BCD2F49';

s:=s||'F895'';'||unistr('\000a')||
'  l_file_parts(369) := ''F047C45A08B3D3B4F93E165DF88354BCF0D2CCE6A319B8FBFECA6E8C5454AD250C3D7AD4DC5B8FB94DD2C34E2A3350AB4D284A74614A74E72277839F32768508621BD2EE32A583A928A57B394258C8D36E2E54E53A7562AA73C2508FDB3457E78687E26F'';'||unistr('\000a')||
'  l_file_parts(370) := ''8F1A3E89F0B34D58FE21F85F5583E197C0E1E1AF00F85FE0A69EBE00F13788EFA416FF0012749F8A1AC5A7C36BFB3F84F6BA0DB25BDA5BE916BE20F8536FA1D929BBB11AB31FEC';

s:=s||'FB1F50F0ADFF00C6A8753BFD63C67E30F88DFF0008F78821FDA060BAD2'';'||unistr('\000a')||
'  l_file_parts(371) := ''AC7E1A787659BE1ED8783BC65FD9FF000D75AF075A697F0F6FFC47ABEBFAB785E29F51D32CBC4C9E37B3F1948F6D3E8FE1D9D00B7BAD6A47D9CEA479938539E2E0EAA69D372C24D41A524E4AF59B5ECD26D437C4BA0B56ECDC9437949E1D2493BBFAC465'';'||unistr('\000a')||
'  l_file_parts(372) := ''24F92DED3960A12E69725A765EC3DB5D5FEBFA2A0B56DD6D6EDE64F2EE8223E6DD43F67B99731A9F32E2DFC8';

s:=s||'B6F2277FBD2C3F66B7F2A42C9E445B7CB59EA5A716D3E8DAD9AD9DB66935E8D27DD22632E68A92DA4935AA7BABEF16E2FD5369F46D18F378'';'||unistr('\000a')||
'  l_file_parts(373) := ''7B40B9D40EAD71A1E8F3EAA45B03A9CDA6594BA811676DAAD9DA037AF035C916B67AEEB96B6C3CCFDC5B6B3AAC116D8B51BB59B9FF000A7C31F86DE038D22F03FC3DF03F83228AE6FEF238BC29E13D07C3B1C777AAC3616FA9DD22691A7D9AA5CEA56FA5'';'||unistr('\000a')||
'  l_file_parts(374) := ''E9905FCEA04B790E9D6115C3489676EB1F';

s:=s||'C4FF001DBE1EFED0DE33FDA1B48BAF03DDDF695E0AB6FF00855F6D06AB1EAFA443A5593697A878CFC6F7FA8EA161AAFECFFE2B379FD9FAD785747436707C41896DF52BEF0DC171756E9E2E48FC2D99A7F84BC2'';'||unistr('\000a')||
'  l_file_parts(375) := ''307C31B4D3746F827F1334DF16DA5AFC3E5FDA6841F0D7C5DA76A9F11F4ED2FC55A04FF1174ED6758B9B4D2ACFF683D5F5A9E2F116A373AAF84A4F88D75AF7851BC5BA4585E84F1DDA691E268A2F9E0E4F968D49E263859C252B7FB3CAB354F1B527656C'';'||unistr('\000a')||
'  l_';

s:=s||'file_parts(376) := ''150518D7C74EA28FD4D4E9B8AAF29C2F5597254E449D68470D4F1309C15D3A8E9B7530918B7A636727530F82A29BFADD58CE3525858C94A5F6D5C7C1AF84179AFD8F8AAEFE14FC36BAF146997973A869BE24B8F0378627D7F4FBFBDD52F75CBCBEB1D625'';'||unistr('\000a')||
'  l_file_parts(377) := ''D2DB51B4BCBBD6B52D4757B9B982E239A7D52FEF75095DAEEEA79A4EDB4AD1346D0ADCDAE89A4699A35A95B4536DA5585AE9F6E56C34FB3D26C54C369143195B3D2B4FB0D32D015C5BE9F6367';

s:=s||'650ECB6B68634FCD4F10FC2AB8F11DFE9775F073E1AF887'';'||unistr('\000a')||
'  l_file_parts(378) := ''C13E02D33E2FD8F8F7E1C68537817C43F0DF4CD2BC75E0BF829E36BB1E254F036A5A1F87F55F0378575CF1D59F843C3B78BAAE89A25A7897588F56BD86CEF61F11457FACE5F893E1778CBE2E5DF8EFC49E2EF0178F7494F8EF6FFB3A5F6A9A35EE917F1E'';'||unistr('\000a')||
'  l_file_parts(379) := ''A9E10F0D597C6FD46CADBC3F3CBA744CBA46B5E13F87D69A578ABC576AB746EBC37ABEABAAEA17B2DB445644716D4E9508C';

s:=s||'2A4554AB8484D24A118C7174A954A3CB194A0A5394D6339633F654A14B0D4EA622BE1EB62A9E1E2A6D724EBCA51949439934D'';'||unistr('\000a')||
'  l_file_parts(380) := ''D49CAD8CFABD6E77152718518CE8D597C556A54AB2A7468D4850AF5E9FEA9515F969E2AD0FE3F78CEEF53F89971E0CF15691F1023F821F18BE13E9369358C915BDBDC78663F03D95EEBF6422F08F8D628E4F88FE2E93C6FAA7842D6F342B99BC5DE16D1F'';'||unistr('\000a')||
'  l_file_parts(381) := ''C30D6A34B8E47D56C7EA6FD943C11F123C13E0DF1843F';

s:=s||'136E6F65D6B54F885AE3D8C17BAC691AE48BA3787AD34DF05E997AB7FA57C28F846258752B3F0CC371A74B368370B7BA1AE91A9C52593DF4FA75B5C1293AB79454618655E8D48DDC71129632542'';'||unistr('\000a')||
'  l_file_parts(382) := ''34A2A6A9D4A7278574B18D54A6AA5372AB86AB4A9D4A3CD352728C28CB95F354C4D4C356A6DAE7C3BA585556539F2F3C65078A86230B19424E1254A9D653FDFAA54FEA5A28A2A461451450014514500145145001451450015E5FF1BFFE48B7C5EFFB25FE'';'||unistr('\000a')||
'  l_file_parts(';

s:=s||'383) := ''3FFF00D45356AF50AF2FF8DFFF00245BE2F7FD92FF001FFF00EA29AB5789C4BFF24E7107FD89335FFD40AE72E3BFDCB19FF60B88FF00D3533D428A28AF6CEA0A28A2803CBFE10FFC8A9AB7FD950F8DFF00FABA7C7F5EA15E4D6DF0BF53D31F514D07E2BF'';'||unistr('\000a')||
'  l_file_parts(384) := ''C45D034ED435DF11F88468F6165F0B2EECAC6F7C53AFEA5E25D5A3B39F5CF865ABEACD6CFAB6AD7B2C097BA9DE4B0C522C02631C68059FF8403C57FF0045BFE287FE0A7E0BFF00F3A1AF95CAB139965B95E5';

s:=s||'B9755E1ECDAB55C06030782A956862320742'';'||unistr('\000a')||
'  l_file_parts(385) := ''ACF0B87A7427528BAD9DD1AAE94E5072A6EAD1A55391AE7A7095E2BCEC34EBD0C3D0A12C162252A34695294A13C1F249D38460E51E6C5C65CADA6E3CD18CADBC53D0F50A2BCBFF00E100F15FFD16FF008A1FF829F82FFF00CE868FF8403C57FF0045BFE2'';'||unistr('\000a')||
'  l_file_parts(386) := ''87FE0A7E0BFF00F3A1AEFF00ED5C7FFD1359DFFE0FE1CFFE880DFEB15BFE80317FF81E07FF009B3FAB7A5FD428AF2FFF008403C57FF45B';

s:=s||'FE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A1FF829F82FFF00CE868FED5C7FFD1359DFFE0FE1CFFE8803'';'||unistr('\000a')||
'  l_file_parts(387) := ''EB15BFE80317FF0081E07FF9B3FAB7A5FD428AF2FF00F8403C57FF0045BFE287FE0A7E0BFF00F3A1A3FE100F15FF00D16FF8A1FF00829F82FF00FCE868FED5C7FF00D1359DFF00E0FE1CFF00E8803EB15BFE80317FF81E07FF009B3FAB7A5FD428AF2FFF'';'||unistr('\000a')||
'  l_file_parts(388) := ''008403C57FF45BFE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A';

s:=s||'1FF829F82FFF00CE868FED5C7FFD1359DFFE0FE1CFFE8803EB15BFE80317FF0081E07FF9B3FAB7A5FD428AF2FF00F8403C57FF0045BFE287FE0A7E0BFF00F3A1A3FE100F15FF00D1'';'||unistr('\000a')||
'  l_file_parts(389) := ''6FF8A1FF00829F82FF00FCE868FED5C7FF00D1359DFF00E0FE1CFF00E8803EB15BFE80317FF81E07FF009B3FAB7A5FD428AF2FFF008403C57FF45BFE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A1FF829F82FFF00CE868FED5C7FFD1359DFFE0FE1'';'||unistr('\000a')||
'  l_file_parts(390) := ''CF';

s:=s||'FE8803EB15BFE80317FF0081E07FF9B3FAB7A5FD428AF2FF00F8403C57FF0045BFE287FE0A7E0BFF00F3A1A3FE100F15FF00D16FF8A1FF00829F82FF00FCE868FED5C7FF00D1359DFF00E0FE1CFF00E8803EB15BFE80317FF81E07FF009B3FAB7A5FD4'';'||unistr('\000a')||
'  l_file_parts(391) := ''28AF2FFF008403C57FF45BFE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A1FF829F82FFF00CE868FED5C7FFD1359DFFE0FE1CFFE8803EB15BFE80317FF0081E07FF9B3FAB7A5FD428AF2FF00F8403C57FF0045BFE28';

s:=s||'7FE0A7E0BFF00F3A1A3FE100F'';'||unistr('\000a')||
'  l_file_parts(392) := ''15FF00D16FF8A1FF00829F82FF00FCE868FED5C7FF00D1359DFF00E0FE1CFF00E8803EB15BFE80317FF81E07FF009B3FAB7A5FD428AF2FFF008403C57FF45BFE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A1FF829F82FFF00CE868FED5C7FFD1359'';'||unistr('\000a')||
'  l_file_parts(393) := ''DFFE0FE1CFFE8803EB15BFE80317FF0081E07FF9B3FAB7A5FD428AF2FF00F8403C57FF0045BFE287FE0A7E0BFF00F3A1A3FE100F15FF00D16FF8A1FF0';

s:=s||'0829F82FF00FCE868FED5C7FF00D1359DFF00E0FE1CFF00E8803EB15BFE80317FF81E07FF009B3F'';'||unistr('\000a')||
'  l_file_parts(394) := ''AB7A5FD428AF2FFF008403C57FF45BFE287FE0A7E0BFFF003A1A3FE100F15FFD16FF008A1FF829F82FFF00CE868FED5C7FFD1359DFFE0FE1CFFE8803EB15BFE80317FF0081E07FF9B3FAB7A5FD42BCBFE37FFC916F8BDFF64BFC7FFF00A8A6AD47FC201E'';'||unistr('\000a')||
'  l_file_parts(395) := ''2BFF00A2DFF143FF00053F05FF00F9D0D666B7F09F58F11E8DABF87B5AF8CBF13EF';

s:=s||'B46D7B4CBFD1B56B23A7FC1FB6179A66A96B2D8DFDA9B8B3F84F6F7700B8B59E58BCEB5B882E22DFBE09A29555D7CECDF1599E6194E6980A3C379C42B6372EC6E1294'';'||unistr('\000a')||
'  l_file_parts(396) := ''AAE2387A34A3531386AB4612A8E19ECE6A0A534E6E309C9453718C9D93C31352BD6C3D7A51C0E254AAD1AB4E2E53C128A94E0E29C9AC63764E5AD93764EC9E97F63A28A2BEB0F4428A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002'';'||unistr('\000a')||
'  l_file_parts(397) := ''8A28A0028A28A';

wwv_flow_api.append_to_install_script(
  p_id => 8196106179644597 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||'0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002'';'||unistr('\000a')||
'  l_file_parts(398) := ''8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A00FFFD9000000000000000000000000000000000000000000000000000000';

s:=s||'00000000000000'';'||unistr('\000a')||
'  l_file_parts(399) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(400) := ''000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(401) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(402) := ''000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(403) := ''00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(404) := ''000000000000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000504B03041400060008000000210069'';'||unistr('\000a')||
'  l_file_parts(405) := ''991B6359060000CD1D0000210000007070742F6E6F7465734D6173746572732F6E6F7465734D6173746572312E786D6CEC59E96E1B3710FE5FA0EFB0D8FE2C14690FAD5682E540AB2331E02446EC3C00B54B490B718F929422270890D74A1F274FD21';

s:=s||'91E'';'||unistr('\000a')||
'  l_file_parts(406) := ''3A6CA7911337681B2380CCE531E47CFCE6E0E4E4E9A660CE9A72915765DFF59EB45C87966995E5E5BCEFBEB99A3462D711929419615549FBEE3515EED3D35F7F39A97B6525A9784184A4DC0129A5E891BEBB90B2EE359B225DD0828827554D4B189B55BC'';'||unistr('\000a')||
'  l_file_parts(407) := ''20123EF9BC9971F216A417ACE9B75A51B32079E99AF5FC98F5D56C96A77454A5AB8296520BE19411091A88455E0B2BAD3E465ACDA900316AF5C1914E41C3F49265F8773AD7BFAFE';

s:=s||'9CCC9B30DE0D46A79EEE909E9293DE99071674D58DF9DCE3DB7797AD2'';'||unistr('\000a')||
'  l_file_parts(408) := ''C42530D9B470B1A8AF38A5D82AD7CF787D595F70FC485FAE2F38C80491AE5392021046016AC04C539F254CD3820F96CFAD24D2DBCC78812702781C3821DCE335FEC222D2A31BE9A4BA33DDF5A68B5777CC4D17E33B6637ED06A0DA7653D44A6B745B1DDF'';'||unistr('\000a')||
'  l_file_parts(409) := ''AAF39C920C0872C1484A1715C3B6C248A9A8D7018CF579952E855356A03462A1750574AC640400F7AA178EBCA';

s:=s||'E01A645C68199EFFAEE1F2BC2818266899E07A72CB74B85C2DA2AF0F708F9DD8E17B7003CC4296C7780A24AF06E75CD857C46ABC2C146DF'';'||unistr('\000a')||
'  l_file_parts(410) := ''E534958A09647D2E241E9BF4EC1475FD7AF7BA273749955DE36D4CE12F5C3A181DAC5F54FC9DEBB0B352F4DDAE1786B0B5541F6A73D7E1FB23D38311C9861570CEDC3113F2525E33A018E9B135F3406987B039183553E7CBE8EC35742162DE4E2B33531D'';'||unistr('\000a')||
'  l_file_parts(411) := ''7B5F02DC2BD0A6CC2E0827B88C11F407B46';

s:=s||'CBCB93478C00C40D96A054DCD852F3322B08C1811490FF8E0A3C8EFE543265D639BF7664210C761E4C1F976B6612DE6FFC807FEAD7C98B14CB9AAF79DAE1F26C371D41879E376239CF883C66092448D70E44D'';'||unistr('\000a')||
'  l_file_parts(412) := ''86719C8CC623FF031059196A06D72DF3824EF2F98AD3572B6D2EFC06A91C51C821A304F86A082D4FA3A6EF837FF742342AA9380A47787866869699972CCFA8735690F9214183AF13145CD7EB0AEC19DD78355C80B9D081A8C1391CE7CD04CBCE8AB961B0'';'||unistr('\000a')||
'  l_f';

s:=s||'ile_parts(413) := ''B207E5C2D0E7A98675835FF0659E17062D745BC0E0286EA3073B70FCDA9319B716847E17276B6765E386755A47F93502C17F9233A63661A5F3169D4A0764E2E5880A60C451FC40B1BBF008416069F6DD9B05B7CB4AA5E80F70960E295370BA7D37952A66'';'||unistr('\000a')||
'  l_file_parts(414) := ''C0DEC6732A65FE01C7D7B6F47A8909D381E70BBF4E2CBCA53DDF8881ED4624C47872180AB52354ACBD178D0C7590456100FF6ED2A81DC61176EAE808A43344DB6607BBD877148DE0703FE0C635';

s:=s||'496F5D320648087F5B7F03A6467AC7B8A521CBD3A5232B'';'||unistr('\000a')||
'  l_file_parts(415) := ''8766B9744C022C3162080CC062E7ADD07A01126507EAC76EA9121CD8EDD82D2F695A9599C3E89AB223C42B07720FF1578B9C1F2F5DF1EA1ED227D58ACBC5D1875736711FF1F9EC4EE90F9DBF44D68C2715D8F16146DB7E083B9E81433AC868B5192B3CEE'';'||unistr('\000a')||
'  l_file_parts(416) := ''65C63A0EC460CD3E64358AFEFFE97C66EBB2A75A19EBB0D17AFE95A96EC7524527142F57C5F40661A287200C240D20FA2ECE';

s:=s||'283EDE8B33FB39F0CFC89CEF4F8A8371100D07A3A4E10F9341238CC65EA31BC7ED86DF1E0C133FF093412BD926C50233CD12'';'||unistr('\000a')||
'  l_file_parts(417) := ''2EEFD808F0F9E3A7DF3E7FFC73E7FCBF39135641D71623C02F9C0B48AD6B552358F1BCEFBE4F926EE40FE3A49178E10472FA6E07B2FBA8DD98B483301C26F160188C3FC0C16B2FECA59CAAD2C959664A38D079ABEC52E429AF4435934FD2AA68EAFA4DB3'';'||unistr('\000a')||
'  l_file_parts(418) := ''AEDE525E57B92AE1782D53075255142F0862C83E3CCFD6';

s:=s||'01E0942A0BB2A705156C692665FC05A91D28BCC0435742F62D37D0CA96D09ACE7DEC834A84DC402B5B428BA429547B608669D81E18D73DDB3981ED8177A11E02C54CC3F6B46D0FA4787A28B23D'';'||unistr('\000a')||
'  l_file_parts(419) := ''102D162C2F970006FE719D59C59EEB0EDBD22E4055D16EBDDC0BC2CF3133D93EE11D78BF5F91E9253CDF55990086B854C98B43C9799970D80974C63258693E610ABE43A0D676B12AF54304D976B310E02C29C7D21F1605707C2F31BF55DF0270F1D490D4'';'||unistr('\000a')||
'  l_file_parts(4';

s:=s||'20) := ''1CCC52BBAAE7DE0CAA3C7DF7F7A26C30A99D3525370628D103A9B831900A235B9F506DB3AD4F284FEF63CEA6A131B599477C1882622261B0C3C792C496807E5EFE2028069F70878F1774BC089F328F00212A06A0F61E40B11FAB4AE82340888A0128DA01'';'||unistr('\000a')||
'  l_file_parts(421) := ''E4FB3110E89141E0A211150350670FA04E18605079343186A81880E21D40888E2AA73C9A18A26200EAEE0114B53B8F4E5AA53E888ACA81F7F3457CE1EDFE13F6F42F000000FFFF0300504B030414000600080';

s:=s||'000002100B97FEE7396060000B01B000014'';'||unistr('\000a')||
'  l_file_parts(422) := ''0000007070742F7468656D652F7468656D65322E786D6CEC594F6FDB3614BF0FD87720746F6327761A07758AD8B19BAD4D1BC46E871E6989965853A240D2497D1BDAE38001C3BA619701BBED306C2BD002BB749F265B87AD03FA15F6484AB218CB48D206'';'||unistr('\000a')||
'  l_file_parts(423) := ''DBB0C58744227F7CFFDFE32375FDC6A398A1432224E549DBAB5FAD7988243E0F6812B6BD7BC3FE950D0F49859300339E90B63723D2BBB1F';

s:=s||'5FE7BD7F1A68A484C10AC4FE4266E7B9152E9E6CA8AF46118CBAB3C2509CC8DB988B1825711AE04021F01DD98'';'||unistr('\000a')||
'  l_file_parts(424) := ''ADACD66AEB2B31A68987121C03D9BBE331F5091A6A92DE564EBCC7E03551520FF84C0C3469E2AC30D86052D70839935D26D021666D0FF804FC68481E290F312C154CB4BD9AF9792B5BD757F066B688A9256B4BEBFAE697ADCB16049355C35384A38269BD'';'||unistr('\000a')||
'  l_file_parts(425) := ''DF685DDB29E81B00538BB85EAFD7EDD50B7A06807D1F34B5B2946936F';

s:=s||'A1BF54E4EB304B28F8BB4BBB566ADE1E24BF4D716646E753A9D662B93C5123520FBD858C06FD4D61BDBAB0EDE802CBEB9806F74B6BBDD75076F4016BFBE80EF5F6BAD375CBC0145'';'||unistr('\000a')||
'  l_file_parts(426) := ''8C269305B47668BF9F512F2063CE762BE11B00DFA865F0390AA2A1882ECD62CC13B52CD662FC908B3E003490614513A4662919631FA2B88B191D09AA19E04D824B3376C8970B439A1792BEA0A96A7B1FA61832624EEFCDCBEFDFBC7C8EDEBC7C76FCF8C5'';'||unistr('\000a')||
'  l_file_parts(427) := ''F1E';

s:=s||'39F8E9F3C397EFCA3A5E52CDCC549585EF8FADBCFFEFCFA63F4C7F36F5E3FFDA21A2FCBF85F7FF8E4979F3FAF064206CD257AF5E5B3DF5E3C7BF5D5A7BF7FF7B402BE2DF0A80C1FD2984874871CA1031E836EC630AEE46424CEB76218615A5EB19D84'';'||unistr('\000a')||
'  l_file_parts(428) := ''12275873A9A0DF539183BE33C30C57E03AC4B5E07D0115A40A7873FAD011781089A9CA5CEE68762B8A1DE01EE7ACC345A5156E695E25330FA74958CD5C4CCBB8038C0FAB787771E2F8B7374DA174D22A92DD883862EE339C';

s:=s||'281C928428A4E7F884900A7B'';'||unistr('\000a')||
'  l_file_parts(429) := ''3DA0D4B1EB1EF505977CACD0038A3A98569A6448474E34CD17EDD218FC32AB1210FCEDD866EF3EEA7056A5F50E39749190159855083F24CC31E34D3C5538AE2239C4312B1BFC36565195908399F0CBB89E54E0E990308E7A0191B26ACD5D01FA969C7E0B'';'||unistr('\000a')||
'  l_file_parts(430) := ''AA47B5DBF7D82C769142D14915CDDB98F33272874FBA118ED32AEC80265119FB819C408862B4CF55157C8FBB19A2DFC10F3859EAEEFB9438EE3EBD1ADC';

s:=s||'A3A123D23C40F4CC5454F8F226E14EFC0E666C8C89293550D79D721DD3E4B2769FB9766F0B5A99'';'||unistr('\000a')||
'  l_file_parts(431) := ''3CBB272AF632DCC93ADDE522A0FFFE32BD83A7C93E81CC58DCAB2EABF46595F6FEF3557A593E5F7C6D9E9763A8D4BA77B24DB769C1E3A51DF89832365033466E4BD3844BD884823E0CEA75E6F4498A13591AC1A3CE6460E0E04281CD1A24B8FA88AA6810'';'||unistr('\000a')||
'  l_file_parts(432) := ''E1141AF8BAA7898432231D4A9472090747335C495BE3E110A0ECB1B3A90F24B67248';

s:=s||'ACF6786087D7F4707EEE28C818A94273B8CD19AD69026765B6762D230ABABD0DB3BA16EACCDCEA463453141D6E85CADAC4E6800E262F5483C1C29AD0DD20E889C0CA'';'||unistr('\000a')||
'  l_file_parts(433) := ''EB70FED7ACE1E0831909B4DDAD8F72B7182F5CA48B64840392F948EBBDE8A3BA71521E2B0B8A683D6C30E843E429562B716B69B2EFC0ED2C4E2AB36B2C61977BEF5DBC9447F0DC4B40ED643AB2A49C9C2C41476DAFD55C6D7AC8C769DB1BC399191EE314'';'||unistr('\000a')||
'  l_file_parts(434) := ''BC2E7543895908';

s:=s||'174FBE1236EC4F4D6693E5736FB672C5DC24A8C33588B5FB82C24E1D4885543B58463634CC5416022CD19CACFCAB4D30EB452950518DCE26C5DA0604C33F2605D8D1752D198F89AFCACE2E8D68DBD9D7AC94F2A9226210054768C4A6E2'';'||unistr('\000a')||
'  l_file_parts(435) := ''0083FB75A8823E019570F5612A827E817B3A6D6D33E516E72CE9CAB7630667C7314B239C955B9DA279265BB82948850CE6AD241EE85629BB51EEFCAA9894BF2055CA61FC3F5345EF27700DB116680FF8704D2C30D299D2F6B85011872A9';

s:=s||'446D4EF0B681C'';'||unistr('\000a')||
'  l_file_parts(436) := ''4CED806881BB5E9886A082CB6AF35F9043FDDFE69CA561D21A4E93EA80864850D88F542408D987B264A2EF1462F56CEFB2245946C84454495C995AB147E490B0A1AE81EB7A6FF75004A16EAA4956060CEE64FCB9EF59068D42DDE494F3CDA964C5DE6B73'';'||unistr('\000a')||
'  l_file_parts(437) := ''E0EFEE7C6C3283526E1D360D4D6EFF42C4A23D98EFAA76BD599EEFBD6545F4C4BCCD6AE45901CC4A5B412B4BFBB714E19C5BADAD580B1AAF3673E1C08B8B1AC360D11';

s:=s||'0A5709984F41FD8FFA8F099FDF2A137D4213F80DA8AE0438626066103517DC5361E'';'||unistr('\000a')||
'  l_file_parts(438) := ''4817483B3882C6C90EDA60D2A4AC69B3D6495B2DDFAC2FB8D32DF89E30B696EC2CFE3EA7B18BE6CC65E7E4E2451A3BB3B0636B3BB6D4D4E0D993290A43E3FC20631C633E9995BF6AF1D14370F40E7C3F9832254D30C1372B81A1871E983C80E4B71CCDD2'';'||unistr('\000a')||
'  l_file_parts(439) := ''ADBF000000FFFF0300504B030414000600080000002100B97FEE7396060000B01B0000140000007';

s:=s||'070742F7468656D652F7468656D65312E786D6CEC594F6FDB3614BF0FD87720746F6327761A07758AD8B19BAD4D1BC46E871E6989965853A240D2497D'';'||unistr('\000a')||
'  l_file_parts(440) := ''1BDAE38001C3BA619701BBED306C2BD002BB749F265B87AD03FA15F6484AB218CB48D206DBB0C58744227F7CFFDFE32375FDC6A398A1432224E549DBAB5FAD7988243E0F6812B6BD7BC3FE950D0F49859300339E90B63723D2BBB1F5FE7BD7F1A68A484C'';'||unistr('\000a')||
'  l_file_parts(441) := ''10AC4FE4266E7B9152E9E6CA8';

s:=s||'AF46118CBAB3C2509CC8DB988B1825711AE04021F01DD98ADACD66AEB2B31A68987121C03D9BBE331F5091A6A92DE564EBCC7E03551520FF84C0C3469E2AC30D86052D70839935D26D021666D0FF804FC68481E290F312C'';'||unistr('\000a')||
'  l_file_parts(442) := ''154CB4BD9AF9792B5BD757F066B688A9256B4BEBFAE697ADCB16049355C35384A38269BDDF685DDB29E81B00538BB85EAFD7EDD50B7A06807D1F34B5B2946936FA1BF54E4EB304B28F8BB4BBB566ADE1E24BF4D716646E753A9D662B93C5123520FBD8';

s:=s||'58'';'||unistr('\000a')||
'  l_file_parts(443) := ''C06FD4D61BDBAB0EDE802CBEB9806F74B6BBDD75076F4016BFBE80EF5F6BAD375CBC01458C269305B47668BF9F512F2063CE762BE11B00DFA865F0390AA2A1882ECD62CC13B52CD662FC908B3E003490614513A4662919631FA2B88B191D09AA19E04D82'';'||unistr('\000a')||
'  l_file_parts(444) := ''4B3376C8970B439A1792BEA0A96A7B1FA61832624EEFCDCBEFDFBC7C8EDEBC7C76FCF8C5F1E39F8E9F3C397EFCA3A5E52CDCC549585EF8FADBCFFEFCFA63F4C7F36F5E3FFDA21A2F';

s:=s||'CBF85F7FF8E4979F3FAF064206CD257AF5E5B3DF5E3C7BF5D5A7BF7F'';'||unistr('\000a')||
'  l_file_parts(445) := ''F7B402BE2DF0A80C1FD2984874871CA1031E836EC630AEE46424CEB76218615A5EB19D8412275873A9A0DF539183BE33C30C57E03AC4B5E07D0115A40A7873FAD011781089A9CA5CEE68762B8A1DE01EE7ACC345A5156E695E25330FA74958CD5C4CCBB8'';'||unistr('\000a')||
'  l_file_parts(446) := ''038C0FAB787771E2F8B7374DA174D22A92DD883862EE339C281C928428A4E7F884900A7B3DA0D4B1EB1EF50597';

s:=s||'7CACD0038A3A98569A6448474E34CD17EDD218FC32AB1210FCEDD866EF3EEA7056A5F50E39749190159855083F24CC31E34D3C5538AE22'';'||unistr('\000a')||
'  l_file_parts(447) := ''39C4312B1BFC36565195908399F0CBB89E54E0E990308E7A0191B26ACD5D01FA969C7E0BAA47B5DBF7D82C769142D14915CDDB98F33272874FBA118ED32AEC80265119FB819C408862B4CF55157C8FBB19A2DFC10F3859EAEEFB9438EE3EBD1ADCA3A123'';'||unistr('\000a')||
'  l_file_parts(448) := ''D23C40F4CC5454F8F226E14EFC0E666C8C89';

s:=s||'293550D79D721DD3E4B2769FB9766F0B5A993CBB272AF632DCC93ADDE522A0FFFE32BD83A7C93E81CC58DCAB2EABF46595F6FEF3557A593E5F7C6D9E9763A8D4BA77B24DB769C1E3A51DF89832365033466E'';'||unistr('\000a')||
'  l_file_parts(449) := ''4BD3844BD884823E0CEA75E6F4498A13591AC1A3CE6460E0E04281CD1A24B8FA88AA6810E1141AF8BAA7898432231D4A9472090747335C495BE3E110A0ECB1B3A90F24B67248ACF6786087D7F4707EEE28C818A94273B8CD19AD69026765B6762D230ABA'';'||unistr('\000a')||
'  l_fi';

s:=s||'le_parts(450) := ''BD0DB3BA16EACCDCEA463453141D6E85CADAC4E6800E262F5483C1C29AD0DD20E889C0CAEB70FED7ACE1E0831909B4DDAD8F72B7182F5CA48B64840392F948EBBDE8A3BA71521E2B0B8A683D6C30E843E429562B716B69B2EFC0ED2C4E2AB36B2C61977B'';'||unistr('\000a')||
'  l_file_parts(451) := ''EF5DBC9447F0DC4B40ED643AB2A49C9C2C41476DAFD55C6D7AC8C769DB1BC399191EE314BC2E7543895908174FBE1236EC4F4D6693E5736FB672C5DC24A8C33588B5FB82C24E1D4885543B58463';

s:=s||'634CC5416022CD19CACFCAB4D30EB452950518DCE26C5'';'||unistr('\000a')||
'  l_file_parts(452) := ''DA0604C33F2605D8D1752D198F89AFCACE2E8D68DBD9D7AC94F2A9226210054768C4A6E20083FB75A8823E019570F5612A827E817B3A6D6D33E516E72CE9CAB7630667C7314B239C955B9DA279265BB82948850CE6AD241EE85629BB51EEFCAA9894BF20'';'||unistr('\000a')||
'  l_file_parts(453) := ''55CA61FC3F5345EF27700DB116680FF8704D2C30D299D2F6B85011872A9446D4EF0B681C4CED806881BB5E9886A082CB6AF35';

s:=s||'F9043FDDFE69CA561D21A4E93EA80864850D88F542408D987B264A2EF1462F56CEFB2245946C84454495C995AB147E490B0'';'||unistr('\000a')||
'  l_file_parts(454) := ''A1AE81EB7A6FF75004A16EAA4956060CEE64FCB9EF59068D42DDE494F3CDA964C5DE6B73E0EFEE7C6C3283526E1D360D4D6EFF42C4A23D98EFAA76BD599EEFBD6545F4C4BCCD6AE45901CC4A5B412B4BFBB714E19C5BADAD580B1AAF3673E1C08B8B1AC3'';'||unistr('\000a')||
'  l_file_parts(455) := ''60D110A5709984F41FD8FFA8F099FDF2A137D4213F80DA8';

s:=s||'AE0438626066103517DC5361E4817483B3882C6C90EDA60D2A4AC69B3D6495B2DDFAC2FB8D32DF89E30B696EC2CFE3EA7B18BE6CC65E7E4E2451A3BB3B0636B3BB6D4D4E0D993290A43E3FC20'';'||unistr('\000a')||
'  l_file_parts(456) := ''631C633E9995BF6AF1D14370F40E7C3F9832254D30C1372B81A1871E983C80E4B71CCDD2ADBF000000FFFF0300504B030414000600080000002100B4CF5819BB000000240100002C0000007070742F6E6F7465734D6173746572732F5F72656C732F6E6F'';'||unistr('\000a')||
'  l_file_parts(45';

s:=s||'7) := ''7465734D6173746572312E786D6C2E72656C73848FC10AC2301044EF82FF10F66ED2F620224D7A11A157A91F10D26D1A6C939044B17F6FA0170B8297859965DFCCD6CD7B9EC80B4334CE7228690104AD72BDB19AC3BDBB1E4E406292B69793B3C861C108'';'||unistr('\000a')||
'  l_file_parts(458) := ''8DD8EFEA1B4E32E5A3381A1F49A6D8C8614CC99F198B6AC45946EA3CDABC195C9865CA3268E6A57A488DAC2A8A230BDF0C101B26697B0EA1ED4B20DDE273F27FB61B06A3F0E2D473469B7E44B0947B6106CAA0';

s:=s||'3171A07475D659D1DC1598A8D9E637F101'';'||unistr('\000a')||
'  l_file_parts(459) := ''0000FFFF0300504B0304140006000800000021005F917A66880100003A030000110000007070742F7669657750726F70732E786D6C8C523D6FC23014DC2BF53F58DE2109A50122024BD589A112B4BBE538C192635BB609815FDFE7983469E9C0E6F775EF'';'||unistr('\000a')||
'  l_file_parts(460) := ''EEFCD6DBB616A861C67225739C4C638C98A4AAE0B2CAF1E7E17DB2C4C83A220B22946439BE308BB79BE7A7B5CE1ACECE1F060180B419C9F1';

s:=s||'D1399D4591A54756133B559A49A895CAD4C44168AAA830E40CC0B58866719C4635E112DFE6CD23F3AA2C3965'';'||unistr('\000a')||
'  l_file_parts(461) := ''6F8A9E6A265D00314C1007E4ED916BDBA3E947D0B4611660BAE95F9436204E7ADAE2AB93E863E875CAB062C74A87EC15AC7A4D67318EC6B583D25D69354FD3AE14DDE358C10B36C0D2BD28465178A286983D2502EC4EB05F607DB05993CCB6087E6931C7'';'||unistr('\000a')||
'  l_file_parts(462) := ''A8805ADC2D81ECE53E0BAB6F533A5386575CA236C793E42581E10BBC56';

s:=s||'A9270F6D74D85F9D80DCCE3ABFB37B2318058BC04D65AE186965733C4B82B8BE252497CB5EF100E2C147FA3CA5DFEAA572CC1E58EB060A23367F542741B467DD4B1EA53C787069'';'||unistr('\000a')||
'  l_file_parts(463) := ''AC17AE19B4F6CC7EB0A1F99FD595E1C55E130A178A2898B5802385EBA780109EC1AF26DCC437000000FFFF0300504B030414000600080000002100D8FD8D8FAC000000B6000000130000007070742F7461626C655374796C65732E786D6C0CCC490E8230'';'||unistr('\000a')||
'  l_file_parts(464) := ''1840';

s:=s||'E1BD897768FE7D2D43512414C2202B77EA012A9421E94068A312E3DD65F9F2922FCD3F4AA29758EC643403FFE00112BA35DDA407068F7B836340D671DD7169B460B00A0B79B6DFA53C714F7973AB1457EBD0A6689B7006A3737342886D47A1B83D98'';'||unistr('\000a')||
'  l_file_parts(465) := ''59E8EDF56651DC6DB90CA45BF87BD3952481E71D89E29306D4899EC137AA8220A2B4C0A7CBE5886948035C7A34C67154D6D5B9A9FD2A2C7E40B23F000000FFFF0300504B0304140006000800000021000F2DAFAE510100008';

s:=s||'B020000110000007070742F'';'||unistr('\000a')||
'  l_file_parts(466) := ''7072657350726F70732E786D6CAC90CD6AC3301084EF85BE83D15D912C3B766C62073B76A1D0430EED03085B4E04D60F92F2534ADFBDC2714B432F39F4B6CB32B3DFCC7A7311637062C672250B102E300898EC54CFE5BE006FAF4F700502EBA8ECE9A824'';'||unistr('\000a')||
'  l_file_parts(467) := ''2BC03BB360533E3EAC75AE0DB34C3AEABC7467026F246D4E0B70704EE708D9EEC004B50BA599F4B74119419D5FCD1EF5869EFD03312282718204E512CC7';

s:=s||'A738F5E0D03EF58A3BAA3F0005713C3C689C41EB8B6DF6EFA1EB7DF396E904A1F925DDC8B75F3'';'||unistr('\000a')||
'  l_file_parts(468) := ''141C0D2FC0479B26DB368B2B98E0680BE33026B0CEDA1A264D18A51887B822E927F09A30CE7B6E3B6AFA6741F7ACEDB96BA8A373547FFE832778679455835B744AA06B4EA4D59919ADF81435C4735F273A16000354AED18479CBD84461851352C1345B55'';'||unistr('\000a')||
'  l_file_parts(469) := ''308E4806ABBA69605D57AB659210BC0CF10F231BE871741363A3F93FE211720378059';

s:=s||'DFAF4E3EFDE77A6FC020000FFFF0300504B03041400060008000000210046FAC44E050200005F04000010000801646F6350726F70732F6170702E786D6C20A20401'';'||unistr('\000a')||
'  l_file_parts(470) := ''28A00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(471) := ''000000000000000';

s:=s||'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(472) := ''000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4544D6FDB300CBD0FD87F30DCCB7648E4A44131048C8A224D91C3D20488DB9D359B';

s:=s||'8E853992216A'';'||unistr('\000a')||
'  l_file_parts(473) := ''69BB5F3FDA8AF3B1143B6C3E3D92CFFC789404B7AFDB2ADAA1236DCD241EF493384293D95C9BCD247E4A1F7A5FE288BC32B9AAACC149FC8614DFCA8F1F60E56C8DCE6BA48853189AC4A5F7F55808CA4ADC2AEA73D870A4B06EAB3C9B6E236C51E80CEF6D'';'||unistr('\000a')||
'  l_file_parts(474) := ''F6738BC68B6192DC087CF56872CC7BF521611C328E77FE5F93E6366BFAA3E7F4ADE68625A4D6AB2AD55B9483E41AC4D1846FD6E52407431001C15D5D573A539E05910B';

s:=s||'9D394BB6F0D1B26D3D5AD917742BAB8D07714A64399078A6F6B7877664B9343DCA'';'||unistr('\000a')||
'  l_file_parts(475) := ''1CA289D6A57D893E8DC6D79F41BC438495726AE3545D921C31E368C1BAD239727B20F6081EAD0F8E0060AEF31CCD3E9A8038B361B19856BA26C9810EC23A53154E591E59A88A90531F1C3047D5AC7EA5B423093B3FDE61E6AD8B48FFE2E58FE2E8BB226C'';'||unistr('\000a')||
'  l_file_parts(476) := ''449DC43BE5B4329EC56D68C1687155937732E553C0B93916EC169ED24EB11E35233297C15F892157';

s:=s||'3B6D946A5F21FD7F89A66E18936B9F0B104A2C0B5E897F478FE1A91E6D6B418DD0E5FEC85C087190E46AF678B7985D5D4CD04ACEBDFC517D6AB7B532'';'||unistr('\000a')||
'  l_file_parts(477) := ''6F72E67446640D88CE035FB5F9414F756AEF95C76EADE74E5897CA61CE97AF8B1F1D30E78DBAAA49322D95D960DE712E03CDFD780EEF851C8CFA097FED55E87CCD09EF5E06F91B0000FFFF0300504B030414000600080000002100DE8E9E7668010000A1'';'||unistr('\000a')||
'  l_file_parts(478) := ''02000011000801646F6350726F';

s:=s||'70732F636F72652E786D6C20A2040128A000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(479) := ''0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

s:=s||'0'';'||unistr('\000a')||
'  l_file_parts(480) := ''0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084925D4FC3201885EF4DFC0F'';'||unistr('\000a')||
'  l_file_parts(481) := ''0DBBEE28EDD228E9BAF8B1DD688D89331AEF08BCDB882D3480FBF0D74BDBAD6E6AE2259CF33E9C0364936D55066B30566A35466418A10014D742AAE5183DCF67E1050AAC634AB0522';

s:=s||'B18A31D5834C9CFCF325E53AE0D3C1A5D8371126CE049CA525E8FD1'';'||unistr('\000a')||
'  l_file_parts(482) := ''CAB99A626CF90A2A6687DEA1BCB8D0A662CE2FCD12D78CBFB325E0388A525C81638239861B6058F744B4470ADE23EB0F53B600C13194508172169321C1DF5E07A6B27F0EB4CA91B3926E57FB4EFBB8C76CC13BB1776FADEC8D9BCD66B849DA183E3FC1AF'';'||unistr('\000a')||
'  l_file_parts(483) := ''C5FD535B3594AAB92B0E28CF04A74EBA12F2C1F4E1AA980E32DCEF341A37C09C3679A18D749FC15D0952B59683D';

s:=s||'05C70C9AC2BFC5B2C2488EBDD0FEF6FBD1931B096CD5BE669868F97FECCB67E773088C017A25DFD83F292DCDCCE67288F23320AA32424'';'||unistr('\000a')||
'  l_file_parts(484) := ''D19C5CD2644449FAD6443B996F0A761BD53EE0BFC4348CE33989294968448E880740DE263EFD54F917000000FFFF0300504B01022D001400060008000000210034EEE66EED010000DD0D00001300000000000000000000000000000000005B436F6E7465'';'||unistr('\000a')||
'  l_file_parts(485) := ''6E745F54797065735D2E786D6C504B01022D0';

s:=s||'01400060008000000210068F874A105010000E20200000B00000000000000000000000000260400005F72656C732F2E72656C73504B01022D0014000600080000002100D803826BD7000000CE0100002000'';'||unistr('\000a')||
'  l_file_parts(486) := ''0000000000000000000000005C0700007070742F736C696465732F5F72656C732F736C696465312E786D6C2E72656C73504B01022D00140006000800000021003F2D199E22010000670400001F00000000000000000000000000710800007070742F5F72'';'||unistr('\000a')||
'  l_fil';

s:=s||'e_parts(487) := ''656C732F70726573656E746174696F6E2E786D6C2E72656C73504B01022D00140006000800000021004DCDCC8C5D020000E30C00001400000000000000000000000000D80A00007070742F70726573656E746174696F6E2E786D6C504B01022D00140006'';'||unistr('\000a')||
'  l_file_parts(488) := ''000800000021003951375F97030000C10900001500000000000000000000000000670D00007070742F736C696465732F736C696465312E786D6C504B01022D0014000600080000002100D5D192F1';

s:=s||'BE000000370100002C00000000000000000000000000'';'||unistr('\000a')||
'  l_file_parts(489) := ''311100007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574382E786D6C2E72656C73504B01022D0014000600080000002100D5D192F1BE000000370100002D00000000000000000000000000391200007070742F736C'';'||unistr('\000a')||
'  l_file_parts(490) := ''6964654C61796F7574732F5F72656C732F736C6964654C61796F757431312E786D6C2E72656C73504B01022D00140006000800';

s:=s||'000021004AAF7539D4000000BF0100002A00000000000000000000000000421300007070742F6E6F746573536C69646573'';'||unistr('\000a')||
'  l_file_parts(491) := ''2F5F72656C732F6E6F746573536C696465312E786D6C2E72656C73504B01022D0014000600080000002100D5D192F1BE000000370100002C000000000000000000000000005E1400007070742F736C6964654C61796F7574732F5F72656C732F736C6964'';'||unistr('\000a')||
'  l_file_parts(492) := ''654C61796F7574392E786D6C2E72656C73504B01022D0014';

s:=s||'0006000800000021007545E174F2020000F40600001F00000000000000000000000000661500007070742F6E6F746573536C696465732F6E6F746573536C696465312E786D6C504B01022D00'';'||unistr('\000a')||
'  l_file_parts(493) := ''14000600080000002100D5D192F1BE000000370100002D00000000000000000000000000951800007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F757431302E786D6C2E72656C73504B01022D00140006000800000021'';'||unistr('\000a')||
'  l_file_parts(494';

s:=s||') := ''00D5D192F1BE000000370100002C000000000000000000000000009E1900007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574352E786D6C2E72656C73504B01022D001400060008000000210069A25F211E010000C7'';'||unistr('\000a')||
'  l_file_parts(495) := ''0700002C00000000000000000000000000A61A00007070742F736C6964654D6173746572732F5F72656C732F736C6964654D6173746572312E786D6C2E72656C73504B01022D0014000600080000002100D5D19';

s:=s||'2F1BE000000370100002C000000000000'';'||unistr('\000a')||
'  l_file_parts(496) := ''000000000000000E1C00007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574342E786D6C2E72656C73504B01022D0014000600080000002100D5D192F1BE000000370100002C00000000000000000000000000161D00'';'||unistr('\000a')||
'  l_file_parts(497) := ''007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574312E786D6C2E72656C73504B01022D0014000600080';

s:=s||'000002100D5D192F1BE000000370100002C000000000000000000000000001E1E00007070742F736C696465'';'||unistr('\000a')||
'  l_file_parts(498) := ''4C61796F7574732F5F72656C732F736C6964654C61796F7574322E786D6C2E72656C73504B01022D0014000600080000002100D5D192F1BE000000370100002C00000000000000000000000000261F00007070742F736C6964654C61796F7574732F5F72'';'||unistr('\000a')||
'  l_file_parts(499) := ''656C732F736C6964654C61796F7574362E786D6C2E72656C73504B01022';

s:=s||'D00140006000800000021007696846A1B040000B00C000022000000000000000000000000002E2000007070742F736C6964654C61796F7574732F736C6964654C61796F757431'';'||unistr('\000a')||
'  l_file_parts(500) := ''312E786D6C504B01022D0014000600080000002100F18F7574CF030000D00B00002200000000000000000000000000892400007070742F736C6964654C61796F7574732F736C6964654C61796F757431302E786D6C504B01022D00140006000800000021'';'||unistr('\000a')||
'  l_file_parts(501) := ''00455';

s:=s||'892CBB8030000990B00002100000000000000000000000000982800007070742F736C6964654C61796F7574732F736C6964654C61796F7574322E786D6C504B01022D0014000600080000002100E1E2EB29A1040000081100002100000000000000'';'||unistr('\000a')||
'  l_file_parts(502) := ''0000000000008F2C00007070742F736C6964654C61796F7574732F736C6964654C61796F7574312E786D6C504B01022D00140006000800000021006843A36911080000E830000021000000000000000000000000006F310000';

s:=s||'7070742F736C6964654D61'';'||unistr('\000a')||
'  l_file_parts(503) := ''73746572732F736C6964654D6173746572312E786D6C504B01022D0014000600080000002100D5D192F1BE000000370100002C00000000000000000000000000BF3900007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F'';'||unistr('\000a')||
'  l_file_parts(504) := ''7574372E786D6C2E72656C73504B01022D0014000600080000002100C68E0557EC0400005C1100002100000000000000000000000000C73A00007070742F';

s:=s||'736C6964654C61796F7574732F736C6964654C61796F7574332E786D6C504B01022D00140006'';'||unistr('\000a')||
'  l_file_parts(505) := ''000800000021007B4D943E7E0400006B1200002100000000000000000000000000F23F00007070742F736C6964654C61796F7574732F736C6964654C61796F7574342E786D6C504B01022D00140006000800000021005AC949F9DA050000381C00002100'';'||unistr('\000a')||
'  l_file_parts(506) := ''000000000000000000000000AF4400007070742F736C6964654C61796F7574732F736C';

s:=s||'6964654C61796F7574352E786D6C504B01022D00140006000800000021003AC0330416050000331200002100000000000000000000000000C84A00007070742F73'';'||unistr('\000a')||
'  l_file_parts(507) := ''6C6964654C61796F7574732F736C6964654C61796F7574392E786D6C504B01022D00140006000800000021006679B9D357050000C512000021000000000000000000000000001D5000007070742F736C6964654C61796F7574732F736C6964654C61796F'';'||unistr('\000a')||
'  l_file_parts(508) := ''7574382E786D6C50';

s:=s||'4B01022D0014000600080000002100CBF007AE100300006A0700002100000000000000000000000000B35500007070742F736C6964654C61796F7574732F736C6964654C61796F7574372E786D6C504B01022D001400060008000000'';'||unistr('\000a')||
'  l_file_parts(509) := ''2100BB7ADEA043030000BC0800002100000000000000000000000000025900007070742F736C6964654C61796F7574732F736C6964654C61796F7574362E786D6C504B01022D0014000600080000002100D5D192F1BE000000370100002C0';

s:=s||'00000000000'';'||unistr('\000a')||
'  l_file_parts(510) := ''00000000000000845C00007070742F736C6964654C61796F7574732F5F72656C732F736C6964654C61796F7574332E786D6C2E72656C73504B01022D000A000000000000002100E6482659004000000040000017000000000000000000000000008C5D00'';'||unistr('\000a')||
'  l_file_parts(511) := ''00646F6350726F70732F7468756D626E61696C2E6A706567504B01022D001400060008000000210069991B6359060000CD1D00002100000000000000000000000000C19';

s:=s||'D00007070742F6E6F7465734D6173746572732F6E6F7465734D6173746572312E'';'||unistr('\000a')||
'  l_file_parts(512) := ''786D6C504B01022D0014000600080000002100B97FEE7396060000B01B0000140000000000000000000000000059A400007070742F7468656D652F7468656D65322E786D6C504B01022D0014000600080000002100B97FEE7396060000B01B0000140000'';'||unistr('\000a')||
'  l_file_parts(513) := ''000000000000000000000021AB00007070742F7468656D652F7468656D65312E786D6C504B01022D0';

s:=s||'014000600080000002100B4CF5819BB000000240100002C00000000000000000000000000E9B100007070742F6E6F7465734D6173746572732F5F72'';'||unistr('\000a')||
'  l_file_parts(514) := ''656C732F6E6F7465734D6173746572312E786D6C2E72656C73504B01022D00140006000800000021005F917A66880100003A0300001100000000000000000000000000EEB200007070742F7669657750726F70732E786D6C504B01022D00140006000800'';'||unistr('\000a')||
'  l_file_parts(515) := ''00002100D8FD8D8FAC000000B60';

s:=s||'000001300000000000000000000000000A5B400007070742F7461626C655374796C65732E786D6C504B01022D00140006000800000021000F2DAFAE510100008B020000110000000000000000000000000082B5000070'';'||unistr('\000a')||
'  l_file_parts(516) := ''70742F7072657350726F70732E786D6C504B01022D001400060008000000210046FAC44E050200005F040000100000000000000000000000000002B70000646F6350726F70732F6170702E786D6C504B01022D0014000600080000002100DE8E9E766801';

s:=s||''';'||unistr('\000a')||
'  l_file_parts(517) := ''0000A102000011000000000000000000000000003DBA0000646F6350726F70732F636F72652E786D6C504B0506000000002A002A00DD0C0000DCBC00000000'';'||unistr('\000a')||
'  sys.dbms_lob.createtemporary(l_blob, TRUE, sys.dbms_lob.session);'||unistr('\000a')||
'  FOR i IN 1 .. l_file_parts.COUNT LOOP'||unistr('\000a')||
'    l_size := length(l_file_parts(i)) / 2;'||unistr('\000a')||
'    sys.dbms_lob.writeappend(l_blob, l_size, hextoraw(l_file_parts(i)));'||unistr('\000a')||
'  END LOOP;'||unistr('\000a')||
'  INSERT';

s:=s||' INTO pptx_template( created_on, template_content, template_name )'||unistr('\000a')||
'       VALUES ( sysdate, l_blob, ''Employees'' );'||unistr('\000a')||
'EXCEPTION'||unistr('\000a')||
'  WHEN OTHERS THEN'||unistr('\000a')||
'    sys.dbms_lob.close(l_blob);'||unistr('\000a')||
'    RAISE;'||unistr('\000a')||
'END;'||unistr('\000a')||
'/';

wwv_flow_api.append_to_install_script(
  p_id => 8196106179644597 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE OR REPLACE PACKAGE zip_util_pkg'||unistr('\000a')||
'  AUTHID CURRENT_USER'||unistr('\000a')||
'AS'||unistr('\000a')||
''||unistr('\000a')||
'/**'||unistr('\000a')||
'* Purpose:      Package handles zipping and unzipping of files'||unistr('\000a')||
'*'||unistr('\000a')||
'* Remarks:      by Anton Scheffer, see http://forums.oracle.com/forums/thread.jspa?messageID=9289744#9289744'||unistr('\000a')||
'*'||unistr('\000a')||
'*               for unzipping, see http://technology.amis.nl/blog/8090/parsing-a-microsoft-word-docx-and-unzip-zipfiles-with-plsql'||unistr('\000a')||
'*               for zipp';

s:=s||'ing, see http://forums.oracle.com/forums/thread.jspa?threadID=1115748&tstart=0'||unistr('\000a')||
'*'||unistr('\000a')||
'* Who     Date        Description'||unistr('\000a')||
'* ------  ----------  --------------------------------'||unistr('\000a')||
'* MBR     09.01.2011  Created'||unistr('\000a')||
'* MK      16.04.2014  Removed UTL_FILE dependencies and file operations'||unistr('\000a')||
'* MK      01.07.2014  Added get_file_clob to immediately retrieve file content as a CLOB'||unistr('\000a')||
'*'||unistr('\000a')||
'* @headcom'||unistr('\000a')||
'**/'||unistr('\000a')||
''||unistr('\000a')||
'  /** List of all fil';

s:=s||'es within zipped file */'||unistr('\000a')||
'  TYPE t_file_list IS TABLE OF CLOB;'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION little_endian( p_big IN NUMBER'||unistr('\000a')||
'                        , p_bytes IN pls_integer := 4'||unistr('\000a')||
'                        )'||unistr('\000a')||
'    RETURN RAW;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_file_list( p_zipped_blob IN BLOB'||unistr('\000a')||
'                        , p_encoding IN VARCHAR2 := NULL /* Use CP850 for zip files created with a German Winzip to see umlauts, etc */'||unistr('\000a')||
'             ';

s:=s||'           )'||unistr('\000a')||
'    RETURN t_file_list;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_file( p_zipped_blob IN BLOB'||unistr('\000a')||
'                   , p_file_name IN VARCHAR2'||unistr('\000a')||
'                   , p_encoding IN VARCHAR2 := NULL'||unistr('\000a')||
'                   )'||unistr('\000a')||
'    RETURN BLOB;'||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION get_file_clob( p_zipped_blob IN BLOB'||unistr('\000a')||
'                        , p_file_name IN VARCHAR2'||unistr('\000a')||
'                        , p_encoding IN VARCHAR2 := NULL'||unistr('\000a')||
'                        )'||unistr('\000a')||
'';

s:=s||'    RETURN CLOB;'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE add_file( p_zipped_blob IN OUT NOCOPY BLOB'||unistr('\000a')||
'                    , p_name IN VARCHAR2'||unistr('\000a')||
'                    , p_content IN BLOB'||unistr('\000a')||
'                    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE add_file( p_zipped_blob IN OUT NOCOPY BLOB'||unistr('\000a')||
'                    , p_name IN VARCHAR2'||unistr('\000a')||
'                    , p_content CLOB'||unistr('\000a')||
'                    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
'  '||unistr('\000a')||
'  PROCEDURE finish_zip( p_zipped_blob IN OUT NOCOPY BLOB)';

s:=s||';'||unistr('\000a')||
'  '||unistr('\000a')||
'END zip_util_pkg;'||unistr('\000a')||
'/'||unistr('\000a')||
''||unistr('\000a')||
'CREATE OR REPLACE package body zip_util_pkg'||unistr('\000a')||
'is'||unistr('\000a')||
''||unistr('\000a')||
'/**'||unistr('\000a')||
'* Purpose:      Package handles zipping and unzipping of files'||unistr('\000a')||
'*'||unistr('\000a')||
'* Remarks:      by Anton Scheffer, see http://forums.oracle.com/forums/thread.jspa?messageID=9289744#9289744'||unistr('\000a')||
'* '||unistr('\000a')||
'*               for unzipping, see http://technology.amis.nl/blog/8090/parsing-a-microsoft-word-docx-and-unzip-zipfiles-with-plsql'||unistr('\000a')||
'*             ';

s:=s||'  for zipping, see http://forums.oracle.com/forums/thread.jspa?threadID=1115748&tstart=0'||unistr('\000a')||
'*'||unistr('\000a')||
'* Who     Date        Description'||unistr('\000a')||
'* ------  ----------  --------------------------------'||unistr('\000a')||
'* MBR     09.01.2011  Created'||unistr('\000a')||
'* MBR     21.05.2012  Fixed a bug related to use of dbms_lob.substr in get_file (use dbms_lob.copy instead)'||unistr('\000a')||
'* MK      01.07.2014  Added get_file_clob to immediatly retrieve file content as a';

s:=s||' CLOB'||unistr('\000a')||
'*'||unistr('\000a')||
'* @headcom'||unistr('\000a')||
'*/'||unistr('\000a')||
''||unistr('\000a')||
'  /* Constants */'||unistr('\000a')||
'  c_max_length CONSTANT PLS_INTEGER := 32767;'||unistr('\000a')||
'  c_file_comment CONSTANT RAW(32767) := utl_raw.cast_to_raw(''Implementation by Anton Scheffer'');'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Convert to little endian raw'||unistr('\000a')||
'  */'||unistr('\000a')||
'  FUNCTION little_endian( p_big IN NUMBER'||unistr('\000a')||
'                        , p_bytes IN pls_integer := 4'||unistr('\000a')||
'                        )'||unistr('\000a')||
'    RETURN RAW'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    RETURN utl_raw.su';

s:=s||'bstr( utl_raw.cast_from_binary_integer( p_big'||unistr('\000a')||
'                                                             , utl_raw.little_endian'||unistr('\000a')||
'                                                           )'||unistr('\000a')||
'                         , 1'||unistr('\000a')||
'                         , p_bytes'||unistr('\000a')||
'                         );'||unistr('\000a')||
'  END little_endian;'||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION get_modify_date( p_modify_date IN DATE DEFAULT SYSDATE)'||unistr('\000a')||
'    RETURN RAW'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEG';

s:=s||'IN'||unistr('\000a')||
'    RETURN little_endian( to_number( to_char( p_modify_date, ''dd'' ) )'||unistr('\000a')||
'                          + to_number( to_char( p_modify_date, ''mm'' ) ) * 32'||unistr('\000a')||
'                          + ( to_number( to_char( p_modify_date, ''yyyy'' ) ) - 1980 ) * 512'||unistr('\000a')||
'                        , 2'||unistr('\000a')||
'                        );'||unistr('\000a')||
'  END get_modify_date;'||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION get_modify_time( p_modify_date IN DATE DEFAULT SYSDATE)'||unistr('\000a')||
'    RETURN ';

s:=s||'RAW'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    RETURN little_endian( to_number( to_char( p_modify_date, ''ss'' ) ) / 2'||unistr('\000a')||
'                          + to_number( to_char( p_modify_date, ''mi'' ) ) * 32'||unistr('\000a')||
'                          + to_number( to_char( p_modify_date, ''hh24'' ) ) * 2048'||unistr('\000a')||
'                        , 2'||unistr('\000a')||
'                        );'||unistr('\000a')||
'  END get_modify_time;'||unistr('\000a')||
'  '||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION raw2num( p_value in raw )'||unistr('\000a')||
'    RETURN NUMBER'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN';

s:=s||'                                               -- note: FFFFFFFF => -1'||unistr('\000a')||
'    RETURN utl_raw.cast_to_binary_integer( p_value'||unistr('\000a')||
'                                         , utl_raw.little_endian'||unistr('\000a')||
'                                         );'||unistr('\000a')||
'                                         '||unistr('\000a')||
'  END raw2num;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION raw2varchar2( p_raw IN RAW'||unistr('\000a')||
'                       , p_encoding IN VARCHAR2'||unistr('\000a')||
'                       )'||unistr('\000a')||
'';

s:=s||'    RETURN VARCHAR2'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    RETURN nvl( utl_i18n.raw_to_char( p_raw'||unistr('\000a')||
'                                    , p_encoding'||unistr('\000a')||
'                                    )'||unistr('\000a')||
'              , utl_i18n.raw_to_char ( p_raw'||unistr('\000a')||
'                                     , utl_i18n.map_charset( p_encoding'||unistr('\000a')||
'                                                           , utl_i18n.generic_context'||unistr('\000a')||
'                                 ';

s:=s||'                          , utl_i18n.iana_to_oracle'||unistr('\000a')||
'                                                           )'||unistr('\000a')||
'                                     )'||unistr('\000a')||
'              );'||unistr('\000a')||
'  END raw2varchar2;'||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION raw2varchar2( p_zipped_blob IN BLOB'||unistr('\000a')||
'                       , p_start_index IN NUMBER'||unistr('\000a')||
'                       , p_end_index IN NUMBER'||unistr('\000a')||
'                       , p_encoding IN VARCHAR2'||unistr('\000a')||
'                 ';

s:=s||'      )'||unistr('\000a')||
'    RETURN VARCHAR2'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    RETURN raw2varchar2( dbms_lob.substr( p_zipped_blob'||unistr('\000a')||
'                                        , p_start_index'||unistr('\000a')||
'                                        , p_end_index'||unistr('\000a')||
'                                        )'||unistr('\000a')||
'                       , p_encoding'||unistr('\000a')||
'                       );'||unistr('\000a')||
'  END raw2varchar2;'||unistr('\000a')||
'  '||unistr('\000a')||
'  '||unistr('\000a')||
'  FUNCTION raw2num( p_zipped_blob IN BLOB'||unistr('\000a')||
'                  , p';

s:=s||'_start_index IN NUMBER'||unistr('\000a')||
'                  , p_end_index IN NUMBER'||unistr('\000a')||
'                  )'||unistr('\000a')||
'    RETURN NUMBER'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    RETURN raw2num( dbms_lob.substr( p_zipped_blob'||unistr('\000a')||
'                                   , p_start_index'||unistr('\000a')||
'                                   , p_end_index'||unistr('\000a')||
'                                   )'||unistr('\000a')||
'                  );'||unistr('\000a')||
'  END raw2num;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_file_list( p_zipped_blob IN BLOB'||unistr('\000a')||
'           ';

s:=s||'             , p_encoding IN VARCHAR2 := NULL'||unistr('\000a')||
'  )'||unistr('\000a')||
'    RETURN t_file_list'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_index INTEGER;'||unistr('\000a')||
'    l_header_index INTEGER;'||unistr('\000a')||
'    l_file_list t_file_list;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_index := dbms_lob.getlength( p_zipped_blob ) - 21;'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      EXIT WHEN dbms_lob.substr( p_zipped_blob, 4, l_index ) = hextoraw( ''504B0506'' )'||unistr('\000a')||
'             OR l_index < 1;'||unistr('\000a')||
'      l_index := l_index - 1;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'    IF l_i';

s:=s||'ndex <= 0 THEN'||unistr('\000a')||
'      RETURN NULL;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
''||unistr('\000a')||
'    l_header_index := raw2num( p_zipped_blob, 4, l_index + 16 ) + 1;'||unistr('\000a')||
'    l_file_list := t_file_list( );'||unistr('\000a')||
'    l_file_list.EXTEND( raw2num( p_zipped_blob, 2, l_index + 10 ) );'||unistr('\000a')||
'    '||unistr('\000a')||
'    FOR i IN 1 .. raw2num( p_zipped_blob, 2, l_index + 8 )'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      l_file_list( i ) := raw2varchar2( p_zipped_blob'||unistr('\000a')||
'                                      , raw2num( p_zi';

s:=s||'pped_blob, 2, l_header_index + 28 )'||unistr('\000a')||
'                                      , l_header_index + 46'||unistr('\000a')||
'                                      , p_encoding'||unistr('\000a')||
'                                      );'||unistr('\000a')||
'      l_header_index := l_header_index'||unistr('\000a')||
'                      + 46'||unistr('\000a')||
'                      + raw2num( dbms_lob.substr( p_zipped_blob, 2, l_header_index + 28 ) )'||unistr('\000a')||
'                      + raw2num( dbms_lob.substr( p_zi';

s:=s||'pped_blob, 2, l_header_index + 30 ) )'||unistr('\000a')||
'                      + raw2num( dbms_lob.substr( p_zipped_blob, 2, l_header_index + 32 ) );'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'    RETURN l_file_list;'||unistr('\000a')||
'  END get_file_list;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_file( p_zipped_blob IN BLOB'||unistr('\000a')||
'                   , p_file_name IN VARCHAR2'||unistr('\000a')||
'                   , p_encoding IN VARCHAR2 := NULL'||unistr('\000a')||
'                   )'||unistr('\000a')||
'    RETURN BLOB'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_retval BLOB;'||unistr('\000a')||
'    l_i';

s:=s||'ndex INTEGER;'||unistr('\000a')||
'    l_header_index INTEGER;'||unistr('\000a')||
'    l_file_index INTEGER;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_index := dbms_lob.getlength( p_zipped_blob ) - 21;'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      EXIT WHEN dbms_lob.substr( p_zipped_blob, 4, l_index ) = hextoraw( ''504B0506'' )'||unistr('\000a')||
'             OR l_index < 1;'||unistr('\000a')||
'      l_index := l_index - 1;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'    IF l_index <= 0 THEN'||unistr('\000a')||
'      RETURN NULL;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
''||unistr('\000a')||
'    l_header_index := raw2num( p_zipped_b';

s:=s||'lob, 4, l_index + 16 ) + 1;'||unistr('\000a')||
'    FOR i IN 1 .. raw2num( p_zipped_blob, 2, l_index + 8 )'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      IF p_file_name = raw2varchar2( p_zipped_blob'||unistr('\000a')||
'                                   , raw2num( p_zipped_blob, 2, l_header_index + 28 )'||unistr('\000a')||
'                                   , l_header_index + 46'||unistr('\000a')||
'                                   , p_encoding'||unistr('\000a')||
'                                   )'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'        IF dbm';

s:=s||'s_lob.substr( p_zipped_blob, 2, l_header_index + 10 ) = hextoraw( ''0800'' ) -- deflate'||unistr('\000a')||
'        THEN'||unistr('\000a')||
'          l_file_index := raw2num( p_zipped_blob, 4, l_header_index + 42 );'||unistr('\000a')||
'          l_retval := hextoraw( ''1F8B0800000000000003'' ); -- gzip header'||unistr('\000a')||
'          dbms_lob.copy( l_retval'||unistr('\000a')||
'                       , p_zipped_blob'||unistr('\000a')||
'                       , raw2num( p_zipped_blob, 4, l_file_index + 19 )'||unistr('\000a')||
'       ';

s:=s||'                , 11'||unistr('\000a')||
'                       , l_file_index'||unistr('\000a')||
'                         + 31'||unistr('\000a')||
'                         + raw2num( p_zipped_blob, 2, l_file_index + 27 )'||unistr('\000a')||
'                         + raw2num( p_zipped_blob, 2, l_file_index + 29 )'||unistr('\000a')||
'                       );'||unistr('\000a')||
'          dbms_lob.append( l_retval'||unistr('\000a')||
'                         , dbms_lob.substr( p_zipped_blob, 4, l_file_index + 15 )'||unistr('\000a')||
'                   ';

s:=s||'      );'||unistr('\000a')||
'          dbms_lob.append( l_retval'||unistr('\000a')||
'                         , dbms_lob.substr( p_zipped_blob, 4, l_file_index + 23 )'||unistr('\000a')||
'                         );'||unistr('\000a')||
'          RETURN utl_compress.lz_uncompress( l_retval );'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'        IF dbms_lob.substr( p_zipped_blob, 2, l_header_index + 10) = hextoraw( ''0000'' ) -- The file is stored (no compression)'||unistr('\000a')||
'        THEN'||unistr('\000a')||
'          l_file_index := raw2nu';

s:=s||'m( p_zipped_blob, 4, l_header_index + 42 );'||unistr('\000a')||
''||unistr('\000a')||
'          dbms_lob.createtemporary(l_retval, cache => true);'||unistr('\000a')||
'          '||unistr('\000a')||
'          dbms_lob.copy(dest_lob => l_retval,'||unistr('\000a')||
'                        src_lob => p_zipped_blob,'||unistr('\000a')||
'                        amount => raw2num( p_zipped_blob, 4, l_file_index + 19 ),'||unistr('\000a')||
'                        dest_offset => 1,'||unistr('\000a')||
'                        src_offset => l_file_index + 31 + raw2n';

s:=s||'um(dbms_lob.substr(p_zipped_blob, 2, l_file_index + 27)) + raw2num(dbms_lob.substr( p_zipped_blob, 2, l_file_index + 29))'||unistr('\000a')||
'                       );'||unistr('\000a')||
'                       '||unistr('\000a')||
'          RETURN l_retval;                                        '||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'      l_header_index := l_header_index'||unistr('\000a')||
'                      + 46'||unistr('\000a')||
'                      + raw2num( p_zipped_blob, 2, l_header_index';

s:=s||' + 28 )'||unistr('\000a')||
'                      + raw2num( p_zipped_blob, 2, l_header_index + 30 )'||unistr('\000a')||
'                      + raw2num( p_zipped_blob, 2, l_header_index + 32 );'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'    RETURN NULL;'||unistr('\000a')||
'  END get_file;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_file_clob( p_zipped_blob IN BLOB'||unistr('\000a')||
'                        , p_file_name IN VARCHAR2'||unistr('\000a')||
'                        , p_encoding IN VARCHAR2 := NULL'||unistr('\000a')||
'                        )'||unistr('\000a')||
'    RETURN CLOB'||unistr('\000a')||
'';

s:=s||'  AS'||unistr('\000a')||
'    l_file_blob BLOB;'||unistr('\000a')||
'    l_return CLOB;'||unistr('\000a')||
'    l_dest_offset INTEGER := 1;'||unistr('\000a')||
'    l_src_offset INTEGER := 1;'||unistr('\000a')||
'    l_warning INTEGER;'||unistr('\000a')||
'    l_lang_ctx INTEGER := dbms_lob.DEFAULT_LANG_CTX;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_file_blob := get_file( p_zipped_blob => p_zipped_blob'||unistr('\000a')||
'                           , p_file_name => p_file_name'||unistr('\000a')||
'                           , p_encoding => p_encoding'||unistr('\000a')||
'                           );'||unistr('\000a')||
'    IF ';

s:=s||'l_file_blob IS NULL THEN'||unistr('\000a')||
'      raise_application_error( -20000'||unistr('\000a')||
'                             , ''File not found...'''||unistr('\000a')||
'                             );'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    dbms_lob.createtemporary (l_return, true);'||unistr('\000a')||
'    dbms_lob.converttoclob( dest_lob => l_return'||unistr('\000a')||
'                          , src_blob => l_file_blob'||unistr('\000a')||
'                          , amount => dbms_lob.lobmaxsize'||unistr('\000a')||
'                          , dest_off';

s:=s||'set => l_dest_offset'||unistr('\000a')||
'                          , src_offset => l_src_offset'||unistr('\000a')||
'                          , blob_csid => dbms_lob.default_csid'||unistr('\000a')||
'                          , lang_context =>l_lang_ctx'||unistr('\000a')||
'                          , warning => l_warning'||unistr('\000a')||
'                          );'||unistr('\000a')||
'    RETURN l_return;'||unistr('\000a')||
'  END get_file_clob;'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE add_file( p_zipped_blob IN OUT NOCOPY BLOB'||unistr('\000a')||
'                    , p_name IN';

s:=s||' VARCHAR2'||unistr('\000a')||
'                    , p_content IN BLOB'||unistr('\000a')||
'  )'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_new_file BLOB;'||unistr('\000a')||
'    l_content_length INTEGER;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_new_file := utl_compress.lz_compress( p_content );'||unistr('\000a')||
'    l_content_length := dbms_lob.getlength( l_new_file );'||unistr('\000a')||
'    '||unistr('\000a')||
'    IF p_zipped_blob IS NULL THEN'||unistr('\000a')||
'      dbms_lob.createtemporary( p_zipped_blob, true );'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    dbms_lob.APPEND( p_zipped_blob'||unistr('\000a')||
'                   , utl_r';

s:=s||'aw.concat ( hextoraw( ''504B0304'' )                                -- Local file header signature'||unistr('\000a')||
'                                    , hextoraw( ''1400'' )                                    -- version 2.0'||unistr('\000a')||
'                                    , hextoraw( ''0000'' )                                    -- no General purpose bits'||unistr('\000a')||
'                                    , hextoraw( ''0800'' )                     ';

s:=s||'               -- deflate'||unistr('\000a')||
'                                    , get_modify_time                                       -- File last modification time'||unistr('\000a')||
'                                    , get_modify_date                                       -- File last modification date'||unistr('\000a')||
'                                    , dbms_lob.substr( l_new_file, 4, l_content_length - 7) -- CRC-321'||unistr('\000a')||
'                         ';

s:=s||'           , little_endian( l_content_length - 18 )                -- compressed size'||unistr('\000a')||
'                                    , little_endian( dbms_lob.getlength( p_content ) )      -- uncompressed size'||unistr('\000a')||
'                                    , little_endian( LENGTH( p_name ), 2 )                  -- File name length'||unistr('\000a')||
'                                    , hextoraw( ''0000'' )                                 ';

s:=s||'   -- Extra field length'||unistr('\000a')||
'                                    , utl_raw.cast_to_raw( p_name )                         -- File name'||unistr('\000a')||
'                                    )'||unistr('\000a')||
'                   );'||unistr('\000a')||
'    dbms_lob.copy( p_zipped_blob'||unistr('\000a')||
'                 , l_new_file'||unistr('\000a')||
'                 , l_content_length - 18'||unistr('\000a')||
'                 , dbms_lob.getlength( p_zipped_blob ) + 1'||unistr('\000a')||
'                 , 11'||unistr('\000a')||
'                 );  -- c';

s:=s||'ompressed content'||unistr('\000a')||
'    dbms_lob.freetemporary( l_new_file );'||unistr('\000a')||
'  END add_file;'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE add_file( p_zipped_blob IN OUT NOCOPY BLOB'||unistr('\000a')||
'                    , p_name IN VARCHAR2'||unistr('\000a')||
'                    , p_content CLOB'||unistr('\000a')||
'                    )'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_tmp BLOB;'||unistr('\000a')||
'    dest_offset INTEGER := 1;'||unistr('\000a')||
'    src_offset INTEGER := 1;'||unistr('\000a')||
'    l_warning INTEGER;'||unistr('\000a')||
'    l_lang_ctx INTEGER := dbms_lob.DEFAULT_LANG_CTX;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    ';

s:=s||'dbms_lob.createtemporary( l_tmp, true );'||unistr('\000a')||
'    dbms_lob.converttoblob( l_tmp'||unistr('\000a')||
'                          , p_content'||unistr('\000a')||
'                          , dbms_lob.lobmaxsize'||unistr('\000a')||
'                          , dest_offset'||unistr('\000a')||
'                          , src_offset'||unistr('\000a')||
'                          , nls_charset_id( ''AL32UTF8'' ) '||unistr('\000a')||
'                          , l_lang_ctx'||unistr('\000a')||
'                          , l_warning'||unistr('\000a')||
'                         ';

s:=s||' );'||unistr('\000a')||
'    add_file( p_zipped_blob, p_name, l_tmp );'||unistr('\000a')||
'    dbms_lob.freetemporary( l_tmp );'||unistr('\000a')||
'  END add_file;'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE finish_zip( p_zipped_blob IN OUT NOCOPY BLOB )'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_cnt pls_integer := 0;'||unistr('\000a')||
'    l_offset INTEGER;'||unistr('\000a')||
'    l_offset_directory INTEGER;'||unistr('\000a')||
'    l_offset_header INTEGER;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_offset_directory := dbms_lob.getlength( p_zipped_blob );'||unistr('\000a')||
'    l_offset := dbms_lob.instr( p_zipped_blob'||unistr('\000a')||
'    ';

s:=s||'                          , hextoraw( ''504B0304'' )'||unistr('\000a')||
'                              , 1'||unistr('\000a')||
'                              );'||unistr('\000a')||
'    WHILE l_offset > 0 LOOP'||unistr('\000a')||
'      l_cnt := l_cnt + 1;'||unistr('\000a')||
'      dbms_lob.APPEND( p_zipped_blob'||unistr('\000a')||
'                     , utl_raw.concat( hextoraw( ''504B0102'' )                           -- Central directory file header signature'||unistr('\000a')||
'                                     , hextoraw( ''1400'' )   ';

s:=s||'                            -- version 2.0'||unistr('\000a')||
'                                     , dbms_lob.substr( p_zipped_blob, 26, l_offset + 4 )'||unistr('\000a')||
'                                     , hextoraw( ''0000'' )                               -- File comment length'||unistr('\000a')||
'                                     , hextoraw( ''0000'' )                               -- Disk number where file starts'||unistr('\000a')||
'                                   ';

s:=s||'  , hextoraw( ''0100'' )                               -- Internal file attributes'||unistr('\000a')||
'                                     , hextoraw( ''2000B681'' )                           -- External file attributes'||unistr('\000a')||
'                                     , little_endian( l_offset - 1 )                    -- Relative offset of local file header'||unistr('\000a')||
'                                     , dbms_lob.substr( p_zipped_blob'||unistr('\000a')||
'     ';

s:=s||'                                                 , utl_raw.cast_to_binary_integer( dbms_lob.substr( p_zipped_blob'||unistr('\000a')||
'                                                                                                       , 2'||unistr('\000a')||
'                                                                                                       , l_offset + 26'||unistr('\000a')||
'                                                            ';

s:=s||'                                           )'||unistr('\000a')||
'                                                                                      , utl_raw.little_endian'||unistr('\000a')||
'                                                                                      )'||unistr('\000a')||
'                                                      , l_offset + 30'||unistr('\000a')||
'                                                      )                                ';

s:=s||' -- File name'||unistr('\000a')||
'                                    )'||unistr('\000a')||
'                     );'||unistr('\000a')||
'      l_offset := dbms_lob.instr( p_zipped_blob'||unistr('\000a')||
'                                , hextoraw( ''504B0304'' )'||unistr('\000a')||
'                                , l_offset + 32'||unistr('\000a')||
'                                );'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'    '||unistr('\000a')||
'    l_offset_header := dbms_lob.getlength( p_zipped_blob );'||unistr('\000a')||
'    dbms_lob.APPEND( p_zipped_blob'||unistr('\000a')||
'                  , ut';

s:=s||'l_raw.concat( hextoraw( ''504B0506'' )                                         -- End of central directory signature'||unistr('\000a')||
'                                   , hextoraw( ''0000'' )                                            -- Number of this disk'||unistr('\000a')||
'                                   , hextoraw( ''0000'' )                                            -- Disk where central directory starts'||unistr('\000a')||
'                         ';

s:=s||'          , little_endian( l_cnt, 2 )                                     -- Number of central directory records on this disk'||unistr('\000a')||
'                                   , little_endian( l_cnt, 2 )                                     -- Total number of central directory records'||unistr('\000a')||
'                                   , little_endian( l_offset_header - l_offset_directory )         -- Size of central directory'||unistr('\000a')||
'  ';

s:=s||'                                 , little_endian( l_offset_directory )                           -- Relative offset of local file header'||unistr('\000a')||
'                                   , little_endian( nvl( utl_raw.length( c_file_comment ), 0 ), 2) -- ZIP file comment length'||unistr('\000a')||
'                                   , c_file_comment'||unistr('\000a')||
'                                   )'||unistr('\000a')||
'                    );'||unistr('\000a')||
'  END finish_zip;'||unistr('\000a')||
''||unistr('\000a')||
'end zi';

s:=s||'p_util_pkg;'||unistr('\000a')||
'/ ';

wwv_flow_api.create_install_script(
  p_id => 8196607312701769 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'install ZIP Package',
  p_sequence=> 50,
  p_script_type=> 'INSTALL',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE OR REPLACE '||unistr('\000a')||
'PACKAGE xlsx_builder_pkg'||unistr('\000a')||
'   AUTHID CURRENT_USER'||unistr('\000a')||
'IS'||unistr('\000a')||
'   /**********************************************'||unistr('\000a')||
'   **'||unistr('\000a')||
'   ** Author: Anton Scheffer'||unistr('\000a')||
'   ** Date: 19-02-2011'||unistr('\000a')||
'   ** Website: http://technology.amis.nl/blog'||unistr('\000a')||
'   ** See also: http://technology.amis.nl/blog/?p=10995'||unistr('\000a')||
'   **'||unistr('\000a')||
'   ** Changelog:'||unistr('\000a')||
'   **   Date: 21-02-2011'||unistr('\000a')||
'   **     Added Aligment, horizontal, vertical, wrapText'||unistr('\000a')||
'   **   Date: ';

s:=s||'06-03-2011'||unistr('\000a')||
'   **     Added Comments, MergeCells, fixed bug for dependency on NLS-settings'||unistr('\000a')||
'   **   Date: 16-03-2011'||unistr('\000a')||
'   **     Added bold and italic fonts'||unistr('\000a')||
'   **   Date: 22-03-2011'||unistr('\000a')||
'   **     Fixed issue with timezone''s set to a region(name) instead of a offset'||unistr('\000a')||
'   **   Date: 08-04-2011'||unistr('\000a')||
'   **     Fixed issue with XML-escaping from text'||unistr('\000a')||
'   **   Date: 27-05-2011'||unistr('\000a')||
'   **     Added MIT-license'||unistr('\000a')||
'   **   Date: ';

s:=s||'11-08-2011'||unistr('\000a')||
'   **     Fixed NLS-issue with column width'||unistr('\000a')||
'   **   Date: 29-09-2011'||unistr('\000a')||
'   **     Added font color'||unistr('\000a')||
'   **   Date: 16-10-2011'||unistr('\000a')||
'   **     fixed bug in add_string'||unistr('\000a')||
'   **   Date: 26-04-2012'||unistr('\000a')||
'   **     Fixed set_autofilter (only one autofilter per sheet, added _xlnm._FilterDatabase)'||unistr('\000a')||
'   **     Added list_validation = drop-down'||unistr('\000a')||
'   **   Date: 27-08-2013'||unistr('\000a')||
'   **     Added freeze_pane'||unistr('\000a')||
'   **   Date: 01-03-';

s:=s||'2014 (MK)'||unistr('\000a')||
'   **     Changed new_sheet to function returning sheet id'||unistr('\000a')||
'   **   Date: 22-03-2014 (MK)'||unistr('\000a')||
'   **     Added function to convert Oracle Number Format to Excel Format'||unistr('\000a')||
'   **   Date: 07-04-2014 (MK)'||unistr('\000a')||
'   **     Removed references to UTL_FILE'||unistr('\000a')||
'   **     query2sheet is now function returning BLOB'||unistr('\000a')||
'   **     changed date handling to be based on 01-01-1900'||unistr('\000a')||
'   **   Date: 08-04-2014 (MK)'||unistr('\000a')||
'   **     intern';

s:=s||'al function for date to excel serial conversion added'||unistr('\000a')||
'   **   Date: 01-12-2014 (AMEI)'||unistr('\000a')||
'   **     Some Naming-conventions (and renaming of elements accordingly), new FUNCTION get_sheet_id'||unistr('\000a')||
'   **     Triggered by: @SEE AMEI, 20141129 Bugfix:'||unistr('\000a')||
'   **     For concatenation operations (in particular where record fields are involved) added a lot of TO_CHAR (...)'||unistr('\000a')||
'   **     to make sure correct explicit conve';

s:=s||'rsion (mayby not all caught where necessary)'||unistr('\000a')||
'   **     To make this easier to recognize, inducted some naming conventions and renamed some elements.'||unistr('\000a')||
'   ******************************************************************************'||unistr('\000a')||
'   ******************************************************************************'||unistr('\000a')||
'   Copyright (C) 2011, 2012 by Anton Scheffer'||unistr('\000a')||
''||unistr('\000a')||
'   Permission is hereby granted, free of';

s:=s||' charge, to any person obtaining a copy'||unistr('\000a')||
'   of this software and associated documentation files (the "Software"), to deal'||unistr('\000a')||
'   in the Software without restriction, including without limitation the rights'||unistr('\000a')||
'   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell'||unistr('\000a')||
'   copies of the Software, and to permit persons to whom the Software is'||unistr('\000a')||
'   furnished to do so, subject to the following c';

s:=s||'onditions:'||unistr('\000a')||
''||unistr('\000a')||
'   The above copyright notice and this permission notice shall be included in'||unistr('\000a')||
'   all copies or substantial portions of the Software.'||unistr('\000a')||
''||unistr('\000a')||
'   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR'||unistr('\000a')||
'   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,'||unistr('\000a')||
'   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE'||unistr('\000a')||
'   AUTHORS OR COPYRIG';

s:=s||'HT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER'||unistr('\000a')||
'   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,'||unistr('\000a')||
'   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN'||unistr('\000a')||
'   THE SOFTWARE.'||unistr('\000a')||
''||unistr('\000a')||
'   ******************************************************************************'||unistr('\000a')||
'   ******************************************************************************'||unistr('\000a')||
'   @hea';

s:=s||'dcom'||unistr('\000a')||
'   */'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Record with data about column alignment.'||unistr('\000a')||
'   * @param vertical   Vertical alignment.'||unistr('\000a')||
'   * @param horizontal Horizontal alignment.'||unistr('\000a')||
'   * @param wrapText   Switch to allow or disallow word wrap.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   TYPE t_alignment_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_vertical     VARCHAR2 (11),'||unistr('\000a')||
'      vc_horizontal   VARCHAR2 (16),'||unistr('\000a')||
'      bo_wraptext     BOOLEAN'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Clears the whole ';

s:=s||'workbook to start fresh.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   PROCEDURE clear_workbook;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Create a new sheet in the workbook.'||unistr('\000a')||
'   * @param p_sheetname Name Excel should display for the new worksheet.'||unistr('\000a')||
'   * @return ID of newly created worksheet.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION new_sheet (p_sheetname VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Converts an Oracle date format to the corresponding Excel date format.'||unistr('\000a')||
'   * ';

s:=s||'@param p_format The Oracle date format to convert.'||unistr('\000a')||
'   * @return Corresponding Excel date format.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION orafmt2excel (p_format VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN VARCHAR2;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Converts an Oracle number format to the corresponding Excel number format.'||unistr('\000a')||
'   * @param The Oracle number format to convert.'||unistr('\000a')||
'   * @return Corresponding Excel number format.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION oranumfmt2excel (p';

s:=s||'_format VARCHAR2)'||unistr('\000a')||
'      RETURN VARCHAR2;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Get ID for given number format.'||unistr('\000a')||
'   * @param p_format Wanted number formatting using Excle number format.'||unistr('\000a')||
'   *                 Use OraNumFmt2Excel to convert from Oracle to Excel.'||unistr('\000a')||
'   * @return ID for given number format.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION get_numfmt (p_format VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Get ID for given font settings';

s:=s||'.'||unistr('\000a')||
'   * @param p_name'||unistr('\000a')||
'   * @param p_family'||unistr('\000a')||
'   * @param p_fontsize'||unistr('\000a')||
'   * @param p_theme'||unistr('\000a')||
'   * @param p_underline'||unistr('\000a')||
'   * @param p_italic'||unistr('\000a')||
'   * @param p_bold'||unistr('\000a')||
'   * @param p_rgb'||unistr('\000a')||
'   * @return ID for given font definition'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION get_font (p_name         VARCHAR2,'||unistr('\000a')||
'                      p_family       PLS_INTEGER := 2,'||unistr('\000a')||
'                      p_fontsize     NUMBER := 8,'||unistr('\000a')||
'                      p_theme    ';

s:=s||'    PLS_INTEGER := 1,'||unistr('\000a')||
'                      p_underline    BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_italic       BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_bold         BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_rgb          VARCHAR2 := NULL                        -- this is a hex ALPHA Red Green Blue value, but RGB works also'||unistr('\000a')||
'                                                     )'||unistr('\000a')||
'      RETURN PLS_';

s:=s||'INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Get ID for given cell fill'||unistr('\000a')||
'   * @param p_patternType Pattern for the fill.'||unistr('\000a')||
'   * @param p_fgRGB       Color using an ARGB or RGB hex value'||unistr('\000a')||
'   * @return ID for given cell fill.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION get_fill (p_patterntype VARCHAR2, p_fgrgb VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Get ID for given border definition.'||unistr('\000a')||
'   * Possible values for all parameters:'||unistr('\000a')||
'   * none';

s:=s||', thin, medium, dashed, dotted, thick, double, hair, mediumDashed,'||unistr('\000a')||
'   * dashDot, mediumDashDot, dashDotDot, mediumDashDotDot, slantDashDot'||unistr('\000a')||
'   * @param p_top    Style for top border'||unistr('\000a')||
'   * @param p_bottom Style for bottom border'||unistr('\000a')||
'   * @param p_left   Style for left border'||unistr('\000a')||
'   * @param p_right  Style for right border'||unistr('\000a')||
'   * @return ID for given border definition'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION get_border (p_top       V';

s:=s||'ARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_bottom    VARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_left      VARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_right     VARCHAR2 := ''thin'')'||unistr('\000a')||
'      RETURN PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Function to get a record holding alignment data.'||unistr('\000a')||
'   * @param p_vertical   Vertical alignment.'||unistr('\000a')||
'   *                     (bottom, center, distributed, justify, top)'||unistr('\000a')||
'   * @param';

s:=s||' p_horizontal Horizontal alignment.'||unistr('\000a')||
'   *                     (center, centerContinuous, distributed, fill, general, justify, left, right)'||unistr('\000a')||
'   * @param p_wraptext   Switch to allow or disallow text wrapping.'||unistr('\000a')||
'   * @return Record with alignment data.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   FUNCTION get_alignment (p_vertical VARCHAR2 := NULL, p_horizontal VARCHAR2 := NULL, p_wraptext BOOLEAN := NULL)'||unistr('\000a')||
'      RETURN t_alignment_rec;'||unistr('\000a')||
''||unistr('\000a')||
' ';

s:=s||'  /**'||unistr('\000a')||
'   * Puts a number value into a cell of the spreadsheet.'||unistr('\000a')||
'   * @param p_col       Column number where the cell is located'||unistr('\000a')||
'   * @param p_row       Row number where the cell is located'||unistr('\000a')||
'   * @param p_value     The value to put into the cell'||unistr('\000a')||
'   * @param p_numFmtId  ID of number format'||unistr('\000a')||
'   * @param p_fontId    ID of font defintion'||unistr('\000a')||
'   * @param p_fillId    ID of fill definition'||unistr('\000a')||
'   * @param p_borderId';

s:=s||'  ID of border definition'||unistr('\000a')||
'   * @param p_alignment The wanted alignment'||unistr('\000a')||
'   * @param p_sheet     Worksheet the cell is located, if omitted last worksheet is used'||unistr('\000a')||
'   */'||unistr('\000a')||
'   PROCEDURE cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        NUMBER,'||unistr('\000a')||
'                   p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEG';

s:=s||'ER := NULL,'||unistr('\000a')||
'                   p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Puts a character value into a cell of the spreadsheet.'||unistr('\000a')||
'   * @param p_col       Column number where the cell is located'||unistr('\000a')||
'   * @param p_row       Row num';

s:=s||'ber where the cell is located'||unistr('\000a')||
'   * @param p_value     The value to put into the cell'||unistr('\000a')||
'   * @param p_numFmtId  ID of formatting definition'||unistr('\000a')||
'   * @param p_fontId    ID of font defintion'||unistr('\000a')||
'   * @param p_fillId    ID of fill definition'||unistr('\000a')||
'   * @param p_borderId  ID of border definition'||unistr('\000a')||
'   * @param p_alignment The wanted alignment'||unistr('\000a')||
'   * @param p_sheet     Worksheet the cell is located, if omitted last workshee';

s:=s||'t is used'||unistr('\000a')||
'   */'||unistr('\000a')||
'   PROCEDURE cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        VARCHAR2,'||unistr('\000a')||
'                   p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_align';

s:=s||'ment    t_alignment_rec := NULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Puts a date value into a cell of the spreadsheet.'||unistr('\000a')||
'   * @param p_col       Column number where the cell is located'||unistr('\000a')||
'   * @param p_row       Row number where the cell is located'||unistr('\000a')||
'   * @param p_value     The value to put into the cell'||unistr('\000a')||
'   * @param p_numFmtId  ID of format definition'||unistr('\000a')||
'   * @param p_fontId';

s:=s||'    ID of font defintion'||unistr('\000a')||
'   * @param p_fillId    ID of fill definition'||unistr('\000a')||
'   * @param p_borderId  ID of border definition'||unistr('\000a')||
'   * @param p_alignment The wanted alignment'||unistr('\000a')||
'   * @param p_sheet     Worksheet the cell is located, if omitted last worksheet is used'||unistr('\000a')||
'   */'||unistr('\000a')||
'   PROCEDURE cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        DATE,'||unistr('\000a')||
'       ';

s:=s||'            p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE hyperlink (p_col      PLS_INTEGER,'||unistr('\000a')||
'                       ';

s:=s||' p_row      PLS_INTEGER,'||unistr('\000a')||
'                        p_url      VARCHAR2,'||unistr('\000a')||
'                        p_value    VARCHAR2 := NULL,'||unistr('\000a')||
'                        p_sheet    PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE comment (p_col       PLS_INTEGER,'||unistr('\000a')||
'                      p_row       PLS_INTEGER,'||unistr('\000a')||
'                      p_text      VARCHAR2,'||unistr('\000a')||
'                      p_author    VARCHAR2 := NULL,'||unistr('\000a')||
'                      p_width';

s:=s||'     PLS_INTEGER := 150                                                                               -- pixels'||unistr('\000a')||
'                                                    ,'||unistr('\000a')||
'                      p_height    PLS_INTEGER := 100                                                                               -- pixels'||unistr('\000a')||
'                                                    ,'||unistr('\000a')||
'                      p_sheet     PLS_I';

s:=s||'NTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE mergecells (p_tl_col    PLS_INTEGER                                                                                 -- top left'||unistr('\000a')||
'                                                ,'||unistr('\000a')||
'                         p_tl_row    PLS_INTEGER,'||unistr('\000a')||
'                         p_br_col    PLS_INTEGER                                                                             -- bottom right'||unistr('\000a')||
'';

s:=s||'                                                ,'||unistr('\000a')||
'                         p_br_row    PLS_INTEGER,'||unistr('\000a')||
'                         p_sheet     PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE list_validation (p_sqref_col      PLS_INTEGER,'||unistr('\000a')||
'                              p_sqref_row      PLS_INTEGER,'||unistr('\000a')||
'                              p_tl_col         PLS_INTEGER                                                              ';

s:=s||'         -- top left'||unistr('\000a')||
'                                                          ,'||unistr('\000a')||
'                              p_tl_row         PLS_INTEGER,'||unistr('\000a')||
'                              p_br_col         PLS_INTEGER                                                                   -- bottom right'||unistr('\000a')||
'                                                          ,'||unistr('\000a')||
'                              p_br_row         PLS_INTEGER';

s:=s||','||unistr('\000a')||
'                              p_style          VARCHAR2 := ''stop''                                              -- stop, warning, information'||unistr('\000a')||
'                                                                 ,'||unistr('\000a')||
'                              p_title          VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_prompt         VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_show_error     BOOLEAN := FA';

s:=s||'LSE,'||unistr('\000a')||
'                              p_error_title    VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_error_txt      VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_sheet          PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE list_validation (p_sqref_col       PLS_INTEGER,'||unistr('\000a')||
'                              p_sqref_row       PLS_INTEGER,'||unistr('\000a')||
'                              p_defined_name    VARCHAR2,'||unistr('\000a')||
'               ';

s:=s||'               p_style           VARCHAR2 := ''stop''                                             -- stop, warning, information'||unistr('\000a')||
'                                                                  ,'||unistr('\000a')||
'                              p_title           VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_prompt          VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_show_error      BOOLEAN := FALSE,'||unistr('\000a')||
'        ';

s:=s||'                      p_error_title     VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_error_txt       VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_sheet           PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE defined_name (p_tl_col        PLS_INTEGER                                                                           -- top left'||unistr('\000a')||
'                                                      ,'||unistr('\000a')||
'        ';

s:=s||'                   p_tl_row        PLS_INTEGER,'||unistr('\000a')||
'                           p_br_col        PLS_INTEGER                                                                       -- bottom right'||unistr('\000a')||
'                                                      ,'||unistr('\000a')||
'                           p_br_row        PLS_INTEGER,'||unistr('\000a')||
'                           p_name          VARCHAR2,'||unistr('\000a')||
'                           p_sheet         PLS';

s:=s||'_INTEGER := NULL,'||unistr('\000a')||
'                           p_localsheet    PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_column_width (p_col PLS_INTEGER, p_width NUMBER, p_sheet PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_column (p_col          PLS_INTEGER,'||unistr('\000a')||
'                         p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_fillid       PLS_';

s:=s||'INTEGER := NULL,'||unistr('\000a')||
'                         p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                         p_sheet        PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_row (p_row          PLS_INTEGER,'||unistr('\000a')||
'                      p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_fill';

s:=s||'id       PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                      p_sheet        PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE freeze_rows (p_nr_rows PLS_INTEGER := 1, p_sheet PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE freeze_cols (p_nr_cols PLS_INTEGER := 1, p_sheet PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE freeze_';

s:=s||'pane (p_col PLS_INTEGER, p_row PLS_INTEGER, p_sheet PLS_INTEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_autofilter (p_column_start    PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_column_end      PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_row_start       PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_row_end         PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_sheet           PLS_IN';

s:=s||'TEGER := NULL);'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION finish'||unistr('\000a')||
'      RETURN BLOB;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION query2sheet (p_sql VARCHAR2, p_column_headers BOOLEAN := TRUE, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'      RETURN BLOB;'||unistr('\000a')||
'END;'||unistr('\000a')||
'/'||unistr('\000a')||
'';

wwv_flow_api.create_install_script(
  p_id => 8196818525714441 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Install XLSX_BUILDER Package Header',
  p_sequence=> 60,
  p_script_type=> 'INSTALL',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE OR REPLACE '||unistr('\000a')||
'PACKAGE BODY xlsx_builder_pkg'||unistr('\000a')||
'IS'||unistr('\000a')||
''||unistr('\000a')||
'   /* Some Naming-conventions'||unistr('\000a')||
'   Prefixes for Datatypes in defined Records-Type-Elements'||unistr('\000a')||
'   vc   VARCHAR2'||unistr('\000a')||
'   nv   NVARCHAR2'||unistr('\000a')||
'   ch   CHAR'||unistr('\000a')||
'   nc   NCHAR'||unistr('\000a')||
'   nn   NUMBER'||unistr('\000a')||
'   pi   PLS_INTEGER'||unistr('\000a')||
'   bi   BINARY_INTEGER'||unistr('\000a')||
'   dt   DATE'||unistr('\000a')||
'   bo   BOOLEAN'||unistr('\000a')||
'   bf   BFILE'||unistr('\000a')||
'   bl   BLOB'||unistr('\000a')||
'   cl   CLOB'||unistr('\000a')||
'   nl   NCLOB'||unistr('\000a')||
'   lo   LONG'||unistr('\000a')||
'   tl   TIMESTAMP (fractional_seconds_prec';

s:=s||'ision) WITH LOCAL TIME ZONE'||unistr('\000a')||
'   ts   TIMESTAMP (fractional_seconds_precision)'||unistr('\000a')||
'   tz   TIMESTAMP (fractional_seconds_precision) WITH TIME ZONE'||unistr('\000a')||
'   iv   INTERVAL'||unistr('\000a')||
'        Sample: vc_name VARCHAR2 (10)'||unistr('\000a')||
'   Types-Prefixes'||unistr('\000a')||
'   t_... TYPE'||unistr('\000a')||
'   Types-Suffixes'||unistr('\000a')||
'   ..._rec record'||unistr('\000a')||
'   ..._tab PL/SQL-Table'||unistr('\000a')||
'   */'||unistr('\000a')||
''||unistr('\000a')||
'   /* Types */'||unistr('\000a')||
'   TYPE t_xf_fmt_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      pi_numfmtid     PLS_INTEGER,'||unistr('\000a')||
'      pi_fontid    ';

s:=s||'   PLS_INTEGER,'||unistr('\000a')||
'      pi_fillid       PLS_INTEGER,'||unistr('\000a')||
'      pi_borderid     PLS_INTEGER,'||unistr('\000a')||
'      alignment_rec   t_alignment_rec'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_col_fmts_tab IS TABLE OF t_xf_fmt_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_row_fmts_tab IS TABLE OF t_xf_fmt_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_widths_tab IS TABLE OF NUMBER'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_cell_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      nn_val';

s:=s||'ue_id    NUMBER,'||unistr('\000a')||
'      vc_style_def   VARCHAR2 (50)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_cells_tab IS TABLE OF t_cell_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_rows_tab IS TABLE OF t_cells_tab'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_autofilter_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      pi_column_start   PLS_INTEGER,'||unistr('\000a')||
'      pi_column_end     PLS_INTEGER,'||unistr('\000a')||
'      pi_row_start      PLS_INTEGER,'||unistr('\000a')||
'      pi_row_end        PLS_INTEGER'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   ';

s:=s||'TYPE t_autofilters_tab IS TABLE OF t_autofilter_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_hyperlink_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_cell   VARCHAR2 (10),'||unistr('\000a')||
'      vc_url    VARCHAR2 (1000)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_hyperlinks_tab IS TABLE OF t_hyperlink_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   SUBTYPE st_author IS VARCHAR2 (32767 CHAR);'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_authors_tab IS TABLE OF PLS_INTEGER'||unistr('\000a')||
'      INDEX BY st_author;'||unistr('\000a')||
''||unistr('\000a')||
'   gv_a';

s:=s||'uthors_tab                         t_authors_tab;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_comment_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_text        VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_author      st_author,'||unistr('\000a')||
'      pi_row_nr      PLS_INTEGER,'||unistr('\000a')||
'      pi_column_nr   PLS_INTEGER,'||unistr('\000a')||
'      pi_width       PLS_INTEGER,'||unistr('\000a')||
'      pi_height      PLS_INTEGER'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_comments_tab IS TABLE OF t_comment_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_mergec';

s:=s||'ells_tab IS TABLE OF VARCHAR2 (21)'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_validation_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_validation_type    VARCHAR2 (10),'||unistr('\000a')||
'      vc_errorstyle         VARCHAR2 (32),'||unistr('\000a')||
'      bo_showinputmessage   BOOLEAN,'||unistr('\000a')||
'      vc_prompt             VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_title              VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_error_title        VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_error_txt  ';

s:=s||'        VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      bo_showerrormessage   BOOLEAN,'||unistr('\000a')||
'      vc_formula1           VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_formula2           VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      bo_allowblank         BOOLEAN,'||unistr('\000a')||
'      vc_sqref              VARCHAR2 (32767 CHAR)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_validations_tab IS TABLE OF t_validation_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_sheet_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      sheet_rows_';

s:=s||'tab    t_rows_tab,'||unistr('\000a')||
'      widths_tab_tab    t_widths_tab,'||unistr('\000a')||
'      vc_sheet_name     VARCHAR2 (100),'||unistr('\000a')||
'      pi_freeze_rows    PLS_INTEGER,'||unistr('\000a')||
'      pi_freeze_cols    PLS_INTEGER,'||unistr('\000a')||
'      autofilters_tab   t_autofilters_tab,'||unistr('\000a')||
'      hyperlinks_tab    t_hyperlinks_tab,'||unistr('\000a')||
'      col_fmts_tab      t_col_fmts_tab,'||unistr('\000a')||
'      row_fmts_tab      t_row_fmts_tab,'||unistr('\000a')||
'      comments_tab      t_comments_tab,'||unistr('\000a')||
'      mergecells_tab    ';

s:=s||'t_mergecells_tab,'||unistr('\000a')||
'      validations_tab   t_validations_tab'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_sheets_tab IS TABLE OF t_sheet_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_numfmt_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      pi_numfmtid     PLS_INTEGER,'||unistr('\000a')||
'      vc_formatcode   VARCHAR2 (100)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_numfmts_tab IS TABLE OF t_numfmt_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_fill_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_patterntype   VARCHAR2 (3';

s:=s||'0),'||unistr('\000a')||
'      vc_fgrgb         VARCHAR2 (8)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_fills_tab IS TABLE OF t_fill_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_cellxfs_tab IS TABLE OF t_xf_fmt_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_font_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_font_name   VARCHAR2 (100),'||unistr('\000a')||
'      pi_family      PLS_INTEGER,'||unistr('\000a')||
'      nn_fontsize    NUMBER,'||unistr('\000a')||
'      pi_theme       PLS_INTEGER,'||unistr('\000a')||
'      vc_rgb         VARCHAR2 (8),'||unistr('\000a')||
'  ';

s:=s||'    bo_underline   BOOLEAN,'||unistr('\000a')||
'      bo_italic      BOOLEAN,'||unistr('\000a')||
'      bo_bold        BOOLEAN'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_fonts_tab IS TABLE OF t_font_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_border_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_top_border      VARCHAR2 (17),'||unistr('\000a')||
'      vc_bottom_border   VARCHAR2 (17),'||unistr('\000a')||
'      vc_left_border     VARCHAR2 (17),'||unistr('\000a')||
'      vc_right_border    VARCHAR2 (17)'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_borders_tab IS TABLE O';

s:=s||'F t_border_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_numfmtindexes_tab IS TABLE OF PLS_INTEGER'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_strings_tab IS TABLE OF PLS_INTEGER'||unistr('\000a')||
'      INDEX BY VARCHAR2 (32767 CHAR);'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_str_ind_tab IS TABLE OF VARCHAR2 (32767 CHAR)'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_defined_name_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      vc_defined_name   VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      vc_defined';

s:=s||'_ref    VARCHAR2 (32767 CHAR),'||unistr('\000a')||
'      pi_sheet          PLS_INTEGER'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_defined_names_tab IS TABLE OF t_defined_name_rec'||unistr('\000a')||
'      INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'   TYPE t_book_rec IS RECORD'||unistr('\000a')||
'   ('||unistr('\000a')||
'      sheets_tab          t_sheets_tab,'||unistr('\000a')||
'      strings_tab         t_strings_tab,'||unistr('\000a')||
'      str_ind_tab         t_str_ind_tab,'||unistr('\000a')||
'      pi_str_cnt          PLS_INTEGER:= 0,'||unistr('\000a')||
'      fonts_tab           t_fonts_tab,'||unistr('\000a')||
'';

s:=s||'      fills_tab           t_fills_tab,'||unistr('\000a')||
'      borders_tab         t_borders_tab,'||unistr('\000a')||
'      numfmts_tab         t_numfmts_tab,'||unistr('\000a')||
'      cellxfs_tab         t_cellxfs_tab,'||unistr('\000a')||
'      numfmtindexes_tab   t_numfmtindexes_tab,'||unistr('\000a')||
'      defined_names_tab   t_defined_names_tab'||unistr('\000a')||
'   );'||unistr('\000a')||
''||unistr('\000a')||
'   /* Globals */'||unistr('\000a')||
'   -- the only global variable (objekt) without prefix and suffix'||unistr('\000a')||
'   workbook                               t_book_rec;'||unistr('\000a')||
''||unistr('\000a')||
'';

s:=s||'   --'||unistr('\000a')||
'   FUNCTION get_workbook'||unistr('\000a')||
'      RETURN t_book_rec'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      RETURN workbook;'||unistr('\000a')||
'   END get_workbook;'||unistr('\000a')||
''||unistr('\000a')||
'   /* Private API */'||unistr('\000a')||
'   /**'||unistr('\000a')||
'   * Procedure concatenates a VARCHAR2 to an CLOB.'||unistr('\000a')||
'   * It uses another VARCHAR2 as a buffer until it reaches 32767 characters.'||unistr('\000a')||
'   * Then it flushes the current buffer to the CLOB and resets the buffer using'||unistr('\000a')||
'   * the actual VARCHAR2 to add.'||unistr('\000a')||
'   * Your final ';

s:=s||'call needs to be done setting p_eof to TRUE in order to'||unistr('\000a')||
'   * flush everything to the CLOB.'||unistr('\000a')||
'   *'||unistr('\000a')||
'   * @param p_clob        The CLOB buffer.'||unistr('\000a')||
'   * @param p_vc_buffer   The intermediate VARCHAR2 buffer. (must be VARCHAR2(32767))'||unistr('\000a')||
'   * @param p_vc_addition The VARCHAR2 value you want to append.'||unistr('\000a')||
'   * @param p_eof         Indicates if complete buffer should be flushed to CLOB.'||unistr('\000a')||
'   */'||unistr('\000a')||
'   PROCEDURE clob_vc_c';

s:=s||'oncat( p_clob IN OUT NOCOPY CLOB'||unistr('\000a')||
'                           , p_vc_buffer IN OUT NOCOPY VARCHAR2'||unistr('\000a')||
'                           , p_vc_addition IN VARCHAR2'||unistr('\000a')||
'                           , p_eof IN BOOLEAN DEFAULT FALSE'||unistr('\000a')||
'                           )'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN '||unistr('\000a')||
'     -- Standard Flow'||unistr('\000a')||
'     IF NVL(LENGTHB(p_vc_buffer), 0) + NVL(LENGTHB(p_vc_addition), 0) < 32767 THEN'||unistr('\000a')||
'       p_vc_buffer := p_vc_buffer || p';

s:=s||'_vc_addition;'||unistr('\000a')||
'     ELSE'||unistr('\000a')||
'       IF p_clob IS NULL THEN'||unistr('\000a')||
'         dbms_lob.createtemporary(p_clob, TRUE);'||unistr('\000a')||
'       END IF;'||unistr('\000a')||
'       dbms_lob.writeappend(p_clob, LENGTH(p_vc_buffer), p_vc_buffer);'||unistr('\000a')||
'       p_vc_buffer := p_vc_addition;'||unistr('\000a')||
'     END IF;'||unistr('\000a')||
'    '||unistr('\000a')||
'     -- Full Flush requested'||unistr('\000a')||
'     IF p_eof THEN'||unistr('\000a')||
'       IF p_clob IS NULL THEN'||unistr('\000a')||
'         p_clob := p_vc_buffer;'||unistr('\000a')||
'       ELSE'||unistr('\000a')||
'         dbms_lob.writeappend(p_cl';

s:=s||'ob, LENGTH(p_vc_buffer), p_vc_buffer);'||unistr('\000a')||
'       END IF;'||unistr('\000a')||
'     p_vc_buffer := NULL;'||unistr('\000a')||
'     END IF;'||unistr('\000a')||
'   END clob_vc_concat;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_sheet_id (p_sheet IN PLS_INTEGER)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      RETURN NVL (p_sheet, workbook.sheets_tab.COUNT);'||unistr('\000a')||
'   END get_sheet_id;'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION alfan_col (p_col PLS_INTEGER)'||unistr('\000a')||
'      RETURN VARCHAR2'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      RETURN CASE'||unistr('\000a')||
'                WH';

s:=s||'EN p_col > 702'||unistr('\000a')||
'                THEN'||unistr('\000a')||
'                      CHR (64 + TRUNC ( (p_col - 27) / 676))'||unistr('\000a')||
'                   || CHR (65 + MOD (TRUNC ( (p_col - 1) / 26) - 1, 26))'||unistr('\000a')||
'                   || CHR (65 + MOD (p_col - 1, 26))'||unistr('\000a')||
'                WHEN p_col > 26'||unistr('\000a')||
'                THEN'||unistr('\000a')||
'                   CHR (64 + TRUNC ( (p_col - 1) / 26)) || CHR (65 + MOD (p_col - 1, 26))'||unistr('\000a')||
'                ELSE'||unistr('\000a')||
'             ';

s:=s||'      CHR (64 + p_col)'||unistr('\000a')||
'             END;'||unistr('\000a')||
'   END alfan_col;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION col_alfan (p_col VARCHAR2)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      RETURN   ASCII (SUBSTR (p_col, -1))'||unistr('\000a')||
'             - 64'||unistr('\000a')||
'             + NVL ( (ASCII (SUBSTR (p_col, -2, 1)) - 64) * 26, 0)'||unistr('\000a')||
'             + NVL ( (ASCII (SUBSTR (p_col, -3, 1)) - 64) * 676, 0);'||unistr('\000a')||
'   END col_alfan;'||unistr('\000a')||
''||unistr('\000a')||
'   -- EMORKLE (2014/02/24): Moved to top, allo';

s:=s||'wing usage in new_sheet'||unistr('\000a')||
'   FUNCTION add_string (p_string VARCHAR2)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_cnt   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      -- MKLEIN (2014/02/24): Fix to handle NULL values'||unistr('\000a')||
'      IF p_string IS NULL AND workbook.strings_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         RETURN 0;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      -- END Fix'||unistr('\000a')||
'      IF workbook.strings_tab.EXISTS (p_string)'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_cnt := workbook.s';

s:=s||'trings_tab (p_string);'||unistr('\000a')||
'      ELSE'||unistr('\000a')||
'         t_cnt := workbook.strings_tab.COUNT;'||unistr('\000a')||
'         workbook.str_ind_tab (t_cnt) := p_string;'||unistr('\000a')||
'         workbook.strings_tab (NVL (p_string, '''')) := t_cnt;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      workbook.pi_str_cnt := workbook.pi_str_cnt + 1;'||unistr('\000a')||
'      RETURN t_cnt;'||unistr('\000a')||
'   END add_string;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE clear_workbook'||unistr('\000a')||
'   IS'||unistr('\000a')||
'      t_row_ind   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      FOR s IN 1 .. workb';

s:=s||'ook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'         WHILE t_row_ind IS NOT NULL'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            workbook.sheets_tab (s).sheet_rows_tab (t_row_ind).delete;'||unistr('\000a')||
'            t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.NEXT (t_row_ind);'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'         workbook.sheets_tab (s).sheet_rows_tab.delete;'||unistr('\000a')||
'         workbook.s';

s:=s||'heets_tab (s).widths_tab_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).autofilters_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).hyperlinks_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).col_fmts_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).row_fmts_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).comments_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s).mergecells_tab.delete;'||unistr('\000a')||
'         workbook.sheets_tab (s)';

s:=s||'.validations_tab.delete;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      workbook.strings_tab.delete;'||unistr('\000a')||
'      workbook.str_ind_tab.delete;'||unistr('\000a')||
'      workbook.fonts_tab.delete;'||unistr('\000a')||
'      workbook.fills_tab.delete;'||unistr('\000a')||
'      workbook.borders_tab.delete;'||unistr('\000a')||
'      workbook.numfmts_tab.delete;'||unistr('\000a')||
'      workbook.cellxfs_tab.delete;'||unistr('\000a')||
'      workbook.defined_names_tab.delete;'||unistr('\000a')||
'      workbook := NULL;'||unistr('\000a')||
'   END;'||unistr('\000a')||
''||unistr('\000a')||
'   --'||unistr('\000a')||
'   FUNCTION new_sheet (p_sheetname VA';

s:=s||'RCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_nr    PLS_INTEGER := workbook.sheets_tab.COUNT + 1;'||unistr('\000a')||
'      t_ind   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      workbook.sheets_tab (t_nr).vc_sheet_name :='||unistr('\000a')||
'         NVL (DBMS_XMLGEN.CONVERT (TRANSLATE (p_sheetname, ''a/\[]*:?'', ''a'')), ''Sheet'' || TO_CHAR (t_nr));'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.strings_tab.COUNT = 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         workbook.pi_str_cnt := 0;'||unistr('\000a')||
'         -- MK';

s:=s||'LEIN (2014/02/24): Insert NULL into strings on known position'||unistr('\000a')||
'         t_ind := add_string (NULL);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.fonts_tab.COUNT = 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_ind := get_font (''Arial'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.fills_tab.COUNT = 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_ind := get_fill (''none'');'||unistr('\000a')||
'         t_ind := get_fill (''gray125'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.borders_tab.COUNT = 0'||unistr('\000a')||
'   ';

s:=s||'   THEN'||unistr('\000a')||
'         t_ind :='||unistr('\000a')||
'            get_border ('''','||unistr('\000a')||
'                        '''','||unistr('\000a')||
'                        '''','||unistr('\000a')||
'                        '''');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      RETURN t_nr;'||unistr('\000a')||
'   END new_sheet;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_col_width (p_sheet PLS_INTEGER, p_col PLS_INTEGER, p_format VARCHAR2)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_width    NUMBER;'||unistr('\000a')||
'      t_nr_chr   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF p_format IS NULL'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         RETUR';

s:=s||'N;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF INSTR (p_format, '';'') > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_nr_chr := LENGTH (TRANSLATE (SUBSTR (p_format, 1, INSTR (p_format, '';'') - 1), ''a\"'', ''a''));'||unistr('\000a')||
'      ELSE'||unistr('\000a')||
'         t_nr_chr := LENGTH (TRANSLATE (p_format, ''a\"'', ''a''));'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_width := TRUNC ( (t_nr_chr * 7 + 5) / 7 * 256) / 256;                                             -- assume default 11 point Calibri'||unistr('\000a')||
''||unistr('\000a')||
' ';

s:=s||'     IF workbook.sheets_tab (p_sheet).widths_tab_tab.EXISTS (p_col)'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         workbook.sheets_tab (p_sheet).widths_tab_tab (p_col) := GREATEST (workbook.sheets_tab (p_sheet).widths_tab_tab (p_col), t_width);'||unistr('\000a')||
'      ELSE'||unistr('\000a')||
'         workbook.sheets_tab (p_sheet).widths_tab_tab (p_col) := GREATEST (t_width, 8.43);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'   END set_col_width;'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION orafmt2excel (p_format VARCHAR';

s:=s||'2 := NULL)'||unistr('\000a')||
'      RETURN VARCHAR2'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_format   VARCHAR2 (1000) := LOWER (SUBSTR (p_format, 1, 1000));'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (REPLACE (t_format, ''HH'', ''hh''), ''hh24'', ''hh''), ''hh12'', ''hh'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (t_format, ''MI'', ''mi''), ''mi'', ''mm'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (REPLACE (t_format, ''AM'', ''~~''), ''PM'', ''~~''), ''~~'', ''AM/PM'');'||unistr('\000a')||
'      t_forma';

s:=s||'t := REPLACE (REPLACE (REPLACE (t_format, ''am'', ''~~''), ''pm'', ''~~''), ''~~'', ''AM/PM'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (t_format, ''day'', ''DAY''), ''DAY'', ''dddd'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (t_format, ''dy'', ''DY''), ''DAY'', ''ddd'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (t_format, ''rr'', ''RR''), ''RR'', ''YY'');'||unistr('\000a')||
'      t_format := REPLACE (REPLACE (t_format, ''month'', ''MONTH''), ''MONTH'', ''mmmm'');'||unistr('\000a')||
'      t_fo';

s:=s||'rmat := REPLACE (REPLACE (t_format, ''mon'', ''MON''), ''MON'', ''mmm'');'||unistr('\000a')||
'      RETURN t_format;'||unistr('\000a')||
'   END orafmt2excel;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION oradatetoexcel (p_value IN DATE)'||unistr('\000a')||
'      RETURN NUMBER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      l_date_diff   NUMBER := 0;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF TRUNC (p_value) >= TO_DATE (''01-01-1900'', ''MM-DD-YYYY'')'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         l_date_diff := 1;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      RETURN (TRUNC (p_value) + l_date_diff) - (TO_DATE (''';

s:=s||'01-01-1900'', ''MM-DD-YYYY'') - 1);'||unistr('\000a')||
'   END oradatetoexcel;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION oranumfmt2excel (p_format VARCHAR2)'||unistr('\000a')||
'      RETURN VARCHAR2'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      l_mso_fmt   VARCHAR2 (255);'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF INSTR (p_format, ''D'') > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         l_mso_fmt := ''.'' || REPLACE (SUBSTR (p_format, INSTR (p_format, ''D'') + 1), ''9'', ''0'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF INSTR (p_format, ''G'') > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         l_mso_fmt := ';

s:=s||'''#,##0'' || l_mso_fmt;'||unistr('\000a')||
'      ELSE'||unistr('\000a')||
'         l_mso_fmt := ''0'' || l_mso_fmt;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      RETURN l_mso_fmt;'||unistr('\000a')||
'   END oranumfmt2excel;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_numfmt (p_format VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_cnt        PLS_INTEGER;'||unistr('\000a')||
'      t_numfmtid   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF p_format IS NULL'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         RETURN 0;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_cnt := workbook.numfmts_tab.C';

s:=s||'OUNT;'||unistr('\000a')||
''||unistr('\000a')||
'      FOR i IN 1 .. t_cnt'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         IF workbook.numfmts_tab (i).vc_formatcode = p_format'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            t_numfmtid := workbook.numfmts_tab (i).pi_numfmtid;'||unistr('\000a')||
'            EXIT;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      IF t_numfmtid IS NULL'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_numfmtid := CASE WHEN t_cnt = 0 THEN 164 ELSE workbook.numfmts_tab (t_cnt).pi_numfmtid + 1 END;'||unistr('\000a')||
'         t_cnt := ';

s:=s||'t_cnt + 1;'||unistr('\000a')||
'         workbook.numfmts_tab (t_cnt).pi_numfmtid := t_numfmtid;'||unistr('\000a')||
'         workbook.numfmts_tab (t_cnt).vc_formatcode := p_format;'||unistr('\000a')||
'         workbook.numfmtindexes_tab (t_numfmtid) := t_cnt;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      RETURN t_numfmtid;'||unistr('\000a')||
'   END get_numfmt;'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_font (p_name         VARCHAR2,'||unistr('\000a')||
'                      p_family       PLS_INTEGER := 2,'||unistr('\000a')||
'                      p_fontsize     ';

s:=s||'NUMBER := 8,'||unistr('\000a')||
'                      p_theme        PLS_INTEGER := 1,'||unistr('\000a')||
'                      p_underline    BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_italic       BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_bold         BOOLEAN := FALSE,'||unistr('\000a')||
'                      p_rgb          VARCHAR2 := NULL                                            -- this is a hex ALPHA Red Green Blue value'||unistr('\000a')||
'                          ';

s:=s||'                           )'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF workbook.fonts_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         FOR f IN 0 .. workbook.fonts_tab.COUNT - 1'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            IF (    workbook.fonts_tab (f).vc_font_name = p_name'||unistr('\000a')||
'                AND workbook.fonts_tab (f).pi_family = p_family'||unistr('\000a')||
'                AND workbook.fonts_tab (f).nn_fontsize = p_f';

s:=s||'ontsize'||unistr('\000a')||
'                AND workbook.fonts_tab (f).pi_theme = p_theme'||unistr('\000a')||
'                AND workbook.fonts_tab (f).bo_underline = p_underline'||unistr('\000a')||
'                AND workbook.fonts_tab (f).bo_italic = p_italic'||unistr('\000a')||
'                AND workbook.fonts_tab (f).bo_bold = p_bold'||unistr('\000a')||
'                AND (workbook.fonts_tab (f).vc_rgb = p_rgb OR (workbook.fonts_tab (f).vc_rgb IS NULL AND p_rgb IS NULL)))'||unistr('\000a')||
'            TH';

s:=s||'EN'||unistr('\000a')||
'               RETURN f;'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_ind := workbook.fonts_tab.COUNT;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).vc_font_name := p_name;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).pi_family := p_family;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).nn_fontsize := p_fontsize;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).pi_theme := p_theme;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).bo_underline := p';

s:=s||'_underline;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).bo_italic := p_italic;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).bo_bold := p_bold;'||unistr('\000a')||
'      workbook.fonts_tab (t_ind).vc_rgb := p_rgb;'||unistr('\000a')||
'      RETURN t_ind;'||unistr('\000a')||
'   END get_font;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_fill (p_patterntype VARCHAR2, p_fgrgb VARCHAR2 := NULL)'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF workbook.fills_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'    ';

s:=s||'     FOR f IN 0 .. workbook.fills_tab.COUNT - 1'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            IF (    workbook.fills_tab (f).vc_patterntype = p_patterntype'||unistr('\000a')||
'                AND NVL (workbook.fills_tab (f).vc_fgrgb, ''x'') = NVL (UPPER (p_fgrgb), ''x''))'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               RETURN f;'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_ind := workbook.fills_tab.COUNT;'||unistr('\000a')||
'      workbook.fills_tab (t_ind).v';

s:=s||'c_patterntype := p_patterntype;'||unistr('\000a')||
'      workbook.fills_tab (t_ind).vc_fgrgb := UPPER (p_fgrgb);'||unistr('\000a')||
'      RETURN t_ind;'||unistr('\000a')||
'   END get_fill;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_border (p_top       VARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_bottom    VARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_left      VARCHAR2 := ''thin'','||unistr('\000a')||
'                        p_right     VARCHAR2 := ''thin'')'||unistr('\000a')||
'      RETURN PLS_INTEGER'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind  ';

s:=s||' PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF workbook.borders_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         FOR b IN 0 .. workbook.borders_tab.COUNT - 1'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            IF (    NVL (workbook.borders_tab (b).vc_top_border, ''x'') = NVL (p_top, ''x'')'||unistr('\000a')||
'                AND NVL (workbook.borders_tab (b).vc_bottom_border, ''x'') = NVL (p_bottom, ''x'')'||unistr('\000a')||
'                AND NVL (workbook.borders_tab (b).vc_left_border, ''x'') = N';

s:=s||'VL (p_left, ''x'')'||unistr('\000a')||
'                AND NVL (workbook.borders_tab (b).vc_right_border, ''x'') = NVL (p_right, ''x''))'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               RETURN b;'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_ind := workbook.borders_tab.COUNT;'||unistr('\000a')||
'      workbook.borders_tab (t_ind).vc_top_border := p_top;'||unistr('\000a')||
'      workbook.borders_tab (t_ind).vc_bottom_border := p_bottom;'||unistr('\000a')||
'      workbook.borders_tab';

s:=s||' (t_ind).vc_left_border := p_left;'||unistr('\000a')||
'      workbook.borders_tab (t_ind).vc_right_border := p_right;'||unistr('\000a')||
'      RETURN t_ind;'||unistr('\000a')||
'   END get_border;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_alignment (p_vertical VARCHAR2 := NULL, p_horizontal VARCHAR2 := NULL, p_wraptext BOOLEAN := NULL)'||unistr('\000a')||
'      RETURN t_alignment_rec'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_rv   t_alignment_rec;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_rv.vc_vertical := p_vertical;'||unistr('\000a')||
'      t_rv.vc_horizontal := p_horiz';

s:=s||'ontal;'||unistr('\000a')||
'      t_rv.bo_wraptext := p_wraptext;'||unistr('\000a')||
'      RETURN t_rv;'||unistr('\000a')||
'   END get_alignment;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION get_xfid (p_sheet        PLS_INTEGER,'||unistr('\000a')||
'                      p_col          PLS_INTEGER,'||unistr('\000a')||
'                      p_row          PLS_INTEGER,'||unistr('\000a')||
'                      p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_fillid       PLS_INTEGE';

s:=s||'R := NULL,'||unistr('\000a')||
'                      p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_alignment    t_alignment_rec := NULL)'||unistr('\000a')||
'      RETURN VARCHAR2'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_cnt      PLS_INTEGER;'||unistr('\000a')||
'      t_xfid     PLS_INTEGER;'||unistr('\000a')||
'      t_xf       t_xf_fmt_rec;'||unistr('\000a')||
'      t_col_xf   t_xf_fmt_rec;'||unistr('\000a')||
'      t_row_xf   t_xf_fmt_rec;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      IF workbook.sheets_tab (p_sheet).col_fmts_tab.EXISTS (p_col)'||unistr('\000a')||
'      THEN'||unistr('\000a')||
' ';

s:=s||'        t_col_xf := workbook.sheets_tab (p_sheet).col_fmts_tab (p_col);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.sheets_tab (p_sheet).row_fmts_tab.EXISTS (p_row)'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_row_xf := workbook.sheets_tab (p_sheet).row_fmts_tab (p_row);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_xf.pi_numfmtid :='||unistr('\000a')||
'         COALESCE (p_numfmtid,'||unistr('\000a')||
'                   t_col_xf.pi_numfmtid,'||unistr('\000a')||
'                   t_row_xf.pi_numfmtid,'||unistr('\000a')||
'        ';

s:=s||'           0);'||unistr('\000a')||
'      t_xf.pi_fontid :='||unistr('\000a')||
'         COALESCE (p_fontid,'||unistr('\000a')||
'                   t_col_xf.pi_fontid,'||unistr('\000a')||
'                   t_row_xf.pi_fontid,'||unistr('\000a')||
'                   0);'||unistr('\000a')||
'      t_xf.pi_fillid :='||unistr('\000a')||
'         COALESCE (p_fillid,'||unistr('\000a')||
'                   t_col_xf.pi_fillid,'||unistr('\000a')||
'                   t_row_xf.pi_fillid,'||unistr('\000a')||
'                   0);'||unistr('\000a')||
'      t_xf.pi_borderid :='||unistr('\000a')||
'         COALESCE (p_borderid,'||unistr('\000a')||
'                   t';

s:=s||'_col_xf.pi_borderid,'||unistr('\000a')||
'                   t_row_xf.pi_borderid,'||unistr('\000a')||
'                   0);'||unistr('\000a')||
'      t_xf.alignment_rec := COALESCE (p_alignment, t_col_xf.alignment_rec, t_row_xf.alignment_rec);'||unistr('\000a')||
''||unistr('\000a')||
'      IF (    t_xf.pi_numfmtid + t_xf.pi_fontid + t_xf.pi_fillid + t_xf.pi_borderid = 0'||unistr('\000a')||
'          AND t_xf.alignment_rec.vc_vertical IS NULL'||unistr('\000a')||
'          AND t_xf.alignment_rec.vc_horizontal IS NULL'||unistr('\000a')||
'          AND NOT ';

s:=s||'NVL (t_xf.alignment_rec.bo_wraptext, FALSE))'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         RETURN '''';'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF t_xf.pi_numfmtid > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         set_col_width (p_sheet, p_col, workbook.numfmts_tab (workbook.numfmtindexes_tab (t_xf.pi_numfmtid)).vc_formatcode);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      t_cnt := workbook.cellxfs_tab.COUNT;'||unistr('\000a')||
''||unistr('\000a')||
'      FOR i IN 1 .. t_cnt'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         IF (    workbook.cellxfs_tab (i).pi_nu';

s:=s||'mfmtid = t_xf.pi_numfmtid'||unistr('\000a')||
'             AND workbook.cellxfs_tab (i).pi_fontid = t_xf.pi_fontid'||unistr('\000a')||
'             AND workbook.cellxfs_tab (i).pi_fillid = t_xf.pi_fillid'||unistr('\000a')||
'             AND workbook.cellxfs_tab (i).pi_borderid = t_xf.pi_borderid'||unistr('\000a')||
'             AND NVL (workbook.cellxfs_tab (i).alignment_rec.vc_vertical, ''x'') = NVL (t_xf.alignment_rec.vc_vertical, ''x'')'||unistr('\000a')||
'             AND NVL (workbook.cellxfs_t';

s:=s||'ab (i).alignment_rec.vc_horizontal, ''x'') = NVL (t_xf.alignment_rec.vc_horizontal, ''x'')'||unistr('\000a')||
'             AND NVL (workbook.cellxfs_tab (i).alignment_rec.bo_wraptext, FALSE) = NVL (t_xf.alignment_rec.bo_wraptext, FALSE))'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            t_xfid := i;'||unistr('\000a')||
'            EXIT;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      IF t_xfid IS NULL'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_cnt := t_cnt + 1;'||unistr('\000a')||
'         t_xfid := t_cnt;'||unistr('\000a')||
'    ';

s:=s||'     workbook.cellxfs_tab (t_cnt) := t_xf;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      RETURN ''s="'' || TO_CHAR (t_xfid) || ''"'';'||unistr('\000a')||
'   END get_xfid;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        NUMBER,'||unistr('\000a')||
'                   p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fillid    ';

s:=s||'   PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).nn_value_id := p_value;'||unistr('\000a')||
'      workbook.sheets_tab (t_sh';

s:=s||'eet).sheet_rows_tab (p_row) (p_col).vc_style_def := NULL;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).vc_style_def :='||unistr('\000a')||
'         get_xfid (t_sheet,'||unistr('\000a')||
'                   p_col,'||unistr('\000a')||
'                   p_row,'||unistr('\000a')||
'                   p_numfmtid,'||unistr('\000a')||
'                   p_fontid,'||unistr('\000a')||
'                   p_fillid,'||unistr('\000a')||
'                   p_borderid,'||unistr('\000a')||
'                   p_alignment);'||unistr('\000a')||
'   END cell;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE';

s:=s||' cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        VARCHAR2,'||unistr('\000a')||
'                   p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_alignment    t_alignment_rec := N';

s:=s||'ULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet       PLS_INTEGER;'||unistr('\000a')||
'      t_alignment   t_alignment_rec := p_alignment;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).nn_value_id := add_string (p_value);'||unistr('\000a')||
''||unistr('\000a')||
'      IF t_alignment.bo_wraptext IS NULL AND INSTR (p_value, CHR (13)) > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'        ';

s:=s||' t_alignment.bo_wraptext := TRUE;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).vc_style_def :='||unistr('\000a')||
'            ''t="s" '''||unistr('\000a')||
'         || get_xfid (t_sheet,'||unistr('\000a')||
'                      p_col,'||unistr('\000a')||
'                      p_row,'||unistr('\000a')||
'                      p_numfmtid,'||unistr('\000a')||
'                      p_fontid,'||unistr('\000a')||
'                      p_fillid,'||unistr('\000a')||
'                      p_borderid,'||unistr('\000a')||
'                      t_al';

s:=s||'ignment);'||unistr('\000a')||
'   END cell;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE cell (p_col          PLS_INTEGER,'||unistr('\000a')||
'                   p_row          PLS_INTEGER,'||unistr('\000a')||
'                   p_value        DATE,'||unistr('\000a')||
'                   p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                   p_a';

s:=s||'lignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                   p_sheet        PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_numfmtid   PLS_INTEGER := p_numfmtid;'||unistr('\000a')||
'      t_sheet      PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
''||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).nn_value_id := oradatetoexcel (p_value);'||unistr('\000a')||
''||unistr('\000a')||
'      IF     t_numfmtid IS NULL'||unistr('\000a')||
'         AND NOT (    workbook.s';

s:=s||'heets_tab (t_sheet).col_fmts_tab.EXISTS (p_col)'||unistr('\000a')||
'                  AND workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).pi_numfmtid IS NOT NULL)'||unistr('\000a')||
'         AND NOT (    workbook.sheets_tab (t_sheet).row_fmts_tab.EXISTS (p_row)'||unistr('\000a')||
'                  AND workbook.sheets_tab (t_sheet).row_fmts_tab (p_row).pi_numfmtid IS NOT NULL)'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         t_numfmtid := get_numfmt (''dd/mm/yyyy'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'';

s:=s||'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).vc_style_def :='||unistr('\000a')||
'         get_xfid (t_sheet,'||unistr('\000a')||
'                   p_col,'||unistr('\000a')||
'                   p_row,'||unistr('\000a')||
'                   t_numfmtid,'||unistr('\000a')||
'                   p_fontid,'||unistr('\000a')||
'                   p_fillid,'||unistr('\000a')||
'                   p_borderid,'||unistr('\000a')||
'                   p_alignment);'||unistr('\000a')||
'   END cell;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE hyperlink (p_col      PLS_INTEGER,'||unistr('\000a')||
'                      ';

s:=s||'  p_row      PLS_INTEGER,'||unistr('\000a')||
'                        p_url      VARCHAR2,'||unistr('\000a')||
'                        p_value    VARCHAR2 := NULL,'||unistr('\000a')||
'                        p_sheet    PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
''||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).nn_value_id := add_string (NVL (p_valu';

s:=s||'e, p_url));'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).sheet_rows_tab (p_row) (p_col).vc_style_def :='||unistr('\000a')||
'            ''t="s" '''||unistr('\000a')||
'         || get_xfid (t_sheet,'||unistr('\000a')||
'                      p_col,'||unistr('\000a')||
'                      p_row,'||unistr('\000a')||
'                      '''','||unistr('\000a')||
'                      get_font (''Calibri'', p_theme => 10, p_underline => TRUE));'||unistr('\000a')||
'      t_ind := workbook.sheets_tab (t_sheet).hyperlinks_tab.COUNT + 1;'||unistr('\000a')||
'      workbook.sh';

s:=s||'eets_tab (t_sheet).hyperlinks_tab (t_ind).vc_cell := alfan_col (p_col) || TO_CHAR (p_row);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).hyperlinks_tab (t_ind).vc_url := p_url;'||unistr('\000a')||
'   END hyperlink;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE comment (p_col       PLS_INTEGER,'||unistr('\000a')||
'                      p_row       PLS_INTEGER,'||unistr('\000a')||
'                      p_text      VARCHAR2,'||unistr('\000a')||
'                      p_author    VARCHAR2 := NULL,'||unistr('\000a')||
'                      p_';

s:=s||'width     PLS_INTEGER := 150,'||unistr('\000a')||
'                      p_height    PLS_INTEGER := 100,'||unistr('\000a')||
'                      p_sheet     PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      t_ind := workbook.sheets_tab (t_sheet).comments_tab.COUNT + 1;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).comments_tab (t_ind).pi_row_nr := p_row;'||unistr('\000a')||
' ';

s:=s||'     workbook.sheets_tab (t_sheet).comments_tab (t_ind).pi_column_nr := p_col;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).comments_tab (t_ind).vc_text := DBMS_XMLGEN.CONVERT (p_text);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).comments_tab (t_ind).vc_author := DBMS_XMLGEN.CONVERT (p_author);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).comments_tab (t_ind).pi_width := p_width;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).comment';

s:=s||'s_tab (t_ind).pi_height := p_height;'||unistr('\000a')||
'   END comment;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE mergecells (p_tl_col    PLS_INTEGER                                                                                 -- top left'||unistr('\000a')||
'                                                ,'||unistr('\000a')||
'                         p_tl_row    PLS_INTEGER,'||unistr('\000a')||
'                         p_br_col    PLS_INTEGER                                                         ';

s:=s||'                    -- bottom right'||unistr('\000a')||
'                                                ,'||unistr('\000a')||
'                         p_br_row    PLS_INTEGER,'||unistr('\000a')||
'                         p_sheet     PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      t_ind := workbook.sheets_tab (t_sheet).mergecells_tab.COUNT + 1;'||unistr('\000a')||
'      workbook.sheets';

s:=s||'_tab (t_sheet).mergecells_tab (t_ind) :='||unistr('\000a')||
'         alfan_col (p_tl_col) || TO_CHAR (p_tl_row) || '':'' || alfan_col (p_br_col) || TO_CHAR (p_br_row);'||unistr('\000a')||
'   END mergecells;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE add_validation (p_type           VARCHAR2,'||unistr('\000a')||
'                             p_sqref          VARCHAR2,'||unistr('\000a')||
'                             p_style          VARCHAR2 := ''stop''                                               -- stop, w';

wwv_flow_api.create_install_script(
  p_id => 12970817891104075 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Install XLSX Builder Package Body',
  p_sequence=> 65,
  p_script_type=> 'INSTALL',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||'arning, information'||unistr('\000a')||
'                                                                ,'||unistr('\000a')||
'                             p_formula1       VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_formula2       VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_title          VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_prompt         VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_show_error     BOOLEAN := F';

s:=s||'ALSE,'||unistr('\000a')||
'                             p_error_title    VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_error_txt      VARCHAR2 := NULL,'||unistr('\000a')||
'                             p_sheet          PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      t_ind := workbook.sheets_tab (t_sheet).validations_tab.COUNT + 1;'||unistr('\000a')||
'      workboo';

s:=s||'k.sheets_tab (t_sheet).validations_tab (t_ind).vc_validation_type := p_type;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_errorstyle := p_style;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_sqref := p_sqref;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_formula1 := p_formula1;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_error_';

s:=s||'title := p_error_title;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_error_txt := p_error_txt;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_title := p_title;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).vc_prompt := p_prompt;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).validations_tab (t_ind).bo_showerrormessage := p_show_error;'||unistr('\000a')||
'   END add_validation;'||unistr('\000a')||
''||unistr('\000a')||
'  ';

s:=s||' PROCEDURE list_validation (p_sqref_col      PLS_INTEGER,'||unistr('\000a')||
'                              p_sqref_row      PLS_INTEGER,'||unistr('\000a')||
'                              p_tl_col         PLS_INTEGER                                                                       -- top left'||unistr('\000a')||
'                                                          ,'||unistr('\000a')||
'                              p_tl_row         PLS_INTEGER,'||unistr('\000a')||
'                     ';

s:=s||'         p_br_col         PLS_INTEGER                                                                   -- bottom right'||unistr('\000a')||
'                                                          ,'||unistr('\000a')||
'                              p_br_row         PLS_INTEGER,'||unistr('\000a')||
'                              p_style          VARCHAR2 := ''stop''                                              -- stop, warning, information'||unistr('\000a')||
'                   ';

s:=s||'                                              ,'||unistr('\000a')||
'                              p_title          VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_prompt         VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_show_error     BOOLEAN := FALSE,'||unistr('\000a')||
'                              p_error_title    VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_error_txt      VARCHAR2 := NULL,'||unistr('\000a')||
'                           ';

s:=s||'   p_sheet          PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      add_validation ('||unistr('\000a')||
'         ''list'','||unistr('\000a')||
'         alfan_col (p_sqref_col) || TO_CHAR (p_sqref_row),'||unistr('\000a')||
'         p_style         => LOWER (p_style),'||unistr('\000a')||
'         p_formula1      =>    ''$'''||unistr('\000a')||
'                            || alfan_col (p_tl_col)'||unistr('\000a')||
'                            || ''$'''||unistr('\000a')||
'                            || TO_CHAR (p_tl_row)'||unistr('\000a')||
'                            ';

s:=s||'|| '':$'''||unistr('\000a')||
'                            || alfan_col (p_br_col)'||unistr('\000a')||
'                            || ''$'''||unistr('\000a')||
'                            || TO_CHAR (p_br_row),'||unistr('\000a')||
'         p_title         => p_title,'||unistr('\000a')||
'         p_prompt        => p_prompt,'||unistr('\000a')||
'         p_show_error    => p_show_error,'||unistr('\000a')||
'         p_error_title   => p_error_title,'||unistr('\000a')||
'         p_error_txt     => p_error_txt,'||unistr('\000a')||
'         p_sheet         => p_sheet);'||unistr('\000a')||
'   END list_val';

s:=s||'idation;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE list_validation (p_sqref_col       PLS_INTEGER,'||unistr('\000a')||
'                              p_sqref_row       PLS_INTEGER,'||unistr('\000a')||
'                              p_defined_name    VARCHAR2,'||unistr('\000a')||
'                              p_style           VARCHAR2 := ''stop''                                             -- stop, warning, information'||unistr('\000a')||
'                                                                  ,'||unistr('\000a')||
' ';

s:=s||'                             p_title           VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_prompt          VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_show_error      BOOLEAN := FALSE,'||unistr('\000a')||
'                              p_error_title     VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_error_txt       VARCHAR2 := NULL,'||unistr('\000a')||
'                              p_sheet           PLS_INTEGER := NULL)'||unistr('\000a')||
'  ';

s:=s||' AS'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      add_validation (''list'','||unistr('\000a')||
'                      alfan_col (p_sqref_col) || TO_CHAR (p_sqref_row),'||unistr('\000a')||
'                      p_style         => LOWER (p_style),'||unistr('\000a')||
'                      p_formula1      => p_defined_name,'||unistr('\000a')||
'                      p_title         => p_title,'||unistr('\000a')||
'                      p_prompt        => p_prompt,'||unistr('\000a')||
'                      p_show_error    => p_show_error,'||unistr('\000a')||
'              ';

s:=s||'        p_error_title   => p_error_title,'||unistr('\000a')||
'                      p_error_txt     => p_error_txt,'||unistr('\000a')||
'                      p_sheet         => TO_CHAR (p_sheet));'||unistr('\000a')||
'   END list_validation;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE defined_name (p_tl_col        PLS_INTEGER                                                                           -- top left'||unistr('\000a')||
'                                                      ,'||unistr('\000a')||
'                     ';

s:=s||'      p_tl_row        PLS_INTEGER,'||unistr('\000a')||
'                           p_br_col        PLS_INTEGER                                                                       -- bottom right'||unistr('\000a')||
'                                                      ,'||unistr('\000a')||
'                           p_br_row        PLS_INTEGER,'||unistr('\000a')||
'                           p_name          VARCHAR2,'||unistr('\000a')||
'                           p_sheet         PLS_INTEGER := N';

s:=s||'ULL,'||unistr('\000a')||
'                           p_localsheet    PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      t_ind := workbook.defined_names_tab.COUNT + 1;'||unistr('\000a')||
'      workbook.defined_names_tab (t_ind).vc_defined_name := p_name;'||unistr('\000a')||
'      workbook.defined_names_tab (t_ind).vc_defined_ref :='||unistr('\000a')||
'            ''Sheet'''||unistr('\000a')||
'         || TO_CH';

s:=s||'AR (t_sheet)'||unistr('\000a')||
'         || ''!$'''||unistr('\000a')||
'         || alfan_col (p_tl_col)'||unistr('\000a')||
'         || ''$'''||unistr('\000a')||
'         || TO_CHAR (p_tl_row)'||unistr('\000a')||
'         || '':$'''||unistr('\000a')||
'         || alfan_col (p_br_col)'||unistr('\000a')||
'         || ''$'''||unistr('\000a')||
'         || TO_CHAR (p_br_row);'||unistr('\000a')||
'      workbook.defined_names_tab (t_ind).pi_sheet := p_localsheet;'||unistr('\000a')||
'   END defined_name;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_column_width (p_col PLS_INTEGER, p_width NUMBER, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'  ';

s:=s||' BEGIN'||unistr('\000a')||
'      workbook.sheets_tab (NVL (p_sheet, workbook.sheets_tab.COUNT)).widths_tab_tab (p_col) := p_width;'||unistr('\000a')||
'   END set_column_width;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_column (p_col          PLS_INTEGER,'||unistr('\000a')||
'                         p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_';

s:=s||'borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                         p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                         p_sheet        PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).pi_numfmtid := p_numfmtid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).pi_fontid := p';

s:=s||'_fontid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).pi_fillid := p_fillid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).pi_borderid := p_borderid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).col_fmts_tab (p_col).alignment_rec := p_alignment;'||unistr('\000a')||
'   END set_column;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_row (p_row          PLS_INTEGER,'||unistr('\000a')||
'                      p_numfmtid     PLS_INTEGER := NULL,'||unistr('\000a')||
'            ';

s:=s||'          p_fontid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_fillid       PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_borderid     PLS_INTEGER := NULL,'||unistr('\000a')||
'                      p_alignment    t_alignment_rec := NULL,'||unistr('\000a')||
'                      p_sheet        PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_shee';

s:=s||'t).row_fmts_tab (p_row).pi_numfmtid := p_numfmtid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).row_fmts_tab (p_row).pi_fontid := p_fontid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).row_fmts_tab (p_row).pi_fillid := p_fillid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).row_fmts_tab (p_row).pi_borderid := p_borderid;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).row_fmts_tab (p_row).alignment_rec := p_alignment;'||unistr('\000a')||
'   END set_row;'||unistr('\000a')||
''||unistr('\000a')||
' ';

s:=s||'  PROCEDURE freeze_rows (p_nr_rows PLS_INTEGER := 1, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_cols := NULL;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_rows := p_nr_rows;'||unistr('\000a')||
'   END freeze_rows;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE freeze_cols (p_nr_cols PLS_INTEGER := 1, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'   A';

s:=s||'S'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_rows := NULL;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_cols := p_nr_cols;'||unistr('\000a')||
'   END freeze_cols;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE freeze_pane (p_col PLS_INTEGER, p_row PLS_INTEGER, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_she';

s:=s||'et);'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_rows := p_row;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).pi_freeze_cols := p_col;'||unistr('\000a')||
'   END freeze_pane;'||unistr('\000a')||
''||unistr('\000a')||
'   PROCEDURE set_autofilter (p_column_start    PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_column_end      PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_row_start       PLS_INTEGER := NULL,'||unistr('\000a')||
'                             p_row_end         P';

s:=s||'LS_INTEGER := NULL,'||unistr('\000a')||
'                             p_sheet           PLS_INTEGER := NULL)'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_ind     PLS_INTEGER;'||unistr('\000a')||
'      t_sheet   PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := get_sheet_id (p_sheet);'||unistr('\000a')||
'      t_ind := 1;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).autofilters_tab (t_ind).pi_column_start := p_column_start;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).autofilters_tab (t_ind).pi_column_end := p_column';

s:=s||'_end;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).autofilters_tab (t_ind).pi_row_start := p_row_start;'||unistr('\000a')||
'      workbook.sheets_tab (t_sheet).autofilters_tab (t_ind).pi_row_end := p_row_end;'||unistr('\000a')||
'      defined_name (p_column_start,'||unistr('\000a')||
'                    p_row_start,'||unistr('\000a')||
'                    p_column_end,'||unistr('\000a')||
'                    p_row_end,'||unistr('\000a')||
'                    ''_xlnm._FilterDatabase'','||unistr('\000a')||
'                    t_sheet,'||unistr('\000a')||
'            ';

s:=s||'        t_sheet - 1);'||unistr('\000a')||
'   END set_autofilter;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION finish'||unistr('\000a')||
'      RETURN BLOB'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_excel                      BLOB;'||unistr('\000a')||
'      t_xxx                        CLOB;'||unistr('\000a')||
'      t_tmp                        VARCHAR2 (32767 CHAR);'||unistr('\000a')||
'      t_str                        VARCHAR2 (32767 CHAR);'||unistr('\000a')||
'      t_c                          NUMBER;'||unistr('\000a')||
'      t_h                          NUMBER;'||unistr('\000a')||
'      t_w                  ';

s:=s||'        NUMBER;'||unistr('\000a')||
'      t_cw                         NUMBER;'||unistr('\000a')||
'      t_cell                       VARCHAR2 (1000 CHAR);'||unistr('\000a')||
'      t_row_ind                    PLS_INTEGER;'||unistr('\000a')||
'      t_col_min                    PLS_INTEGER;'||unistr('\000a')||
'      t_col_max                    PLS_INTEGER;'||unistr('\000a')||
'      t_col_ind                    PLS_INTEGER;'||unistr('\000a')||
'      t_len                        PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      DBMS_LOB.createtemporary (t_e';

s:=s||'xcel, TRUE);'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'||unistr('\000a')||
'<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>'||unistr('\000a')||
'<Default Extension="xml" ContentType="ap';

s:=s||'plication/xml"/>'||unistr('\000a')||
'<Default Extension="vml" ContentType="application/vnd.openxmlformats-officedocument.vmlDrawing"/>'||unistr('\000a')||
'<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp';

s:=s||','||unistr('\000a')||
'            p_vc_addition => ''<Override PartName="/xl/worksheets/sheet'''||unistr('\000a')||
'                          || TO_CHAR (s)'||unistr('\000a')||
'                          || ''.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => '''||unistr('\000a')||
'<Override PartName="/xl';

s:=s||'/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>'||unistr('\000a')||
'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>'||unistr('\000a')||
'<Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>'||unistr('\000a')||
'<Override PartName="/docProps/core.xml" ContentTy';

s:=s||'pe="application/vnd.openxmlformats-package.core-properties+xml"/>'||unistr('\000a')||
'<Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         IF workbook.sheets_tab (s).comments_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'        ';

s:=s||'       p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<Override PartName="/xl/comments'''||unistr('\000a')||
'                             || TO_CHAR (s)'||unistr('\000a')||
'                             || ''.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"/>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'     ';

s:=s||'    p_vc_addition => ''</Types>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''[Content_Types].xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      '||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/pac';

s:=s||'kage/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'||unistr('\000a')||
'<dc:creator>'''||unistr('\000a')||
'                       || SYS_CONTEXT (''userenv'', ''os_user'')'||unistr('\000a')||
'                       || ''</dc:creator>'||unistr('\000a')||
'<cp:lastModifiedBy>'''||unistr('\000a')||
'                       || SYS_CONTEXT (''';

s:=s||'userenv'', ''os_user'')'||unistr('\000a')||
'                       || ''</cp:lastModifiedBy>'||unistr('\000a')||
'<dcterms:created xsi:type="dcterms:W3CDTF">'''||unistr('\000a')||
'                       || TO_CHAR (CURRENT_TIMESTAMP, ''yyyy-mm-dd"T"hh24:mi:ssTZH:TZM'')'||unistr('\000a')||
'                       || ''</dcterms:created>'||unistr('\000a')||
'<dcterms:modified xsi:type="dcterms:W3CDTF">'''||unistr('\000a')||
'                       || TO_CHAR (CURRENT_TIMESTAMP, ''yyyy-mm-dd"T"hh24:mi:ssTZH:TZM'')'||unistr('\000a')||
'                  ';

s:=s||'     || ''</dcterms:modified>'||unistr('\000a')||
'</cp:coreProperties>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''docProps/core.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<Properties xmlns="http://schemas.openxmlformats.org/of';

s:=s||'ficeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">'||unistr('\000a')||
'<Application>Microsoft Excel</Application>'||unistr('\000a')||
'<DocSecurity>0</DocSecurity>'||unistr('\000a')||
'<ScaleCrop>FALSE</ScaleCrop>'||unistr('\000a')||
'<HeadingPairs>'||unistr('\000a')||
'<vt:vector size="2" baseType="variant">'||unistr('\000a')||
'<vt:variant>'||unistr('\000a')||
'<vt:lpstr>Worksheets</vt:lpstr>'||unistr('\000a')||
'</vt:variant>'||unistr('\000a')||
'<vt:variant>'||unistr('\000a')||
'<vt:i4>'''||unistr('\000a')||
'                       || TO_CHAR (workbook';

s:=s||'.sheets_tab.COUNT)'||unistr('\000a')||
'                       || ''</vt:i4>  '||unistr('\000a')||
'</vt:variant>'||unistr('\000a')||
'</vt:vector>'||unistr('\000a')||
'</HeadingPairs>'||unistr('\000a')||
'<TitlesOfParts>'||unistr('\000a')||
'<vt:vector size="'''||unistr('\000a')||
'                       || TO_CHAR (workbook.sheets_tab.COUNT)'||unistr('\000a')||
'                       || ''" baseType="lpstr">'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp';

s:=s||','||unistr('\000a')||
'            p_vc_addition => ''<vt:lpstr>'' || workbook.sheets_tab (s).vc_sheet_name || ''</vt:lpstr>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</vt:vector>'||unistr('\000a')||
'</TitlesOfParts>'||unistr('\000a')||
'<LinksUpToDate>FALSE</LinksUpToDate>'||unistr('\000a')||
'<SharedDoc>FALSE</SharedDoc>'||unistr('\000a')||
'<HyperlinksChanged>FALSE</HyperlinksChanged>'||unistr('\000a')||
'<AppVersion>14.0300</Ap';

s:=s||'pVersion>'||unistr('\000a')||
'</Properties>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''docProps/app.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"';

s:=s||'>'||unistr('\000a')||
'<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>'||unistr('\000a')||
'<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>'||unistr('\000a')||
'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeD';

s:=s||'ocument" Target="xl/workbook.xml"/>'||unistr('\000a')||
'</Relationships>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''_rels/.rels'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'''||unistr('\000a')||
'                       || chr(13) || chr(10) '||unistr('\000a')||
'            ';

s:=s||'           || ''<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'');'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.numfmts_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer ';

s:=s||'  => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<numFmts count="'' || TO_CHAR (workbook.numfmts_tab.COUNT) || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'         FOR n IN 1 .. workbook.numfmts_tab.COUNT'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<numFmt numFmtId="'''||unistr('\000a')||
'                             || TO_CHAR (workbook.numfmts_tab (n).';

s:=s||'pi_numfmtid)'||unistr('\000a')||
'                             || ''" formatCode="'''||unistr('\000a')||
'                             || workbook.numfmts_tab (n).vc_formatcode'||unistr('\000a')||
'                             || ''"/>'');'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</numFmts>'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'        ';

s:=s||' p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<fonts count="'' || TO_CHAR (workbook.fonts_tab.COUNT) || ''" x14ac:knownFonts="1">'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR f IN 0 .. workbook.fonts_tab.COUNT - 1'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<font>'''||unistr('\000a')||
'                          || CASE WHEN workbook.fonts_tab (f).bo_bo';

s:=s||'ld THEN ''<b/>'' END'||unistr('\000a')||
'                          || CASE WHEN workbook.fonts_tab (f).bo_italic THEN ''<i/>'' END'||unistr('\000a')||
'                          || CASE WHEN workbook.fonts_tab (f).bo_underline THEN ''<u/>'' END'||unistr('\000a')||
'                          || ''<sz val="'''||unistr('\000a')||
'                          || TO_CHAR (workbook.fonts_tab (f).nn_fontsize, ''TM9'', ''NLS_NUMERIC_CHARACTERS=.,'')'||unistr('\000a')||
'                          || ''"/>'||unistr('\000a')||
'                 ';

s:=s||'            <color '''||unistr('\000a')||
'                          || CASE'||unistr('\000a')||
'                                WHEN workbook.fonts_tab (f).vc_rgb IS NOT NULL THEN ''rgb="'' || workbook.fonts_tab (f).vc_rgb'||unistr('\000a')||
'                                ELSE ''theme="'' || TO_CHAR (workbook.fonts_tab (f).pi_theme)'||unistr('\000a')||
'                             END'||unistr('\000a')||
'                          || ''"/>'||unistr('\000a')||
'                             <name val="'''||unistr('\000a')||
'                   ';

s:=s||'       || workbook.fonts_tab (f).vc_font_name'||unistr('\000a')||
'                          || ''"/>'||unistr('\000a')||
'                             <family val="'''||unistr('\000a')||
'                          || TO_CHAR (workbook.fonts_tab (f).pi_family)'||unistr('\000a')||
'                          || ''"/>'||unistr('\000a')||
'                             <scheme val="none"/>'||unistr('\000a')||
'                             </font>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'        ';

s:=s||' p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</fonts><fills count="'' || TO_CHAR (workbook.fills_tab.COUNT) || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR f IN 0 .. workbook.fills_tab.COUNT - 1'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<fill><patternFill patternType="'''||unistr('\000a')||
'                          || workbook.fills_tab (f).vc';

s:=s||'_patterntype'||unistr('\000a')||
'                          || ''">'''||unistr('\000a')||
'                          || CASE WHEN workbook.fills_tab (f).vc_fgrgb IS NOT NULL THEN ''<fgColor rgb="'' || workbook.fills_tab (f).vc_fgrgb || ''"/>'' END'||unistr('\000a')||
'                          || ''</patternFill></fill>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</fills>'||unistr('\000a')||
'<bor';

s:=s||'ders count="'' || TO_CHAR (workbook.borders_tab.COUNT) || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR b IN 0 .. workbook.borders_tab.COUNT - 1'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<border>'''||unistr('\000a')||
'                          || CASE'||unistr('\000a')||
'                                WHEN workbook.borders_tab (b).vc_left_border IS NULL THEN ''<left/>'''||unistr('\000a')||
'  ';

s:=s||'                              ELSE ''<left style="'' || workbook.borders_tab (b).vc_left_border || ''"/>'''||unistr('\000a')||
'                             END'||unistr('\000a')||
'                          || CASE'||unistr('\000a')||
'                                WHEN workbook.borders_tab (b).vc_right_border IS NULL THEN ''<right/>'''||unistr('\000a')||
'                                ELSE ''<right style="'' || workbook.borders_tab (b).vc_right_border || ''"/>'''||unistr('\000a')||
'                     ';

s:=s||'        END'||unistr('\000a')||
'                          || CASE'||unistr('\000a')||
'                                WHEN workbook.borders_tab (b).vc_top_border IS NULL THEN ''<top/>'''||unistr('\000a')||
'                                ELSE ''<top style="'' || workbook.borders_tab (b).vc_top_border || ''"/>'''||unistr('\000a')||
'                             END'||unistr('\000a')||
'                          || CASE'||unistr('\000a')||
'                                WHEN workbook.borders_tab (b).vc_bottom_border IS NULL';

s:=s||' THEN ''<bottom/>'''||unistr('\000a')||
'                                ELSE ''<bottom style="'' || workbook.borders_tab (b).vc_bottom_border || ''"/>'''||unistr('\000a')||
'                             END'||unistr('\000a')||
'                          || ''</border>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</borders>'||unistr('\000a')||
'<cellStyleXfs count="1">'||unistr('\000a')||
'<xf numFmtId="0" fontId="0" f';

s:=s||'illId="0" borderId="0"/>'||unistr('\000a')||
'</cellStyleXfs>'||unistr('\000a')||
'<cellXfs count="'' || TO_CHAR (workbook.cellxfs_tab.COUNT + 1) || ''">'||unistr('\000a')||
'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR x IN 1 .. workbook.cellxfs_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<xf numFmtId="'''||unistr('\000a')||
'                       || TO_CHAR ';

s:=s||'(workbook.cellxfs_tab (x).pi_numfmtid)'||unistr('\000a')||
'                       || ''" fontId="'''||unistr('\000a')||
'                       || TO_CHAR (workbook.cellxfs_tab (x).pi_fontid)'||unistr('\000a')||
'                       || ''" fillId="'''||unistr('\000a')||
'                       || TO_CHAR (workbook.cellxfs_tab (x).pi_fillid)'||unistr('\000a')||
'                       || ''" borderId="'''||unistr('\000a')||
'                       || TO_CHAR (workbook.cellxfs_tab (x).pi_borderid)'||unistr('\000a')||
'                       || ''';

s:=s||'">'');'||unistr('\000a')||
''||unistr('\000a')||
'         IF (   workbook.cellxfs_tab (x).alignment_rec.vc_horizontal IS NOT NULL'||unistr('\000a')||
'             OR workbook.cellxfs_tab (x).alignment_rec.vc_vertical IS NOT NULL'||unistr('\000a')||
'             OR workbook.cellxfs_tab (x).alignment_rec.bo_wraptext)'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<alignment'''||unistr('\000a')||
'                       |';

s:=s||'| CASE'||unistr('\000a')||
'                             WHEN workbook.cellxfs_tab (x).alignment_rec.vc_horizontal IS NOT NULL'||unistr('\000a')||
'                             THEN '' horizontal="'' || workbook.cellxfs_tab (x).alignment_rec.vc_horizontal || ''"'''||unistr('\000a')||
'                          END'||unistr('\000a')||
'                       || CASE'||unistr('\000a')||
'                             WHEN workbook.cellxfs_tab (x).alignment_rec.vc_vertical IS NOT NULL'||unistr('\000a')||
'                       ';

s:=s||'      THEN '' vertical="'' || workbook.cellxfs_tab (x).alignment_rec.vc_vertical || ''"'''||unistr('\000a')||
'                          END'||unistr('\000a')||
'                       || CASE WHEN workbook.cellxfs_tab (x).alignment_rec.bo_wraptext'||unistr('\000a')||
'                               THEN '' wrapText="true"'''||unistr('\000a')||
'                          END'||unistr('\000a')||
'                       || ''/>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'';

s:=s||'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''</xf>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</cellXfs>'||unistr('\000a')||
'<cellStyles count="1">'||unistr('\000a')||
'<cellStyle name="Normal" xfId="0" builtinId="0"/>'||unistr('\000a')||
'</cellStyles>'||unistr('\000a')||
'<dxfs count="0"/>'||unistr('\000a')||
'<tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyl';

s:=s||'e="PivotStyleLight16"/>'||unistr('\000a')||
'<extLst>'||unistr('\000a')||
'<ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main">'||unistr('\000a')||
'<x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/>'||unistr('\000a')||
'</ext>'||unistr('\000a')||
'</extLst>'||unistr('\000a')||
'</styleSheet>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''xl/styles.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      '||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'    ';

s:=s||'     p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'||unistr('\000a')||
'<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="9302"/>'||unistr('\000a')||
'<workbookPr date1904="FA';

s:=s||'LSE" defaultThemeVersion="124226"/>'||unistr('\000a')||
'<bookViews>'||unistr('\000a')||
'<workbookView xWindow="120" yWindow="45" windowWidth="19155" windowHeight="4935"/>'||unistr('\000a')||
'</bookViews>'||unistr('\000a')||
'<sheets>'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<sheet name="'''||unistr('\000a')||
'                          || workbook.sheets';

s:=s||'_tab (s).vc_sheet_name'||unistr('\000a')||
'                          || ''" sheetId="'''||unistr('\000a')||
'                          || TO_CHAR (s)'||unistr('\000a')||
'                          || ''" r:id="rId'''||unistr('\000a')||
'                          || TO_CHAR (9 + s)'||unistr('\000a')||
'                          || ''"/>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</sheets>'');'||unistr('\000a')||
''||unistr('\000a')||
'      IF workbook.defi';

s:=s||'ned_names_tab.COUNT > 0'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<definedNames>'');'||unistr('\000a')||
''||unistr('\000a')||
'         FOR s IN 1 .. workbook.defined_names_tab.COUNT'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<definedNa';

s:=s||'me name="'''||unistr('\000a')||
'                             || workbook.defined_names_tab (s).vc_defined_name'||unistr('\000a')||
'                             || ''"'''||unistr('\000a')||
'                             || CASE'||unistr('\000a')||
'                                   WHEN workbook.defined_names_tab (s).pi_sheet IS NOT NULL'||unistr('\000a')||
'                                   THEN '' localSheetId="'' || TO_CHAR (workbook.defined_names_tab (s).pi_sheet) || ''"'''||unistr('\000a')||
'                           ';

s:=s||'     END'||unistr('\000a')||
'                             || ''>'''||unistr('\000a')||
'                             || workbook.defined_names_tab (s).vc_defined_ref'||unistr('\000a')||
'                             || ''</definedName>'');'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</definedNames>'');'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'  ';

s:=s||'       p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<calcPr calcId="144525"/></workbook>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''xl/workbook.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      '||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<a:the';

s:=s||'me xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">'||unistr('\000a')||
'<a:themeElements>'||unistr('\000a')||
'<a:clrScheme name="Office">'||unistr('\000a')||
'<a:dk1>'||unistr('\000a')||
'<a:sysClr val="windowText" lastClr="000000"/>'||unistr('\000a')||
'</a:dk1>'||unistr('\000a')||
'<a:lt1>'||unistr('\000a')||
'<a:sysClr val="window" lastClr="FFFFFF"/>'||unistr('\000a')||
'</a:lt1>'||unistr('\000a')||
'<a:dk2>'||unistr('\000a')||
'<a:srgbClr val="1F497D"/>'||unistr('\000a')||
'</a:dk2>'||unistr('\000a')||
'<a:lt2>'||unistr('\000a')||
'<a:srgbClr val="EEECE1"/>'||unistr('\000a')||
'</a:lt2>'||unistr('\000a')||
'<a:accent1>'||unistr('\000a')||
'<a:srgbClr val="4F81BD"/>'||unistr('\000a')||
'</a:accent1>'||unistr('\000a')||
'<a:acce';

s:=s||'nt2>'||unistr('\000a')||
'<a:srgbClr val="C0504D"/>'||unistr('\000a')||
'</a:accent2>'||unistr('\000a')||
'<a:accent3>'||unistr('\000a')||
'<a:srgbClr val="9BBB59"/>'||unistr('\000a')||
'</a:accent3>'||unistr('\000a')||
'<a:accent4>'||unistr('\000a')||
'<a:srgbClr val="8064A2"/>'||unistr('\000a')||
'</a:accent4>'||unistr('\000a')||
'<a:accent5>'||unistr('\000a')||
'<a:srgbClr val="4BACC6"/>'||unistr('\000a')||
'</a:accent5>'||unistr('\000a')||
'<a:accent6>'||unistr('\000a')||
'<a:srgbClr val="F79646"/>'||unistr('\000a')||
'</a:accent6>'||unistr('\000a')||
'<a:hlink>'||unistr('\000a')||
'<a:srgbClr val="0000FF"/>'||unistr('\000a')||
'</a:hlink>'||unistr('\000a')||
'<a:folHlink>'||unistr('\000a')||
'<a:srgbClr val="800080"/>'||unistr('\000a')||
'</a:folHlink>'||unistr('\000a')||
'</a:clrScheme>'||unistr('\000a')||
'<a:fontScheme name="Office">'||unistr('\000a')||
'<a:major';

s:=s||'Font>'||unistr('\000a')||
'<a:latin typeface="Cambria"/>'||unistr('\000a')||
'<a:ea typeface=""/>'||unistr('\000a')||
'<a:cs typeface=""/>'||unistr('\000a')||
'<a:font script="Jpan" typeface="MS P????"/>'||unistr('\000a')||
'<a:font script="Hang" typeface="?? ??"/>'||unistr('\000a')||
'<a:font script="Hans" typeface="??"/>'||unistr('\000a')||
'<a:font script="Hant" typeface="????"/>'||unistr('\000a')||
'<a:font script="Arab" typeface="Times New Roman"/>'||unistr('\000a')||
'<a:font script="Hebr" typeface="Times New Roman"/>'||unistr('\000a')||
'<a:font script="Thai" typeface="Tahoma"/>'||unistr('\000a')||
'<a:font script="E';

s:=s||'thi" typeface="Nyala"/>'||unistr('\000a')||
'<a:font script="Beng" typeface="Vrinda"/>'||unistr('\000a')||
'<a:font script="Gujr" typeface="Shruti"/>'||unistr('\000a')||
'<a:font script="Khmr" typeface="MoolBoran"/>'||unistr('\000a')||
'<a:font script="Knda" typeface="Tunga"/>'||unistr('\000a')||
'<a:font script="Guru" typeface="Raavi"/>'||unistr('\000a')||
'<a:font script="Cans" typeface="Euphemia"/>'||unistr('\000a')||
'<a:font script="Cher" typeface="Plantagenet Cherokee"/>'||unistr('\000a')||
'<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>'||unistr('\000a')||
'<a:font scr';

wwv_flow_api.append_to_install_script(
  p_id => 12970817891104075 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||'ipt="Tibt" typeface="Microsoft Himalaya"/>'||unistr('\000a')||
'<a:font script="Thaa" typeface="MV Boli"/>'||unistr('\000a')||
'<a:font script="Deva" typeface="Mangal"/>'||unistr('\000a')||
'<a:font script="Telu" typeface="Gautami"/>'||unistr('\000a')||
'<a:font script="Taml" typeface="Latha"/>'||unistr('\000a')||
'<a:font script="Syrc" typeface="Estrangelo Edessa"/>'||unistr('\000a')||
'<a:font script="Orya" typeface="Kalinga"/>'||unistr('\000a')||
'<a:font script="Mlym" typeface="Kartika"/>'||unistr('\000a')||
'<a:font script="Laoo" typeface="DokChampa"/>'||unistr('\000a')||
'<a:f';

s:=s||'ont script="Sinh" typeface="Iskoola Pota"/>'||unistr('\000a')||
'<a:font script="Mong" typeface="Mongolian Baiti"/>'||unistr('\000a')||
'<a:font script="Viet" typeface="Times New Roman"/>'||unistr('\000a')||
'<a:font script="Uigh" typeface="Microsoft Uighur"/>'||unistr('\000a')||
'<a:font script="Geor" typeface="Sylfaen"/>'||unistr('\000a')||
'</a:majorFont>'||unistr('\000a')||
'<a:minorFont>'||unistr('\000a')||
'<a:latin typeface="Calibri"/>'||unistr('\000a')||
'<a:ea typeface=""/>'||unistr('\000a')||
'<a:cs typeface=""/>'||unistr('\000a')||
'<a:font script="Jpan" typeface="MS P????"/>'||unistr('\000a')||
'<a:font script="';

s:=s||'Hang" typeface="?? ??"/>'||unistr('\000a')||
'<a:font script="Hans" typeface="??"/>'||unistr('\000a')||
'<a:font script="Hant" typeface="????"/>'||unistr('\000a')||
'<a:font script="Arab" typeface="Arial"/>'||unistr('\000a')||
'<a:font script="Hebr" typeface="Arial"/>'||unistr('\000a')||
'<a:font script="Thai" typeface="Tahoma"/>'||unistr('\000a')||
'<a:font script="Ethi" typeface="Nyala"/>'||unistr('\000a')||
'<a:font script="Beng" typeface="Vrinda"/>'||unistr('\000a')||
'<a:font script="Gujr" typeface="Shruti"/>'||unistr('\000a')||
'<a:font script="Khmr" typeface="DaunPenh"/>'||unistr('\000a')||
'<a:f';

s:=s||'ont script="Knda" typeface="Tunga"/>'||unistr('\000a')||
'<a:font script="Guru" typeface="Raavi"/>'||unistr('\000a')||
'<a:font script="Cans" typeface="Euphemia"/>'||unistr('\000a')||
'<a:font script="Cher" typeface="Plantagenet Cherokee"/>'||unistr('\000a')||
'<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>'||unistr('\000a')||
'<a:font script="Tibt" typeface="Microsoft Himalaya"/>'||unistr('\000a')||
'<a:font script="Thaa" typeface="MV Boli"/>'||unistr('\000a')||
'<a:font script="Deva" typeface="Mangal"/>'||unistr('\000a')||
'<a:font script="Telu" typefac';

s:=s||'e="Gautami"/>'||unistr('\000a')||
'<a:font script="Taml" typeface="Latha"/>'||unistr('\000a')||
'<a:font script="Syrc" typeface="Estrangelo Edessa"/>'||unistr('\000a')||
'<a:font script="Orya" typeface="Kalinga"/>'||unistr('\000a')||
'<a:font script="Mlym" typeface="Kartika"/>'||unistr('\000a')||
'<a:font script="Laoo" typeface="DokChampa"/>'||unistr('\000a')||
'<a:font script="Sinh" typeface="Iskoola Pota"/>'||unistr('\000a')||
'<a:font script="Mong" typeface="Mongolian Baiti"/>'||unistr('\000a')||
'<a:font script="Viet" typeface="Arial"/>'||unistr('\000a')||
'<a:font script="Uigh"';

s:=s||' typeface="Microsoft Uighur"/>'||unistr('\000a')||
'<a:font script="Geor" typeface="Sylfaen"/>'||unistr('\000a')||
'</a:minorFont>'||unistr('\000a')||
'</a:fontScheme>'||unistr('\000a')||
'<a:fmtScheme name="Office">'||unistr('\000a')||
'<a:fillStyleLst>'||unistr('\000a')||
'<a:solidFill>'||unistr('\000a')||
'<a:schemeClr val="phClr"/>'||unistr('\000a')||
'</a:solidFill>'||unistr('\000a')||
'<a:gradFill rotWithShape="1">'||unistr('\000a')||
'<a:gsLst>'||unistr('\000a')||
'<a:gs pos="0">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:tint val="50000"/>'||unistr('\000a')||
'<a:satMod val="300000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="35000">'||unistr('\000a')||
'<a:schemeClr val="phClr"';

s:=s||'>'||unistr('\000a')||
'<a:tint val="37000"/>'||unistr('\000a')||
'<a:satMod val="300000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="100000">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:tint val="15000"/>'||unistr('\000a')||
'<a:satMod val="350000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'</a:gsLst>'||unistr('\000a')||
'<a:lin ang="16200000" scaled="1"/>'||unistr('\000a')||
'</a:gradFill>'||unistr('\000a')||
'<a:gradFill rotWithShape="1">'||unistr('\000a')||
'<a:gsLst>'||unistr('\000a')||
'<a:gs pos="0">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:shade val="51000"/>'||unistr('\000a')||
'<a:satMod val="130000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'';

s:=s||'<a:gs pos="80000">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:shade val="93000"/>'||unistr('\000a')||
'<a:satMod val="130000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="100000">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:shade val="94000"/>'||unistr('\000a')||
'<a:satMod val="135000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'</a:gsLst>'||unistr('\000a')||
'<a:lin ang="16200000" scaled="0"/>'||unistr('\000a')||
'</a:gradFill>'||unistr('\000a')||
'</a:fillStyleLst>'||unistr('\000a')||
'<a:lnStyleLst>'||unistr('\000a')||
'<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">'||unistr('\000a')||
'<a:solidFill>'||unistr('\000a')||
'<a:schemeCl';

s:=s||'r val="phClr">'||unistr('\000a')||
'<a:shade val="95000"/>'||unistr('\000a')||
'<a:satMod val="105000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:solidFill>'||unistr('\000a')||
'<a:prstDash val="solid"/>'||unistr('\000a')||
'</a:ln>'||unistr('\000a')||
'<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr">'||unistr('\000a')||
'<a:solidFill>'||unistr('\000a')||
'<a:schemeClr val="phClr"/>'||unistr('\000a')||
'</a:solidFill>'||unistr('\000a')||
'<a:prstDash val="solid"/>'||unistr('\000a')||
'</a:ln>'||unistr('\000a')||
'<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr">'||unistr('\000a')||
'<a:solidFill>'||unistr('\000a')||
'<a:schemeClr val="phClr"/>'||unistr('\000a')||
'</a:solidFill>'||unistr('\000a')||
'<a:prstDash val="solid"/>'||unistr('\000a')||
'<';

s:=s||'/a:ln>'||unistr('\000a')||
'</a:lnStyleLst>'||unistr('\000a')||
'<a:effectStyleLst>'||unistr('\000a')||
'<a:effectStyle>'||unistr('\000a')||
'<a:effectLst>'||unistr('\000a')||
'<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0">'||unistr('\000a')||
'<a:srgbClr val="000000">'||unistr('\000a')||
'<a:alpha val="38000"/>'||unistr('\000a')||
'</a:srgbClr>'||unistr('\000a')||
'</a:outerShdw>'||unistr('\000a')||
'</a:effectLst>'||unistr('\000a')||
'</a:effectStyle>'||unistr('\000a')||
'<a:effectStyle>'||unistr('\000a')||
'<a:effectLst>'||unistr('\000a')||
'<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">'||unistr('\000a')||
'<a:srgbClr val="000000">'||unistr('\000a')||
'<a:alpha val="350';

s:=s||'00"/>'||unistr('\000a')||
'</a:srgbClr>'||unistr('\000a')||
'</a:outerShdw>'||unistr('\000a')||
'</a:effectLst>'||unistr('\000a')||
'</a:effectStyle>'||unistr('\000a')||
'<a:effectStyle>'||unistr('\000a')||
'<a:effectLst>'||unistr('\000a')||
'<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">'||unistr('\000a')||
'<a:srgbClr val="000000">'||unistr('\000a')||
'<a:alpha val="35000"/>'||unistr('\000a')||
'</a:srgbClr>'||unistr('\000a')||
'</a:outerShdw>'||unistr('\000a')||
'</a:effectLst>'||unistr('\000a')||
'<a:scene3d>'||unistr('\000a')||
'<a:camera prst="orthographicFront">'||unistr('\000a')||
'<a:rot lat="0" lon="0" rev="0"/>'||unistr('\000a')||
'</a:camera>'||unistr('\000a')||
'<a:lightRig rig="threePt" dir="t">'||unistr('\000a')||
'<a:rot lat=';

s:=s||'"0" lon="0" rev="1200000"/>'||unistr('\000a')||
'</a:lightRig>'||unistr('\000a')||
'</a:scene3d>'||unistr('\000a')||
'<a:sp3d>'||unistr('\000a')||
'<a:bevelT w="63500" h="25400"/>'||unistr('\000a')||
'</a:sp3d>'||unistr('\000a')||
'</a:effectStyle>'||unistr('\000a')||
'</a:effectStyleLst>'||unistr('\000a')||
'<a:bgFillStyleLst>'||unistr('\000a')||
'<a:solidFill>'||unistr('\000a')||
'<a:schemeClr val="phClr"/>'||unistr('\000a')||
'</a:solidFill>'||unistr('\000a')||
'<a:gradFill rotWithShape="1">'||unistr('\000a')||
'<a:gsLst>'||unistr('\000a')||
'<a:gs pos="0">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:tint val="40000"/>'||unistr('\000a')||
'<a:satMod val="350000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="40000">'||unistr('\000a')||
'<a:schemeClr';

s:=s||' val="phClr">'||unistr('\000a')||
'<a:tint val="45000"/>'||unistr('\000a')||
'<a:shade val="99000"/>'||unistr('\000a')||
'<a:satMod val="350000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="100000">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:shade val="20000"/>'||unistr('\000a')||
'<a:satMod val="255000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'</a:gsLst>'||unistr('\000a')||
'<a:path path="circle">'||unistr('\000a')||
'<a:fillToRect l="50000" t="-80000" r="50000" b="180000"/>'||unistr('\000a')||
'</a:path>'||unistr('\000a')||
'</a:gradFill>'||unistr('\000a')||
'<a:gradFill rotWithShape="1">'||unistr('\000a')||
'<a:gsLst>'||unistr('\000a')||
'<a:gs pos="0">'||unistr('\000a')||
'<a:sc';

s:=s||'hemeClr val="phClr">'||unistr('\000a')||
'<a:tint val="80000"/>'||unistr('\000a')||
'<a:satMod val="300000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'<a:gs pos="100000">'||unistr('\000a')||
'<a:schemeClr val="phClr">'||unistr('\000a')||
'<a:shade val="30000"/>'||unistr('\000a')||
'<a:satMod val="200000"/>'||unistr('\000a')||
'</a:schemeClr>'||unistr('\000a')||
'</a:gs>'||unistr('\000a')||
'</a:gsLst>'||unistr('\000a')||
'<a:path path="circle">'||unistr('\000a')||
'<a:fillToRect l="50000" t="50000" r="50000" b="50000"/>'||unistr('\000a')||
'</a:path>'||unistr('\000a')||
'</a:gradFill>'||unistr('\000a')||
'</a:bgFillStyleLst>'||unistr('\000a')||
'</a:fmtScheme>'||unistr('\000a')||
'</a:themeElements>'||unistr('\000a')||
'<a:objectDefaults/>'||unistr('\000a')||
'<a:e';

s:=s||'xtraClrSchemeLst/>'||unistr('\000a')||
'</a:theme>'','||unistr('\000a')||
'         p_eof =>         TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''xl/theme/theme1.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         t_col_min := 16384;'||unistr('\000a')||
'         t_col_max := 1;'||unistr('\000a')||
'         t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'         WHILE t_row_ind IS NOT NULL'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            t';

s:=s||'_col_min := LEAST (t_col_min, workbook.sheets_tab (s).sheet_rows_tab (t_row_ind).FIRST);'||unistr('\000a')||
'            t_col_max := GREATEST (t_col_max, workbook.sheets_tab (s).sheet_rows_tab (t_row_ind).LAST);'||unistr('\000a')||
'            t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.NEXT (t_row_ind);'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_add';

s:=s||'ition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" xmlns:mc="http://schemas.';

s:=s||'openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'||unistr('\000a')||
'<dimension ref="'''||unistr('\000a')||
'                       || alfan_col (t_col_min)'||unistr('\000a')||
'                       || workbook.sheets_tab (s).sheet_rows_tab.FIRST'||unistr('\000a')||
'                       || '':'''||unistr('\000a')||
'                       || alfan_col (t_col_max)'||unistr('\000a')||
'                       || workbook.sheets_t';

s:=s||'ab (s).sheet_rows_tab.LAST'||unistr('\000a')||
'                       || ''"/>'||unistr('\000a')||
'<sheetViews>'||unistr('\000a')||
'<sheetView'''||unistr('\000a')||
'                       || CASE WHEN s = 1 THEN '' tabSelected="1"'' END'||unistr('\000a')||
'                       || '' workbookViewId="0">'');'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).pi_freeze_rows > 0 AND workbook.sheets_tab (s).pi_freeze_cols > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   =';

s:=s||'> t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<pane xSplit="'''||unistr('\000a')||
'                        || TO_CHAR (workbook.sheets_tab (s).pi_freeze_cols)'||unistr('\000a')||
'                        || ''" '''||unistr('\000a')||
'                        || ''ySplit="'''||unistr('\000a')||
'                        || TO_CHAR (workbook.sheets_tab (s).pi_freeze_rows)'||unistr('\000a')||
'                        || ''" '''||unistr('\000a')||
'                        || ''topLeftCell="'''||unistr('\000a')||
'                        || alfan_col (workbook.shee';

s:=s||'ts_tab (s).pi_freeze_cols + 1)'||unistr('\000a')||
'                        || TO_CHAR (workbook.sheets_tab (s).pi_freeze_rows + 1)'||unistr('\000a')||
'                        || ''" '''||unistr('\000a')||
'                        || ''activePane="bottomLeft" state="frozen"/>'');'||unistr('\000a')||
'         ELSE'||unistr('\000a')||
'            IF workbook.sheets_tab (s).pi_freeze_rows > 0'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_';

s:=s||'buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<pane ySplit="'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).pi_freeze_rows)'||unistr('\000a')||
'                                || ''" topLeftCell="A'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).pi_freeze_rows + 1)'||unistr('\000a')||
'                                || ''" activePane="bottomLeft" state="frozen"/>'');'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
''||unistr('\000a')||
'';

s:=s||'            IF workbook.sheets_tab (s).pi_freeze_cols > 0'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<pane xSplit="'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).pi_freeze_cols)'||unistr('\000a')||
'                                || ''" topLeftCell="'''||unistr('\000a')||
'                     ';

s:=s||'           || alfan_col (workbook.sheets_tab (s).pi_freeze_cols + 1)'||unistr('\000a')||
'                                || ''1" activePane="bottomLeft" state="frozen"/>'');'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''</sheetView>'||unistr('\000a')||
'</sheetViews>'||unistr('\000a')||
'<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.';

s:=s||'25"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).widths_tab_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<cols>'');'||unistr('\000a')||
'            t_col_ind := workbook.sheets_tab (s).widths_tab_tab.FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'            WHILE t_col_ind IS NOT NULL'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'      ';

s:=s||'            p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<col min="'''||unistr('\000a')||
'                                || TO_CHAR (t_col_ind)'||unistr('\000a')||
'                                || ''" max="'''||unistr('\000a')||
'                                || TO_CHAR (t_col_ind)'||unistr('\000a')||
'                                || ''" width="'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).widt';

s:=s||'hs_tab_tab (t_col_ind), ''TM9'', ''NLS_NUMERIC_CHARACTERS=.,'')'||unistr('\000a')||
'                                || ''" customWidth="1"/>'');'||unistr('\000a')||
'               t_col_ind := workbook.sheets_tab (s).widths_tab_tab.NEXT (t_col_ind);'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</cols>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'     ';

s:=s||'    clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<sheetData>'');'||unistr('\000a')||
'         t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'         WHILE t_row_ind IS NOT NULL'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<row';

s:=s||' r="'' || t_row_ind || ''" spans="'' || TO_CHAR (t_col_min) || '':'' || TO_CHAR (t_col_max) || ''">'');'||unistr('\000a')||
'            t_col_ind := workbook.sheets_tab (s).sheet_rows_tab (t_row_ind).FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'            WHILE t_col_ind IS NOT NULL'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<c r="'''||unistr('\000a')||
'   ';

s:=s||'                             || alfan_col (t_col_ind)'||unistr('\000a')||
'                                || TO_CHAR (t_row_ind)'||unistr('\000a')||
'                                || ''"'''||unistr('\000a')||
'                                || '' '''||unistr('\000a')||
'                                || workbook.sheets_tab (s).sheet_rows_tab (t_row_ind) (t_col_ind).vc_style_def'||unistr('\000a')||
'                                || ''><v>'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_';

s:=s||'tab (s).sheet_rows_tab (t_row_ind) (t_col_ind).nn_value_id,'||unistr('\000a')||
'                                            ''TM9'','||unistr('\000a')||
'                                            ''NLS_NUMERIC_CHARACTERS=.,'')'||unistr('\000a')||
'                                || ''</v></c>'');'||unistr('\000a')||
''||unistr('\000a')||
'               t_col_ind := workbook.sheets_tab (s).sheet_rows_tab (t_row_ind).NEXT (t_col_ind);'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_cl';

s:=s||'ob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</row>'');'||unistr('\000a')||
'            t_row_ind := workbook.sheets_tab (s).sheet_rows_tab.NEXT (t_row_ind);'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''</sheetData>'');'||unistr('\000a')||
''||unistr('\000a')||
'         FOR a IN 1 .. workbook.sheets_tab (s).autof';

s:=s||'ilters_tab.COUNT'||unistr('\000a')||
'         LOOP'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<autoFilter ref="'''||unistr('\000a')||
'                             || alfan_col (NVL (workbook.sheets_tab (s).autofilters_tab (A).pi_column_start, t_col_min))'||unistr('\000a')||
'                             || TO_CHAR (NVL (workbook.sheets_tab (s).autofilters_tab (a).';

s:=s||'pi_row_start, workbook.sheets_tab (s).sheet_rows_tab.FIRST))'||unistr('\000a')||
'                             || '':'''||unistr('\000a')||
'                             || alfan_col ('||unistr('\000a')||
'                                   COALESCE (workbook.sheets_tab (s).autofilters_tab (a).pi_column_end,'||unistr('\000a')||
'                                             workbook.sheets_tab (s).autofilters_tab (a).pi_column_start,'||unistr('\000a')||
'                                             t_co';

s:=s||'l_max))'||unistr('\000a')||
'                             || TO_CHAR (NVL (workbook.sheets_tab (s).autofilters_tab (A).pi_row_end, workbook.sheets_tab (s).sheet_rows_tab.LAST))'||unistr('\000a')||
'                             || ''"/>'');'||unistr('\000a')||
'         END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).mergecells_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'   ';

s:=s||'            p_vc_addition => ''<mergeCells count="'' || TO_CHAR (workbook.sheets_tab (s).mergecells_tab.COUNT) || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'            FOR m IN 1 .. workbook.sheets_tab (s).mergecells_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<mergeCell ref="'' || workbook.sheets_tab ';

s:=s||'(s).mergecells_tab (m) || ''"/>'');'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</mergeCells>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         --'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).validations_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'             ';

s:=s||'  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<dataValidations count="'' || TO_CHAR (workbook.sheets_tab (s).validations_tab.COUNT) || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'            FOR m IN 1 .. workbook.sheets_tab (s).validations_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<data';

s:=s||'Validation'''||unistr('\000a')||
'                                || '' type="'''||unistr('\000a')||
'                                || workbook.sheets_tab (s).validations_tab (m).vc_validation_type'||unistr('\000a')||
'                                || ''"'''||unistr('\000a')||
'                                || '' errorStyle="'''||unistr('\000a')||
'                                || workbook.sheets_tab (s).validations_tab (m).vc_errorstyle'||unistr('\000a')||
'                                || ''"'''||unistr('\000a')||
'                       ';

s:=s||'         || '' allowBlank="'''||unistr('\000a')||
'                                || CASE WHEN NVL (workbook.sheets_tab (s).validations_tab (m).bo_allowblank, TRUE) THEN ''1'' ELSE ''0'' END'||unistr('\000a')||
'                                || ''"'''||unistr('\000a')||
'                                || '' sqref="'''||unistr('\000a')||
'                                || workbook.sheets_tab (s).validations_tab (m).vc_sqref'||unistr('\000a')||
'                                || ''"'');'||unistr('\000a')||
''||unistr('\000a')||
'               IF wo';

s:=s||'rkbook.sheets_tab (s).validations_tab (m).vc_prompt IS NOT NULL'||unistr('\000a')||
'               THEN'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => '' showInputMessage="1" prompt="'''||unistr('\000a')||
'                                   || workbook.sheets_tab (s).validations_tab (m).vc_prompt '||unistr('\000a')||
'                            ';

s:=s||'       || ''"'');'||unistr('\000a')||
''||unistr('\000a')||
'                  IF workbook.sheets_tab (s).validations_tab (m).vc_title IS NOT NULL'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     clob_vc_concat('||unistr('\000a')||
'                        p_clob        => t_xxx,'||unistr('\000a')||
'                        p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                        p_vc_addition => '' promptTitle="'''||unistr('\000a')||
'                                      || workbook.sheets_tab (s).validations_tab (m';

s:=s||').vc_title'||unistr('\000a')||
'                                      || ''"'');'||unistr('\000a')||
'                  END IF;'||unistr('\000a')||
'               END IF;'||unistr('\000a')||
''||unistr('\000a')||
'               IF workbook.sheets_tab (s).validations_tab (m).bo_showerrormessage'||unistr('\000a')||
'               THEN'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => '' showErrorMessage="1"'');'||unistr('\000a')||
''||unistr('\000a')||
' ';

s:=s||'                 IF workbook.sheets_tab (s).validations_tab (m).vc_error_title IS NOT NULL'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     clob_vc_concat('||unistr('\000a')||
'                        p_clob        => t_xxx,'||unistr('\000a')||
'                        p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                        p_vc_addition => '' errorTitle="'' '||unistr('\000a')||
'                                      || workbook.sheets_tab (s).validations_tab (m).vc_error_t';

s:=s||'itle '||unistr('\000a')||
'                                      || ''"'');'||unistr('\000a')||
'                  END IF;'||unistr('\000a')||
''||unistr('\000a')||
'                  IF workbook.sheets_tab (s).validations_tab (m).vc_error_txt IS NOT NULL'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     clob_vc_concat('||unistr('\000a')||
'                        p_clob        => t_xxx,'||unistr('\000a')||
'                        p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                        p_vc_addition => '' error="'' '||unistr('\000a')||
'                     ';

s:=s||'                 || workbook.sheets_tab (s).validations_tab (m).vc_error_txt '||unistr('\000a')||
'                                      || ''"'');'||unistr('\000a')||
'                  END IF;'||unistr('\000a')||
'               END IF;'||unistr('\000a')||
''||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''>'');'||unistr('\000a')||
''||unistr('\000a')||
'               IF workbook.sheets_tab (s).validations_tab (m).vc_for';

s:=s||'mula1 IS NOT NULL'||unistr('\000a')||
'               THEN'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => ''<formula1>'' '||unistr('\000a')||
'                                   || workbook.sheets_tab (s).validations_tab (m).vc_formula1 '||unistr('\000a')||
'                                   || ''</formula1>'');'||unistr('\000a')||
'               END IF;'||unistr('\000a')||
''||unistr('\000a')||
'             ';

s:=s||'  IF workbook.sheets_tab (s).validations_tab (m).vc_formula2 IS NOT NULL'||unistr('\000a')||
'               THEN'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => ''<formula2>'' '||unistr('\000a')||
'                                   || workbook.sheets_tab (s).validations_tab (m).vc_formula2'||unistr('\000a')||
'                                   ||';

s:=s||' ''</formula2>'');'||unistr('\000a')||
'               END IF;'||unistr('\000a')||
''||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''</dataValidation>'');'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</dataValidations>'');'||unistr('\000a')||
'   ';

s:=s||'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).hyperlinks_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<hyperlinks>'');'||unistr('\000a')||
''||unistr('\000a')||
'            FOR h IN 1 .. workbook.sheets_tab (s).hyperlinks_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => ';

s:=s||'t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<hyperlink ref="'''||unistr('\000a')||
'                                || workbook.sheets_tab (s).hyperlinks_tab (h).vc_cell'||unistr('\000a')||
'                                || ''" r:id="rId'''||unistr('\000a')||
'                                || TO_CHAR (h)'||unistr('\000a')||
'                                || ''"/>'');'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob';

s:=s||'        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</hyperlinks>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).comments_tab.COUNT ';

s:=s||'> 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            -- AMEI, 20141129 Bugfix for'||unistr('\000a')||
'            -- t_xxx := t_xxx || ''<legacyDrawing r:id="rId'' || (workbook.sheets_tab (s).hyperlinks_tab.COUNT + 1) || ''"/>'';'||unistr('\000a')||
'            -- Raised ORA-06502: PL/SQL: numerischer oder Wertefehler,'||unistr('\000a')||
'            -- occurs when a at least on column has a Help Text,'||unistr('\000a')||
'            -- occurs NOT when NONE column has a Help Text at all.'||unistr('\000a')||
'            --';

s:=s||' Bugfix by explicit conversion TO_CHAR(...)'||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<legacyDrawing r:id="rId'' '||unistr('\000a')||
'                             || TO_CHAR (workbook.sheets_tab (s).hyperlinks_tab.COUNT + 1) '||unistr('\000a')||
'                             || ''"/>'');'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_c';

s:=s||'lob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'            p_vc_addition => ''</worksheet>'','||unistr('\000a')||
'            p_eof         => TRUE);'||unistr('\000a')||
'         zip_util_pkg.add_file (t_excel, ''xl/worksheets/sheet'' || TO_CHAR (s) || ''.xml'', t_xxx);'||unistr('\000a')||
'         t_xxx := NULL;'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).hyperlinks_tab.COUNT > 0 OR workbook.sheets_tab (s).comments_tab.COUNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            clo';

s:=s||'b_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'');'||unistr('\000a')||
''||unistr('\000a')||
'            IF workbook.sheets_tab (s).comments_tab.COUNT > 0'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_cl';

s:=s||'ob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<Relationship Id="rId'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).hyperlinks_tab.COUNT + 2)'||unistr('\000a')||
'                                || ''" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments" Target="../comments'''||unistr('\000a')||
'                                || s'||unistr('\000a')||
'     ';

s:=s||'                           || ''.xml"/>'');'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<Relationship Id="rId'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).hyperlinks_tab.COUNT + 1)'||unistr('\000a')||
'                                || ''" Type="http://schemas.openxmlformats.org/officeDocume';

s:=s||'nt/2006/relationships/vmlDrawing" Target="../drawings/vmlDrawing'''||unistr('\000a')||
'                                || TO_CHAR (s)'||unistr('\000a')||
'                                || ''.vml"/>'');'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
''||unistr('\000a')||
'            FOR h IN 1 .. workbook.sheets_tab (s).hyperlinks_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                ';

s:=s||'  p_vc_addition => ''<Relationship Id="rId'''||unistr('\000a')||
'                                || TO_CHAR (h)'||unistr('\000a')||
'                                || ''" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="'''||unistr('\000a')||
'                                || workbook.sheets_tab (s).hyperlinks_tab (h).vc_url'||unistr('\000a')||
'                                || ''" TargetMode="External"/>'');'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'    ';

s:=s||'        clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</Relationships>'','||unistr('\000a')||
'               p_eof         => TRUE);'||unistr('\000a')||
'            zip_util_pkg.add_file (t_excel, ''xl/worksheets/_rels/sheet'' || TO_CHAR (s) || ''.xml.rels'', t_xxx);'||unistr('\000a')||
'            t_xxx := NULL;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         IF workbook.sheets_tab (s).comments_tab.CO';

s:=s||'UNT > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            DECLARE'||unistr('\000a')||
'               cnt          PLS_INTEGER;'||unistr('\000a')||
'               author_ind   st_author;'||unistr('\000a')||
'            BEGIN'||unistr('\000a')||
'               gv_authors_tab.delete;'||unistr('\000a')||
''||unistr('\000a')||
'               FOR c IN 1 .. workbook.sheets_tab (s).comments_tab.COUNT'||unistr('\000a')||
'               LOOP'||unistr('\000a')||
'                  gv_authors_tab (workbook.sheets_tab (s).comments_tab (c).vc_author) := 0;'||unistr('\000a')||
'               END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_';

s:=s||'vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<comments xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">'||unistr('\000a')||
'<authors>'');'||unistr('\000a')||
'               cnt := 0;'||unistr('\000a')||
'               author_ind := gv_authors_tab.FIRST;'||unistr('\000a')||
''||unistr('\000a')||
'               WHILE author_ind IS NOT NULL OR gv_authors_tab.NEXT (autho';

s:=s||'r_ind) IS NOT NULL'||unistr('\000a')||
'               LOOP'||unistr('\000a')||
'                  gv_authors_tab (author_ind) := cnt;'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => ''<author>'' || author_ind || ''</author>'');'||unistr('\000a')||
'                  cnt := cnt + 1;'||unistr('\000a')||
'                  author_ind := gv_authors_tab.NEXT (author_ind);'||unistr('\000a')||
'   ';

s:=s||'            END LOOP;'||unistr('\000a')||
'            END;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</authors><commentList>'');'||unistr('\000a')||
''||unistr('\000a')||
'            FOR c IN 1 .. workbook.sheets_tab (s).comments_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   =>';

s:=s||' t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<comment ref="'''||unistr('\000a')||
'                                || alfan_col (workbook.sheets_tab (s).comments_tab (c).pi_column_nr)'||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_row_nr)'||unistr('\000a')||
'                                || ''" authorId="'''||unistr('\000a')||
'                                || gv_authors_tab (workbook.sheets_tab (s).comments_tab (c).v';

s:=s||'c_author)'||unistr('\000a')||
'                                || ''"><text>'');'||unistr('\000a')||
''||unistr('\000a')||
'               IF workbook.sheets_tab (s).comments_tab (c).vc_author IS NOT NULL'||unistr('\000a')||
'               THEN'||unistr('\000a')||
'                  clob_vc_concat('||unistr('\000a')||
'                     p_clob        => t_xxx,'||unistr('\000a')||
'                     p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                     p_vc_addition => ''<r><rPr><b/><sz val="9"/><color indexed="81"/><rFont val="Tahoma"/><charset v';

s:=s||'al="1"/></rPr><t xml:space="preserve">'''||unistr('\000a')||
'                                   || workbook.sheets_tab (s).comments_tab (c).vc_author'||unistr('\000a')||
'                                   || '':</t></r>'');'||unistr('\000a')||
'               END IF;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''<r><rPr><sz val="9"/><color indexed="81"/><rFont val="Ta';

s:=s||'homa"/><charset val="1"/></rPr><t xml:space="preserve">'''||unistr('\000a')||
'                             || CASE WHEN workbook.sheets_tab (s).comments_tab (c).vc_author IS NOT NULL THEN '''' END'||unistr('\000a')||
'                             || workbook.sheets_tab (s).comments_tab (c).vc_text'||unistr('\000a')||
'                             || ''</t></r></text></comment>'');'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => ';

s:=s||'t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</commentList></comments>'','||unistr('\000a')||
'               p_eof         => TRUE);'||unistr('\000a')||
'            zip_util_pkg.add_file (t_excel, ''xl/comments'' || TO_CHAR (s) || ''.xml'', t_xxx);'||unistr('\000a')||
'            t_xxx := NULL;'||unistr('\000a')||
'            '||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p';

s:=s||'_vc_addition => ''<xml xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel">'||unistr('\000a')||
'<o:shapelayout v:ext="edit"><o:idmap v:ext="edit" data="2"/></o:shapelayout>'||unistr('\000a')||
'<v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe"><v:stroke joinstyle="miter"/><v:path gradientshapeok="t" o:con';

s:=s||'necttype="rect"/></v:shapetype>'');'||unistr('\000a')||
''||unistr('\000a')||
'            FOR c IN 1 .. workbook.sheets_tab (s).comments_tab.COUNT'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<v:shape id="_x0000_s'''||unistr('\000a')||
'                                || TO_CHAR (c)'||unistr('\000a')||
'                                || ''" type="#_x0000_t202"';

s:=s||' style="position:absolute;margin-left:35.25pt;margin-top:3pt;z-index:'''||unistr('\000a')||
'                                || TO_CHAR (c)'||unistr('\000a')||
'                                || '';visibility:hidden;" fillcolor="#ffffe1" o:insetmode="auto">'||unistr('\000a')||
'<v:fill color2="#ffffe1"/><v:shadow on="t" color="black" obscured="t"/><v:path o:connecttype="none"/>'||unistr('\000a')||
'<v:textbox style="mso-direction-alt:auto"><div style="text-align:left"></div></v:te';

s:=s||'xtbox>'||unistr('\000a')||
'<x:ClientData ObjectType="Note"><x:MoveWithCells/><x:SizeWithCells/>'');'||unistr('\000a')||
'               t_w := workbook.sheets_tab (s).comments_tab (c).pi_width;'||unistr('\000a')||
'               t_c := 1;'||unistr('\000a')||
''||unistr('\000a')||
'               LOOP'||unistr('\000a')||
'                  IF workbook.sheets_tab (s).widths_tab_tab.EXISTS (workbook.sheets_tab (s).comments_tab (c).pi_column_nr + t_c)'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     t_cw := 256 * workbook.sheets';

s:=s||'_tab (s).widths_tab_tab (workbook.sheets_tab (s).comments_tab (c).pi_column_nr + t_c);'||unistr('\000a')||
'                     t_cw := TRUNC ( (t_cw + 18) / 256 * 7);                                              -- assume default 11 point Calibri'||unistr('\000a')||
'                  ELSE'||unistr('\000a')||
'                     t_cw := 64;'||unistr('\000a')||
'                  END IF;'||unistr('\000a')||
''||unistr('\000a')||
'                  EXIT WHEN t_w < t_cw;'||unistr('\000a')||
'                  t_c := t_c + 1;'||unistr('\000a')||
'               ';

wwv_flow_api.append_to_install_script(
  p_id => 12970817891104075 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
begin
s:=s||'   t_w := t_w - t_cw;'||unistr('\000a')||
'               END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'               t_h := workbook.sheets_tab (s).comments_tab (c).pi_height;'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'                  p_vc_addition => ''<x:Anchor>'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_column_nr)'||unistr('\000a')||
'                ';

s:=s||'                || '',15,'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_row_nr)'||unistr('\000a')||
'                                || '',30,'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_column_nr + t_c - 1)'||unistr('\000a')||
'                                || '','''||unistr('\000a')||
'                                || TO_CHAR (ROUND (t_w))'||unistr('\000a')||
'                               ';

s:=s||' || '','''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_row_nr + 1 + TRUNC (t_h / 20))'||unistr('\000a')||
'                                || '','''||unistr('\000a')||
'                                || TO_CHAR (MOD (t_h, 20))'||unistr('\000a')||
'                                || ''</x:Anchor>'');'||unistr('\000a')||
'               clob_vc_concat('||unistr('\000a')||
'                  p_clob        => t_xxx,'||unistr('\000a')||
'                  p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         ';

s:=s||'         p_vc_addition => ''<x:AutoFill>FALSE</x:AutoFill><x:Row>'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_row_nr - 1)'||unistr('\000a')||
'                                || ''</x:Row><x:Column>'''||unistr('\000a')||
'                                || TO_CHAR (workbook.sheets_tab (s).comments_tab (c).pi_column_nr - 1)'||unistr('\000a')||
'                                || ''</x:Column></x:ClientData></v:shape>'');';

s:=s||''||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'            clob_vc_concat('||unistr('\000a')||
'               p_clob        => t_xxx,'||unistr('\000a')||
'               p_vc_buffer   => t_tmp,'||unistr('\000a')||
'               p_vc_addition => ''</xml>'','||unistr('\000a')||
'               p_eof         => TRUE);'||unistr('\000a')||
'            zip_util_pkg.add_file (t_excel, ''xl/drawings/vmlDrawing'' || TO_CHAR (s) || ''.vml'', t_xxx);'||unistr('\000a')||
'            t_xxx := NULL;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'   ';

s:=s||'      p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'||unistr('\000a')||
'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'||unistr('\000a')||
'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/>'||unistr('\000a')||
'<Relationship Id="rId2" Typ';

s:=s||'e="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'||unistr('\000a')||
'<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR s IN 1 .. workbook.sheets_tab.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'        ';

s:=s||'    p_vc_addition => ''<Relationship Id="rId'''||unistr('\000a')||
'                          || TO_CHAR (9 + s)'||unistr('\000a')||
'                          || ''" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet'''||unistr('\000a')||
'                          || TO_CHAR (s)'||unistr('\000a')||
'                          || ''.xml"/>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc';

s:=s||'_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</Relationships>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''xl/_rels/workbook.xml.rels'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?><sst xmlns="http://schemas.openxm';

s:=s||'lformats.org/spreadsheetml/2006/main" count="'''||unistr('\000a')||
'                       || workbook.pi_str_cnt'||unistr('\000a')||
'                       || ''" uniqueCount="'''||unistr('\000a')||
'                       || TO_CHAR (workbook.strings_tab.COUNT)'||unistr('\000a')||
'                       || ''">'');'||unistr('\000a')||
''||unistr('\000a')||
'      FOR i IN 0 .. workbook.str_ind_tab.COUNT - 1'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         clob_vc_concat('||unistr('\000a')||
'            p_clob        => t_xxx,'||unistr('\000a')||
'            p_vc_buffer   => t_tmp,'||unistr('\000a')||
'       ';

s:=s||'     p_vc_addition => ''<si><t>'' '||unistr('\000a')||
'                          || DBMS_XMLGEN.CONVERT (SUBSTR (workbook.str_ind_tab (i), 1, 32000))'||unistr('\000a')||
'                          || ''</t></si>'');'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      clob_vc_concat('||unistr('\000a')||
'         p_clob        => t_xxx,'||unistr('\000a')||
'         p_vc_buffer   => t_tmp,'||unistr('\000a')||
'         p_vc_addition => ''</sst>'','||unistr('\000a')||
'         p_eof         => TRUE);'||unistr('\000a')||
'      zip_util_pkg.add_file (t_excel, ''xl/sharedStrings';

s:=s||'.xml'', t_xxx);'||unistr('\000a')||
'      t_xxx := NULL;'||unistr('\000a')||
'      zip_util_pkg.finish_zip (t_excel);'||unistr('\000a')||
'      clear_workbook;'||unistr('\000a')||
'      RETURN t_excel;'||unistr('\000a')||
'   END finish;'||unistr('\000a')||
''||unistr('\000a')||
'   FUNCTION query2sheet (p_sql VARCHAR2, p_column_headers BOOLEAN := TRUE, p_sheet PLS_INTEGER := NULL)'||unistr('\000a')||
'      RETURN BLOB'||unistr('\000a')||
'   AS'||unistr('\000a')||
'      t_sheet       PLS_INTEGER;'||unistr('\000a')||
'      t_c           INTEGER;'||unistr('\000a')||
'      t_col_cnt     INTEGER;'||unistr('\000a')||
'      t_desc_tab    DBMS_SQL.desc_tab2;'||unistr('\000a')||
'    ';

s:=s||'  d_tab         DBMS_SQL.date_table;'||unistr('\000a')||
'      n_tab         DBMS_SQL.number_table;'||unistr('\000a')||
'      v_tab         DBMS_SQL.varchar2_table;'||unistr('\000a')||
'      t_bulk_size   PLS_INTEGER := 200;'||unistr('\000a')||
'      t_r           INTEGER;'||unistr('\000a')||
'      t_cur_row     PLS_INTEGER;'||unistr('\000a')||
'   BEGIN'||unistr('\000a')||
'      t_sheet := COALESCE (p_sheet, new_sheet);'||unistr('\000a')||
'      t_c := DBMS_SQL.open_cursor;'||unistr('\000a')||
'      DBMS_SQL.parse (t_c, p_sql, DBMS_SQL.native);'||unistr('\000a')||
'      DBMS_SQL.describe_colum';

s:=s||'ns2 (t_c, t_col_cnt, t_desc_tab);'||unistr('\000a')||
''||unistr('\000a')||
'      FOR c IN 1 .. t_col_cnt'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         IF p_column_headers'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            cell (c,'||unistr('\000a')||
'                  1,'||unistr('\000a')||
'                  t_desc_tab (c).col_name,'||unistr('\000a')||
'                  p_sheet   => t_sheet);'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         CASE'||unistr('\000a')||
'            WHEN t_desc_tab (c).col_type IN (2, 100, 101)'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               DBMS_SQL.define_array (t_c,'||unistr('\000a')||
'     ';

s:=s||'                                 c,'||unistr('\000a')||
'                                      n_tab,'||unistr('\000a')||
'                                      t_bulk_size,'||unistr('\000a')||
'                                      1);'||unistr('\000a')||
'            WHEN t_desc_tab (c).col_type IN (12,'||unistr('\000a')||
'                                             178,'||unistr('\000a')||
'                                             179,'||unistr('\000a')||
'                                             180,'||unistr('\000a')||
'                           ';

s:=s||'                  181,'||unistr('\000a')||
'                                             231)'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               DBMS_SQL.define_array (t_c,'||unistr('\000a')||
'                                      c,'||unistr('\000a')||
'                                      d_tab,'||unistr('\000a')||
'                                      t_bulk_size,'||unistr('\000a')||
'                                      1);'||unistr('\000a')||
'            WHEN t_desc_tab (c).col_type IN (1,'||unistr('\000a')||
'                                        ';

s:=s||'     8,'||unistr('\000a')||
'                                             9,'||unistr('\000a')||
'                                             96,'||unistr('\000a')||
'                                             112)'||unistr('\000a')||
'            THEN'||unistr('\000a')||
'               DBMS_SQL.define_array (t_c,'||unistr('\000a')||
'                                      c,'||unistr('\000a')||
'                                      v_tab,'||unistr('\000a')||
'                                      t_bulk_size,'||unistr('\000a')||
'                                      1);'||unistr('\000a')||
'      ';

s:=s||'      ELSE'||unistr('\000a')||
'               NULL;'||unistr('\000a')||
'         END CASE;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      t_cur_row := CASE WHEN p_column_headers THEN 2 ELSE 1 END;'||unistr('\000a')||
''||unistr('\000a')||
'      t_r := DBMS_SQL.execute (t_c);'||unistr('\000a')||
''||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'         t_r := DBMS_SQL.fetch_rows (t_c);'||unistr('\000a')||
''||unistr('\000a')||
'         IF t_r > 0'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            FOR c IN 1 .. t_col_cnt'||unistr('\000a')||
'            LOOP'||unistr('\000a')||
'               CASE'||unistr('\000a')||
'                  WHEN t_desc_tab (c).col_type IN (2, 100, 101)'||unistr('\000a')||
'  ';

s:=s||'                THEN'||unistr('\000a')||
'                     DBMS_SQL.COLUMN_VALUE (t_c, c, n_tab);'||unistr('\000a')||
''||unistr('\000a')||
'                     FOR i IN 0 .. t_r - 1'||unistr('\000a')||
'                     LOOP'||unistr('\000a')||
'                        IF n_tab (i + n_tab.FIRST) IS NOT NULL'||unistr('\000a')||
'                        THEN'||unistr('\000a')||
'                           cell (c,'||unistr('\000a')||
'                                 t_cur_row + i,'||unistr('\000a')||
'                                 n_tab (i + n_tab.FIRST),'||unistr('\000a')||
'               ';

s:=s||'                  p_sheet   => t_sheet);'||unistr('\000a')||
'                        END IF;'||unistr('\000a')||
'                     END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'                     n_tab.delete;'||unistr('\000a')||
'                  WHEN t_desc_tab (c).col_type IN (12,'||unistr('\000a')||
'                                                   178,'||unistr('\000a')||
'                                                   179,'||unistr('\000a')||
'                                                   180,'||unistr('\000a')||
'                                     ';

s:=s||'              181,'||unistr('\000a')||
'                                                   231)'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     DBMS_SQL.COLUMN_VALUE (t_c, c, d_tab);'||unistr('\000a')||
''||unistr('\000a')||
'                     FOR i IN 0 .. t_r - 1'||unistr('\000a')||
'                     LOOP'||unistr('\000a')||
'                        IF d_tab (i + d_tab.FIRST) IS NOT NULL'||unistr('\000a')||
'                        THEN'||unistr('\000a')||
'                           cell (c,'||unistr('\000a')||
'                                 t_cur_row +';

s:=s||' i,'||unistr('\000a')||
'                                 d_tab (i + d_tab.FIRST),'||unistr('\000a')||
'                                 p_sheet   => t_sheet);'||unistr('\000a')||
'                        END IF;'||unistr('\000a')||
'                     END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'                     d_tab.delete;'||unistr('\000a')||
'                  WHEN t_desc_tab (c).col_type IN (1,'||unistr('\000a')||
'                                                   8,'||unistr('\000a')||
'                                                   9,'||unistr('\000a')||
'                     ';

s:=s||'                              96,'||unistr('\000a')||
'                                                   112)'||unistr('\000a')||
'                  THEN'||unistr('\000a')||
'                     DBMS_SQL.COLUMN_VALUE (t_c, c, v_tab);'||unistr('\000a')||
''||unistr('\000a')||
'                     FOR i IN 0 .. t_r - 1'||unistr('\000a')||
'                     LOOP'||unistr('\000a')||
'                        IF v_tab (i + v_tab.FIRST) IS NOT NULL'||unistr('\000a')||
'                        THEN'||unistr('\000a')||
'                           cell (c,'||unistr('\000a')||
'                             ';

s:=s||'    t_cur_row + i,'||unistr('\000a')||
'                                 v_tab (i + v_tab.FIRST),'||unistr('\000a')||
'                                 p_sheet   => t_sheet);'||unistr('\000a')||
'                        END IF;'||unistr('\000a')||
'                     END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'                     v_tab.delete;'||unistr('\000a')||
'                  ELSE'||unistr('\000a')||
'                     NULL;'||unistr('\000a')||
'               END CASE;'||unistr('\000a')||
'            END LOOP;'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         EXIT WHEN t_r != t_bulk_size;'||unistr('\000a')||
'         t_cur';

s:=s||'_row := t_cur_row + t_r;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
''||unistr('\000a')||
'      DBMS_SQL.close_cursor (t_c);'||unistr('\000a')||
'      RETURN finish;'||unistr('\000a')||
'   EXCEPTION'||unistr('\000a')||
'      WHEN OTHERS'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'         IF DBMS_SQL.is_open (t_c)'||unistr('\000a')||
'         THEN'||unistr('\000a')||
'            DBMS_SQL.close_cursor (t_c);'||unistr('\000a')||
'         END IF;'||unistr('\000a')||
''||unistr('\000a')||
'         RETURN NULL;'||unistr('\000a')||
'   END query2sheet;'||unistr('\000a')||
'END;'||unistr('\000a')||
'/';

wwv_flow_api.append_to_install_script(
  p_id => 12970817891104075 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_script_clob => s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE OR REPLACE PACKAGE "APEXIR_XLSX_TYPES_PKG" '||unistr('\000a')||
'  AUTHID CURRENT_USER'||unistr('\000a')||
'AS '||unistr('\000a')||
'/**'||unistr('\000a')||
'* Package defines all relevant types for APEXIR XLSX Download'||unistr('\000a')||
'* @headcom'||unistr('\000a')||
'*/'||unistr('\000a')||
''||unistr('\000a')||
'  /** '||unistr('\000a')||
'  * Record with data about a single highlight definition.'||unistr('\000a')||
'  * @param bg_color        Background color to be applied'||unistr('\000a')||
'  * @param font_color      Color to applied to text'||unistr('\000a')||
'  * @param highlight_name  User defined name for highlighting'||unistr('\000a')||
'  * @';

s:=s||'param highlight_sql   SQL clause to check if highlight should be applied'||unistr('\000a')||
'  * @param col_num         Defines the sql column number to check for highlight being active'||unistr('\000a')||
'  * @param affected_column Name of SQL column affected by highlight'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_apex_ir_highlight IS RECORD'||unistr('\000a')||
'    ( bg_color apex_application_page_ir_cond.highlight_row_color%TYPE'||unistr('\000a')||
'    , font_color apex_application_page_ir_cond.highlig';

s:=s||'ht_row_font_color%TYPE'||unistr('\000a')||
'    , highlight_name apex_application_page_ir_cond.condition_name%TYPE'||unistr('\000a')||
'    , highlight_sql apex_application_page_ir_cond.condition_sql%TYPE'||unistr('\000a')||
'    , col_num NUMBER'||unistr('\000a')||
'    , affected_column VARCHAR2(30)'||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Table holding enabled highlights by name */'||unistr('\000a')||
'  TYPE t_apex_ir_highlights IS TABLE OF t_apex_ir_highlight INDEX BY VARCHAR2(30);'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Table holds active highlig';

s:=s||'hts by fetch count */'||unistr('\000a')||
'  TYPE t_apex_ir_active_hl IS TABLE OF t_apex_ir_highlight INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'  /** Table holds order number of aggregate enabled column indexed by column name for a single aggregate type */'||unistr('\000a')||
'  TYPE t_apex_ir_aggregate IS TABLE OF PLS_INTEGER INDEX BY VARCHAR2(32767);'||unistr('\000a')||
''||unistr('\000a')||
'  /*'||unistr('\000a')||
'  * Record of all aggregates using tables indexed by column name.'||unistr('\000a')||
'  * Used as temporary storage befo';

s:=s||'re attaching aggregates to columns.'||unistr('\000a')||
'  * Allows easy check if column is aggregate enabled by using exists.'||unistr('\000a')||
'  * @param sum_cols             Table of all Columns with "Sum"-Aggregation'||unistr('\000a')||
'  * @param avg_cols             Table of all Columns with "Average"-Aggregation'||unistr('\000a')||
'  * @param max_cols             Table of all Columns with "Max"-Aggregation'||unistr('\000a')||
'  * @param min_cols             Table of all Columns with "Min';

s:=s||'"-Aggregation'||unistr('\000a')||
'  * @param median_cols          Table of all Columns with "Median"-Aggregation'||unistr('\000a')||
'  * @param count_cols           Table of all Columns with "Count"-Aggregation'||unistr('\000a')||
'  * @param count_distinct_cols  Table of all Columns with "Count Distinct"-Aggregation'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_apex_ir_aggregates IS RECORD'||unistr('\000a')||
'    ( sum_cols t_apex_ir_aggregate'||unistr('\000a')||
'    , avg_cols t_apex_ir_aggregate'||unistr('\000a')||
'    , max_cols t_apex_ir_aggr';

s:=s||'egate'||unistr('\000a')||
'    , min_cols t_apex_ir_aggregate'||unistr('\000a')||
'    , median_cols t_apex_ir_aggregate'||unistr('\000a')||
'    , count_cols t_apex_ir_aggregate'||unistr('\000a')||
'    , count_distinct_cols t_apex_ir_aggregate    '||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
''||unistr('\000a')||
'  /** '||unistr('\000a')||
'  * Record holds aggregate data attached to an APEX IR column.'||unistr('\000a')||
'  * @param col_num    SQL column number for the aggregate value'||unistr('\000a')||
'  * @param last_value Last seen value of aggregation '||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_apex_ir_col_aggregate';

s:=s||' IS RECORD'||unistr('\000a')||
'    ( col_num PLS_INTEGER'||unistr('\000a')||
'    , last_value NUMBER'||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Table holds defined aggregates per column indexed by aggregate name. */'||unistr('\000a')||
'  TYPE t_apex_ir_col_aggregates IS TABLE OF t_apex_ir_col_aggregate INDEX BY VARCHAR2(30);'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Holds the relevant information about a column in the interactive report.'||unistr('\000a')||
'  * @param report_label      Column heading as defined on intercative rep';

s:=s||'ort'||unistr('\000a')||
'  * @param is_visible        Defines if column is printed in file.'||unistr('\000a')||
'  * @param is_break_col      Set to TRUE if column is used for control break.'||unistr('\000a')||
'  * @param aggregates        All defined aggregates for the column.'||unistr('\000a')||
'  * @param highlight_conds   All highlights defined on column.'||unistr('\000a')||
'  * @param format_mask       Format mask as defined in IR column definition.'||unistr('\000a')||
'  * @param sql_col_num       SQL column num';

s:=s||'ber to retrieve value.'||unistr('\000a')||
'  * @param display_column    Column number in file to show value.'||unistr('\000a')||
'  * @param group_by_function Aggregate Function SQL for Group By View'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_apex_ir_col IS RECORD'||unistr('\000a')||
'    ( ident VARCHAR2(10)'||unistr('\000a')||
'    , report_label apex_application_page_ir_col.report_label%TYPE'||unistr('\000a')||
'    , help_text apex_application_page_ir_col.help_text%TYPE'||unistr('\000a')||
'    , is_visible BOOLEAN'||unistr('\000a')||
'    , is_break_col BOOLEAN :=';

s:=s||' FALSE'||unistr('\000a')||
'    , aggregates t_apex_ir_col_aggregates'||unistr('\000a')||
'    , highlight_conds t_apex_ir_highlights'||unistr('\000a')||
'    , format_mask apex_application_page_ir_col.format_mask%TYPE'||unistr('\000a')||
'    , sql_col_num NUMBER'||unistr('\000a')||
'    , display_column PLS_INTEGER'||unistr('\000a')||
'    , group_by_function apex_application_page_ir_grpby.function_01%TYPE'||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Table holds all APEX IR columns based on the SQL column alias. */'||unistr('\000a')||
'  TYPE t_apex_ir_cols IS TABL';

s:=s||'E OF t_apex_ir_col INDEX BY VARCHAR2(30);'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Stores all used aggregate types for the interactive report by aggregate name */'||unistr('\000a')||
'  TYPE t_apex_ir_active_aggregates IS TABLE OF BOOLEAN INDEX BY VARCHAR2(30);'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Holds general information regarding the interactive report.'||unistr('\000a')||
'  * @param application_id             Application the IR belongs to.'||unistr('\000a')||
'  * @param page_id                    Page ID the I';

s:=s||'R belongs to.'||unistr('\000a')||
'  * @param region_id                  Region ID of the IR region.'||unistr('\000a')||
'  * @param session_id                 Session ID of the request.'||unistr('\000a')||
'  * @param request                    Value of the request variable.'||unistr('\000a')||
'  * @param base_report_id             Report ID for the request.'||unistr('\000a')||
'  * @param report_title               Derived report title.'||unistr('\000a')||
'  * @param report_definition          Report definition as re';

s:=s||'trieved by calling APEX_IR.GET_REPORT function.'||unistr('\000a')||
'  * @param final_sql                  Final statement used to get the data.'||unistr('\000a')||
'  * @param break_def_column           SQL column number of column with break definition.'||unistr('\000a')||
'  * @param aggregates_offset          SQL column offset to calculate aggregate column numbers.'||unistr('\000a')||
'  * @param active_aggregates          All active aggregate types on IR.'||unistr('\000a')||
'  * @param aggregate';

s:=s||'_type_disp_column Display column for aggregate types.'||unistr('\000a')||
'  * @param view_mode                  Current view mode of report'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_apex_ir_info IS RECORD'||unistr('\000a')||
'    ( application_id NUMBER'||unistr('\000a')||
'    , page_id NUMBER'||unistr('\000a')||
'    , region_id NUMBER'||unistr('\000a')||
'    , session_id NUMBER'||unistr('\000a')||
'    , request VARCHAR2(4000)'||unistr('\000a')||
'    , base_report_id NUMBER'||unistr('\000a')||
'    , report_title VARCHAR2(4000)'||unistr('\000a')||
'    , report_definition apex_ir.t_report'||unistr('\000a')||
'    , final_sql';

s:=s||' VARCHAR2(32767)'||unistr('\000a')||
'    , break_def_column PLS_INTEGER'||unistr('\000a')||
'    , aggregates_offset PLS_INTEGER'||unistr('\000a')||
'    , active_aggregates t_apex_ir_active_aggregates'||unistr('\000a')||
'    , aggregate_type_disp_column PLS_INTEGER := 1'||unistr('\000a')||
'    , view_mode VARCHAR2(255)'||unistr('\000a')||
'    , group_by_cols VARCHAR2(4000)'||unistr('\000a')||
'    , group_by_sort VARCHAR2(4000)'||unistr('\000a')||
'    , group_by_funcs VARCHAR2(4000)'||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Holds the selected options and calculated settings fo';

s:=s||'r the XLSX generation.'||unistr('\000a')||
'  * @param show_title            Show header line with report title'||unistr('\000a')||
'  * @param show_filters          Show header lines with filter settings'||unistr('\000a')||
'  * @param show_column_headers   Show column headers before data'||unistr('\000a')||
'  * @param col_hdr_help          Include help text on column headers'||unistr('\000a')||
'  * @param process_highlights    Format data according to highlights'||unistr('\000a')||
'  * @param show_highlights       S';

s:=s||'how header lines with highlight settings, not useful if set without above'||unistr('\000a')||
'  * @param show_aggregates       Process aggregates and show on total lines'||unistr('\000a')||
'  * @param display_column_count  Holds count of displayed columns, used for merged cells in header section'||unistr('\000a')||
'  * @param sheet                 Holds the worksheet reference'||unistr('\000a')||
'  * @param default_font default  Font for printed values'||unistr('\000a')||
'  * @param default_bord';

s:=s||'er_color  Default color if a border is shown'||unistr('\000a')||
'  * @param allow_wrap_text       Switch to allow/disallow word wrap'||unistr('\000a')||
'  * @param original_line_break   The line break character as used in the statement'||unistr('\000a')||
'  * @param replace_line_break    Line break to be used in XLSX file'||unistr('\000a')||
'  * @param default_date_format   Default date format, taken from v$nls_parameters'||unistr('\000a')||
'  * @param append_date_file_name Append current date t';

s:=s||'o file name or not'||unistr('\000a')||
'  * @param requested_view_mode   Interactive Report view mode to use'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_xlsx_options IS RECORD'||unistr('\000a')||
'    ( show_title BOOLEAN'||unistr('\000a')||
'    , show_filters BOOLEAN'||unistr('\000a')||
'    , show_column_headers BOOLEAN'||unistr('\000a')||
'    , col_hdr_help BOOLEAN'||unistr('\000a')||
'    , process_highlights BOOLEAN'||unistr('\000a')||
'    , show_highlights BOOLEAN'||unistr('\000a')||
'    , show_aggregates BOOLEAN'||unistr('\000a')||
'    , display_column_count NUMBER'||unistr('\000a')||
'    , sheet PLS_INTEGER'||unistr('\000a')||
'    , defau';

s:=s||'lt_font VARCHAR2(100)'||unistr('\000a')||
'    , default_border_color VARCHAR2(100)'||unistr('\000a')||
'    , allow_wrap_text BOOLEAN'||unistr('\000a')||
'    , original_line_break VARCHAR2(10)'||unistr('\000a')||
'    , replace_line_break VARCHAR2(10)'||unistr('\000a')||
'    , default_date_format VARCHAR2(100)'||unistr('\000a')||
'    , append_date_file_name BOOLEAN'||unistr('\000a')||
'    , requested_view_mode VARCHAR2(8)'||unistr('\000a')||
'    )'||unistr('\000a')||
'  ;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Holds column information for all selected columns.'||unistr('\000a')||
'  * @param col_name      Column alias as use';

s:=s||'d in SQL statement.'||unistr('\000a')||
'  * @param col_data_type Data type of the column.'||unistr('\000a')||
'  * @param col_type      Internal column type, e.g. DISPLAY, ROW_HIGHLIGHT, BREAK_DEF...'||unistr('\000a')||
'  * @param is_displayed  Defines if column value should be fetched and put into file.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_sql_col_info IS RECORD'||unistr('\000a')||
'    ( col_name VARCHAR2(32767)'||unistr('\000a')||
'    , col_data_type VARCHAR2(30)'||unistr('\000a')||
'    , col_type VARCHAR2(30)'||unistr('\000a')||
'    , is_displayed BOOLEAN';

s:=s||' := FALSE'||unistr('\000a')||
'    );'||unistr('\000a')||
'  '||unistr('\000a')||
'  /** Table of all SQL columns by position in SQL statement */'||unistr('\000a')||
'  TYPE t_sql_col_infos IS TABLE OF t_sql_col_info INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'  /** Table holding control break offset by SQL row count */'||unistr('\000a')||
'  TYPE t_break_rows IS TABLE OF NUMBER INDEX BY PLS_INTEGER;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Holds general information about the opened cursor, including runtime data.'||unistr('\000a')||
'  * @param cursor_id      ID of open';

s:=s||'ed cursor.'||unistr('\000a')||
'  * @param column_count   Amount of selected columns.'||unistr('\000a')||
'  * @param date_tab       Temporary storage for values of DATE columns.'||unistr('\000a')||
'  * @param num_tab        Temporary storage for values of NUMBER columns.'||unistr('\000a')||
'  * @param vc_tab         Temporary storage for values of VARCHAR columns.'||unistr('\000a')||
'  * @param clob_tab       Temporary storage for values of CLOB columns.'||unistr('\000a')||
'  * @param break_rows     Definition when ';

s:=s||'a control break accours including respective offset for further rows.'||unistr('\000a')||
'  * @param prev_break_val Last seen value of break definition column, needed if bulk size matches break.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_cursor_info IS RECORD'||unistr('\000a')||
'    ( cursor_id PLS_INTEGER'||unistr('\000a')||
'    , column_count PLS_INTEGER'||unistr('\000a')||
'    , date_tab dbms_sql.date_table'||unistr('\000a')||
'    , num_tab dbms_sql.number_table'||unistr('\000a')||
'    , vc_tab dbms_sql.varchar2_table'||unistr('\000a')||
'    , clob_tab dbms_sq';

s:=s||'l.clob_table'||unistr('\000a')||
'    , break_rows t_break_rows'||unistr('\000a')||
'    , prev_break_val VARCHAR2(32767)'||unistr('\000a')||
'    );'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Record used to return file and corresponding data.'||unistr('\000a')||
'  * @param file_name The generated file name.'||unistr('\000a')||
'  * @param file_content The generated XLSX file.'||unistr('\000a')||
'  * @param mime_type MIME type to be used for download.'||unistr('\000a')||
'  * @param file_size Size of generated XLSX file.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  TYPE t_returnvalue IS RECORD'||unistr('\000a')||
'    ( file_nam';

s:=s||'e VARCHAR2(255)'||unistr('\000a')||
'    , file_content BLOB'||unistr('\000a')||
'    , mime_type VARCHAR2(255)'||unistr('\000a')||
'    , file_size NUMBER'||unistr('\000a')||
'    , error_encountered BOOLEAN := FALSE'||unistr('\000a')||
'    );'||unistr('\000a')||
'    '||unistr('\000a')||
'END APEXIR_XLSX_TYPES_PKG;'||unistr('\000a')||
'/'||unistr('\000a')||
'    '||unistr('\000a')||
'CREATE OR REPLACE PACKAGE "APEXIR_XLSX_PKG" '||unistr('\000a')||
'  AUTHID CURRENT_USER'||unistr('\000a')||
'AS'||unistr('\000a')||
'/**'||unistr('\000a')||
'* Package prepares and APEX Interactive Report to be downloaded as an XLSX file.<br />'||unistr('\000a')||
'* Takes all user and global settings and hands them over to';

s:=s||' XLSX Builder Package by Anton Scheffer.<br />'||unistr('\000a')||
'* Retrieves generated file, amends file name, mime type and file size.'||unistr('\000a')||
'* @headcom'||unistr('\000a')||
'*/'||unistr('\000a')||
''||unistr('\000a')||
'  /** '||unistr('\000a')||
'  * Retrieve an interactive report as an XLSX file.'||unistr('\000a')||
'  * @param p_ir_region_id        The region ID of the interactive report to convert to XLSX. (derived from APEX context if not set manually)'||unistr('\000a')||
'  * @param p_app_id              Application ID the interactive rep';

s:=s||'ort belongs to. (derived from APEX context if not set manually)'||unistr('\000a')||
'  * @param p_ir_page_id          ID of page on which the interactive report resides. (derived from APEX context if not set manually)'||unistr('\000a')||
'  * @param p_ir_session_id       APEX session from which to take the session variables. (derived from APEX context if not set manually)'||unistr('\000a')||
'  * @param p_ir_request          Request associated with call. (der';

s:=s||'ived from APEX context if not set manually)'||unistr('\000a')||
'  * @param p_ir_view_mode        Sets the interactive report view mode to use.'||unistr('\000a')||
'  *                              Leave NULL to use APEX context.'||unistr('\000a')||
'  * @param p_column_headers      Determines if column headers should be rendered. Default: TRUE'||unistr('\000a')||
'  * @param p_col_hdr_help        Determines if the help text is added as a comment to column headers. Default: TRUE'||unistr('\000a')||
'';

s:=s||'  * @param p_aggregates          Determines if aggregates should be rendered. Default: TRUE'||unistr('\000a')||
'  * @param p_process_highlights  Determines if highlights should be considered to color rows and cells. Default: TRUE'||unistr('\000a')||
'  * @param p_show_report_title   Determines if a report title should be rendered as a headline. Default: TRUE'||unistr('\000a')||
'  * @param p_show_filters        Determines if active filters should be rendered';

s:=s||' as headlines. Default: TRUE'||unistr('\000a')||
'  * @param p_show_highlights     Determines if highlight definitions should be rendered as headlines. Default: TRUE'||unistr('\000a')||
'  * @param p_original_line_break Set to the line break used for normal display of the interactive report. Default: &lt;br /&gt;'||unistr('\000a')||
'  * @param p_replace_line_break  Sets the line break used in the XLSX file, replaces original line break set above. Default: \r';

s:=s||'\n'||unistr('\000a')||
'  * @param p_append_date         Determines if the current date (Format: YYYYMMDD) should be appended to the generated file name. Default: TRUE'||unistr('\000a')||
'  * @return Record Type with file name, generated file, mime type, file size'||unistr('\000a')||
'  */'||unistr('\000a')||
'  FUNCTION apexir2sheet'||unistr('\000a')||
'    ( p_ir_region_id NUMBER := NULL'||unistr('\000a')||
'    , p_app_id NUMBER := NV(''APP_ID'')'||unistr('\000a')||
'    , p_ir_page_id NUMBER := NV(''APP_PAGE_ID'')'||unistr('\000a')||
'    , p_ir_session_id NUMB';

s:=s||'ER := NV(''SESSION'')'||unistr('\000a')||
'    , p_ir_request VARCHAR2 := V(''REQUEST'')'||unistr('\000a')||
'    , p_ir_view_mode VARCHAR2 := NULL'||unistr('\000a')||
'    , p_column_headers BOOLEAN := TRUE'||unistr('\000a')||
'    , p_col_hdr_help BOOLEAN := TRUE'||unistr('\000a')||
'    , p_aggregates IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_process_highlights IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_report_title IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_filters IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_highlights IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_or';

s:=s||'iginal_line_break IN VARCHAR2 := ''<br />'''||unistr('\000a')||
'    , p_replace_line_break IN VARCHAR2 := chr(13) || chr(10)'||unistr('\000a')||
'    , p_append_date IN BOOLEAN := TRUE'||unistr('\000a')||
'    )'||unistr('\000a')||
'  RETURN apexir_xlsx_types_pkg.t_returnvalue;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Download Interactive Report as XLSX file.'||unistr('\000a')||
'  * This is a wrapper for APEXIR2SHEET which immediately presents the file for download.'||unistr('\000a')||
'  */'||unistr('\000a')||
''||unistr('\000a')||
'  PROCEDURE download'||unistr('\000a')||
'    ( p_ir_region_id NUMBER := NULL'||unistr('\000a')||
' ';

s:=s||'   , p_app_id NUMBER := NV(''APP_ID'')'||unistr('\000a')||
'    , p_ir_page_id NUMBER := NV(''APP_PAGE_ID'')'||unistr('\000a')||
'    , p_ir_session_id NUMBER := NV(''SESSION'')'||unistr('\000a')||
'    , p_ir_request VARCHAR2 := V(''REQUEST'')'||unistr('\000a')||
'    , p_ir_view_mode VARCHAR2 := NULL'||unistr('\000a')||
'    , p_column_headers BOOLEAN := TRUE'||unistr('\000a')||
'    , p_col_hdr_help BOOLEAN := TRUE'||unistr('\000a')||
'    , p_aggregates IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_process_highlights IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_report_title IN';

s:=s||' BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_filters IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_show_highlights IN BOOLEAN := TRUE'||unistr('\000a')||
'    , p_original_line_break IN VARCHAR2 := ''<br />'''||unistr('\000a')||
'    , p_replace_line_break IN VARCHAR2 := chr(13) || chr(10)'||unistr('\000a')||
'    , p_append_date IN BOOLEAN := TRUE'||unistr('\000a')||
'    );'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION get_version'||unistr('\000a')||
'    RETURN VARCHAR2;'||unistr('\000a')||
''||unistr('\000a')||
'END APEXIR_XLSX_PKG;'||unistr('\000a')||
''||unistr('\000a')||
'/'||unistr('\000a')||
'    ';

wwv_flow_api.create_install_script(
  p_id => 8197013115722358 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Install APEXIR_XLSX Package Headers',
  p_sequence=> 70,
  p_script_type=> 'INSTALL',
  p_script_clob=> s);
end;
 
 
end;
/

 
begin
 
declare
    s varchar2(32767) := null;
    l_clob clob;
    l_length number := 1;
begin
s:=s||'CREATE OR REPLACE PACKAGE BODY "APEXIR_XLSX_PKG" '||unistr('\000a')||
'AS'||unistr('\000a')||
''||unistr('\000a')||
'  c_version CONSTANT VARCHAR2(5) := ''1.3.0'';'||unistr('\000a')||
'  /** Defines the bulk fetch size used by DBMS_SQL */'||unistr('\000a')||
'  c_bulk_size CONSTANT pls_integer := 200;'||unistr('\000a')||
''||unistr('\000a')||
'  c_col_data_type_vc CONSTANT VARCHAR2(30) := ''VARCHAR'';'||unistr('\000a')||
'  c_col_data_type_num CONSTANT VARCHAR2(30) := ''NUMBER'';'||unistr('\000a')||
'  c_col_data_type_date CONSTANT VARCHAR2(30) := ''DATE'';'||unistr('\000a')||
'  c_col_data_type_clob CONSTANT V';

s:=s||'ARCHAR2(30) := ''CLOB'';'||unistr('\000a')||
'  '||unistr('\000a')||
'  c_ir_group_by_view CONSTANT VARCHAR2(8) := ''GROUP_BY'';'||unistr('\000a')||
'  c_ir_standard_view CONSTANT VARCHAR2(6) := ''REPORT'';'||unistr('\000a')||
''||unistr('\000a')||
'  /** Column type if column is normal display column */'||unistr('\000a')||
'  c_display_column CONSTANT VARCHAR2(30) := ''DISPLAY'';'||unistr('\000a')||
'  /** Column type if column is used to check for row highlight */'||unistr('\000a')||
'  c_row_highlight CONSTANT VARCHAR2(30) := ''ROW_HIGHLIGHT'';'||unistr('\000a')||
'  /** Column type if col';

s:=s||'umn is used to check for column highlight */'||unistr('\000a')||
'  c_column_highlight CONSTANT VARCHAR2(30) := ''COLUMN_HIGHLIGHT'';'||unistr('\000a')||
'  /** Column type if column is used as control break definition */'||unistr('\000a')||
'  c_break_definition CONSTANT VARCHAR2(30) := ''BREAK_DEF'';'||unistr('\000a')||
'  /** Column type if column is holding the value of an aggregation */'||unistr('\000a')||
'  c_aggregate_column CONSTANT VARCHAR2(30) := ''AGGREGATE'';'||unistr('\000a')||
''||unistr('\000a')||
'  /*'||unistr('\000a')||
'  * Standard internal APEX d';

s:=s||'ate format.'||unistr('\000a')||
'  * Used to convert condition expression.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  c_apex_date_fmt CONSTANT VARCHAR2(30) := ''YYYYMMDDHH24MISS'';'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'/** Runtime Variables */'||unistr('\000a')||
''||unistr('\000a')||
'  /** Holds general info on the IR */'||unistr('\000a')||
'  g_apex_ir_info apexir_xlsx_types_pkg.t_apex_ir_info;'||unistr('\000a')||
'  /** Holds the file generation options */'||unistr('\000a')||
'  g_xlsx_options apexir_xlsx_types_pkg.t_xlsx_options;'||unistr('\000a')||
'  /** Holds APEX IR column settings */'||unistr('\000a')||
'  g_col_settings ape';

s:=s||'xir_xlsx_types_pkg.t_apex_ir_cols;'||unistr('\000a')||
'  /** Holds defined row highlights */'||unistr('\000a')||
'  g_row_highlights apexir_xlsx_types_pkg.t_apex_ir_highlights;'||unistr('\000a')||
'  /** Holds all defined column highlights */'||unistr('\000a')||
'  g_col_highlights apexir_xlsx_types_pkg.t_apex_ir_highlights;'||unistr('\000a')||
'  /** Row number of first sql row for current fetch */'||unistr('\000a')||
'  g_current_sql_row PLS_INTEGER := 1;'||unistr('\000a')||
'  /** Row number in spreadsheet to start with for current fetch';

s:=s||' */'||unistr('\000a')||
'  g_current_disp_row PLS_INTEGER := 1;'||unistr('\000a')||
'  /** General info about used cursor */'||unistr('\000a')||
'  g_cursor_info apexir_xlsx_types_pkg.t_cursor_info;'||unistr('\000a')||
'  /** All SQL columns of cursor */'||unistr('\000a')||
'  g_sql_columns apexir_xlsx_types_pkg.t_sql_col_infos;'||unistr('\000a')||
'  /** NLS Numeric Characters derived from database session */'||unistr('\000a')||
'  g_nls_numeric_characters VARCHAR2(2);'||unistr('\000a')||
''||unistr('\000a')||
'  TYPE t_report_cols IS TABLE OF PLS_INTEGER INDEX BY VARCHAR2(4000);'||unistr('\000a')||
' ';

s:=s||' g_report_cols t_report_cols;'||unistr('\000a')||
''||unistr('\000a')||
'/** Support Procedures */'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Retrieve report title and populate global variable.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_report_title_type'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_report_columns apex_application_page_ir_rpt.report_columns%TYPE;'||unistr('\000a')||
'    PROCEDURE transform_rpt_cols'||unistr('\000a')||
'    AS'||unistr('\000a')||
'      l_vc_arr2 apex_application_global.vc_arr2;'||unistr('\000a')||
'      l_null_index_found BOOLEAN := FALSE;'||unistr('\000a')||
'    BEGIN'||unistr('\000a')||
'      l_vc_arr2 := apex';

s:=s||'_util.string_to_table(l_report_columns);'||unistr('\000a')||
'      FOR i IN 1..l_vc_arr2.COUNT'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'        IF l_vc_arr2(i) IS NOT NULL'||unistr('\000a')||
'        THEN'||unistr('\000a')||
'          g_report_cols(l_vc_arr2(i)) := i;'||unistr('\000a')||
'        ELSE'||unistr('\000a')||
'          l_null_index_found := TRUE;'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
'      '||unistr('\000a')||
'      IF l_null_index_found'||unistr('\000a')||
'      THEN'||unistr('\000a')||
'        apex_debug.warn( ''Report Columns inconsistent. Check APEX_APPLICATION_PAGE_IR_RPT.RE';

s:=s||'PORT_COLUMNS for this IR.'' );'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'    END transform_rpt_cols;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    SELECT CASE'||unistr('\000a')||
'             WHEN rpt.report_name IS NOT NULL THEN'||unistr('\000a')||
'               ir.region_name || '' - '' || rpt.report_name'||unistr('\000a')||
'             ELSE'||unistr('\000a')||
'               ir.region_name'||unistr('\000a')||
'           END report_title'||unistr('\000a')||
'         , COALESCE( g_apex_ir_info.view_mode, report_view_mode, c_ir_standard_view ) report_view_mode'||unistr('\000a')||
'         , RTRIM';

s:=s||'(report_columns, '':'')'||unistr('\000a')||
'      INTO g_apex_ir_info.report_title'||unistr('\000a')||
'         , g_apex_ir_info.view_mode'||unistr('\000a')||
'         , l_report_columns'||unistr('\000a')||
'      FROM apex_application_page_ir ir JOIN apex_application_page_ir_rpt rpt'||unistr('\000a')||
'             ON ir.application_id = rpt.application_id'||unistr('\000a')||
'            AND ir.page_id = rpt.page_id'||unistr('\000a')||
'            AND ir.interactive_report_id = rpt.interactive_report_id'||unistr('\000a')||
'     WHERE ir.application_id = g_';

s:=s||'apex_ir_info.application_id'||unistr('\000a')||
'       AND ir.page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'       AND rpt.base_report_id = g_apex_ir_info.base_report_id'||unistr('\000a')||
'       AND rpt.session_id = g_apex_ir_info.session_id'||unistr('\000a')||
'    ;'||unistr('\000a')||
'    transform_rpt_cols;'||unistr('\000a')||
'  END get_report_title_type;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Performs a substitution similar to APEX.'||unistr('\000a')||
'  * Candidate to be replaced by APEX standard function.'||unistr('\000a')||
'  * @param p_data         The original dat';

s:=s||'a.'||unistr('\000a')||
'  * @param p_substitution The APEX variable to be used.'||unistr('\000a')||
'  * @return Original data with substitution performed.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  FUNCTION replace_substitutions(p_data IN VARCHAR2, p_substitution IN VARCHAR2)'||unistr('\000a')||
'    RETURN VARCHAR2'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_retval VARCHAR2(4000) := p_data;'||unistr('\000a')||
'    l_full_sub VARCHAR2(4000) := ''&'' || p_substitution || ''.'';'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    IF INSTR(p_data, l_full_sub) > 0 THEN'||unistr('\000a')||
'      l_retval := REPLA';

s:=s||'CE(l_retval, l_full_sub, v(p_substitution));'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    RETURN l_retval;'||unistr('\000a')||
'  END replace_substitutions;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Retrieve the defined IR columns from APEX dictionary'||unistr('\000a')||
'  * and store in global variable.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_std_columns'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    col_rec apexir_xlsx_types_pkg.t_apex_ir_col;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    -- These column names are static defined, used as reference'||unistr('\000a')||
'    FOR rec IN ( SELECT column_alias';

s:=s||''||unistr('\000a')||
'                      , report_label'||unistr('\000a')||
'                      , display_text_as'||unistr('\000a')||
'                      , format_mask'||unistr('\000a')||
'                      , CASE WHEN display_order > 26'||unistr('\000a')||
'                             THEN chr(trunc((display_order - 1) / 26) + 64)'||unistr('\000a')||
'                             ELSE NULL END'||unistr('\000a')||
'                          || chr(display_order - (trunc((display_order - 1) / 26) * 26) + 64)'||unistr('\000a')||
'                    ';

s:=s||'    AS ident'||unistr('\000a')||
'                      , help_text'||unistr('\000a')||
'                   FROM APEX_APPLICATION_PAGE_IR_COL'||unistr('\000a')||
'                  WHERE page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'                    AND application_id = g_apex_ir_info.application_id'||unistr('\000a')||
'                    AND region_id = g_apex_ir_info.region_id )'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      -- Always take all fields, even if not displayed might be used in filters'||unistr('\000a')||
'      col_rec.report';

s:=s||'_label := rec.report_label;'||unistr('\000a')||
'      col_rec.ident := rec.ident;'||unistr('\000a')||
'      col_rec.is_visible := (rec.display_text_as != ''HIDDEN'' AND g_report_cols.exists(rec.column_alias));'||unistr('\000a')||
'      col_rec.format_mask := replace_substitutions(rec.format_mask, ''APP_DATE_TIME_FORMAT'');'||unistr('\000a')||
'      col_rec.help_text := rec.help_text;'||unistr('\000a')||
'      g_col_settings(rec.column_alias) := col_rec;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'  END get_std_columns;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  ';

s:=s||'* Retrieve column definitions for Group By Mode'||unistr('\000a')||
'  * and store in gloabl variable'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_group_by_def'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    col_rec apexir_xlsx_types_pkg.t_apex_ir_col;'||unistr('\000a')||
'    FUNCTION get_sql( p_function IN VARCHAR2, p_column IN VARCHAR2 )'||unistr('\000a')||
'      RETURN VARCHAR2'||unistr('\000a')||
'    AS'||unistr('\000a')||
'    BEGIN'||unistr('\000a')||
'      RETURN'||unistr('\000a')||
'        CASE p_function'||unistr('\000a')||
'          WHEN ''COUNT_DISTINCT'' THEN ''count(distinct '''||unistr('\000a')||
'          WHEN ''RATIO_TO_REPORT';

s:=s||'_SUM'' THEN ''ratio_to_report(sum('''||unistr('\000a')||
'          WHEN ''RATIO_TO_REPORT_COUNT'' THEN ''ratio_to_report(count('''||unistr('\000a')||
'          ELSE p_function || ''('''||unistr('\000a')||
'        END || p_column || '')'' ||'||unistr('\000a')||
'        CASE'||unistr('\000a')||
'          WHEN p_function IN (''RATIO_TO_REPORT_SUM'',''RATIO_TO_REPORT_COUNT'') THEN '') OVER () * 100'''||unistr('\000a')||
'        END;'||unistr('\000a')||
'    END get_sql;'||unistr('\000a')||
'    '||unistr('\000a')||
'    FUNCTION get_label( p_function IN VARCHAR2, p_column IN VARCHAR2 )'||unistr('\000a')||
'      RETUR';

s:=s||'N VARCHAR2'||unistr('\000a')||
'    AS'||unistr('\000a')||
'    BEGIN'||unistr('\000a')||
'      RETURN'||unistr('\000a')||
'        CASE p_function'||unistr('\000a')||
'          WHEN ''COUNT_DISTINCT'' THEN ''Unique Count'''||unistr('\000a')||
'          WHEN ''RATIO_TO_REPORT_SUM'' THEN ''Percent of Total Sum'''||unistr('\000a')||
'          WHEN ''RATIO_TO_REPORT_COUNT'' THEN ''Percent of Total Count'''||unistr('\000a')||
'          WHEN ''AVG'' THEN ''Average'''||unistr('\000a')||
'          WHEN ''MAX'' THEN ''Maximum'''||unistr('\000a')||
'          WHEN ''MIN'' THEN ''Minimum'''||unistr('\000a')||
'          ELSE INITCAP(p_function)'||unistr('\000a')||
'      ';

s:=s||'  END || '' '' || g_col_settings(p_column).report_label;'||unistr('\000a')||
'    END get_label;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    FOR rec IN ( SELECT REPLACE(group_by_columns, '':'', '', '') group_by_cols'||unistr('\000a')||
'                      , function_01'||unistr('\000a')||
'                      , function_column_01'||unistr('\000a')||
'                      , function_db_column_name_01'||unistr('\000a')||
'                      , function_label_01'||unistr('\000a')||
'                      , function_format_mask_01'||unistr('\000a')||
'                      ,';

s:=s||' function_sum_01'||unistr('\000a')||
'                      , function_02'||unistr('\000a')||
'                      , function_column_02'||unistr('\000a')||
'                      , function_db_column_name_02'||unistr('\000a')||
'                      , function_label_02'||unistr('\000a')||
'                      , function_format_mask_02'||unistr('\000a')||
'                      , function_sum_02'||unistr('\000a')||
'                      , function_03'||unistr('\000a')||
'                      , function_column_03'||unistr('\000a')||
'                      , function_db_column_n';

s:=s||'ame_03'||unistr('\000a')||
'                      , function_label_03'||unistr('\000a')||
'                      , function_format_mask_03'||unistr('\000a')||
'                      , function_sum_03'||unistr('\000a')||
'                      , rtrim( CASE WHEN sort_column_01 IS NOT NULL'||unistr('\000a')||
'                                    THEN sort_column_01 || '' '' || sort_direction_01 || '', '''||unistr('\000a')||
'                                    ELSE NULL'||unistr('\000a')||
'                               END ||'||unistr('\000a')||
'                   ';

s:=s||'            CASE WHEN sort_column_02 IS NOT NULL'||unistr('\000a')||
'                                    THEN sort_column_02 || '' '' || sort_direction_02 || '', '''||unistr('\000a')||
'                                    ELSE NULL'||unistr('\000a')||
'                               END ||'||unistr('\000a')||
'                               CASE WHEN sort_column_03 IS NOT NULL'||unistr('\000a')||
'                                    THEN sort_column_03 || '' '' || sort_direction_03 || '', '''||unistr('\000a')||
'               ';

s:=s||'                     ELSE NULL'||unistr('\000a')||
'                               END ||'||unistr('\000a')||
'                               CASE WHEN sort_column_04 IS NOT NULL'||unistr('\000a')||
'                                    THEN sort_column_04 || '' '' || sort_direction_04'||unistr('\000a')||
'                                    ELSE NULL'||unistr('\000a')||
'                               END'||unistr('\000a')||
'                             , '', '''||unistr('\000a')||
'                             ) grp_sort'||unistr('\000a')||
'                   FRO';

s:=s||'M apex_application_page_ir_grpby grpby JOIN apex_application_page_ir_rpt rpt'||unistr('\000a')||
'                         ON grpby.report_id = rpt.report_id'||unistr('\000a')||
'                        AND grpby.application_id = rpt.application_id'||unistr('\000a')||
'                        AND grpby.page_id = rpt.page_id'||unistr('\000a')||
'                  WHERE rpt.page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'                    AND rpt.application_id = g_apex_ir_info.application_id'||unistr('\000a')||
' ';

s:=s||'                   AND rpt.base_report_id = g_apex_ir_info.base_report_id'||unistr('\000a')||
'                    AND rpt.session_id = g_apex_ir_info.session_id'||unistr('\000a')||
'                )'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      -- Add generated column names to column array'||unistr('\000a')||
'      -- (Manual loop, can this be areal one?)'||unistr('\000a')||
'      IF rec.function_01 IS NOT NULL THEN'||unistr('\000a')||
'        col_rec.report_label := COALESCE( rec.function_label_01'||unistr('\000a')||
'                           ';

s:=s||'             , get_label( p_function => rec.function_01'||unistr('\000a')||
'                                                   , p_column   => rec.function_column_01'||unistr('\000a')||
'                                                   )'||unistr('\000a')||
'                                        );'||unistr('\000a')||
'        col_rec.group_by_function := get_sql( rec.function_01, rec.function_column_01);'||unistr('\000a')||
'        col_rec.format_mask := rec.function_format_mask_01;'||unistr('\000a')||
'        co';

s:=s||'l_rec.is_visible := TRUE;'||unistr('\000a')||
'        g_col_settings(rec.function_db_column_name_01) := col_rec;'||unistr('\000a')||
'        g_apex_ir_info.group_by_funcs := '', '' || g_apex_ir_info.group_by_funcs'||unistr('\000a')||
'                                      || col_rec.group_by_function'||unistr('\000a')||
'                                      || '' AS '' || rec.function_db_column_name_01;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'      '||unistr('\000a')||
'      IF rec.function_02 IS NOT NULL THEN'||unistr('\000a')||
'        col_rec';

s:=s||'.report_label := COALESCE( rec.function_label_02'||unistr('\000a')||
'                                        , get_label( p_function => rec.function_02'||unistr('\000a')||
'                                                   , p_column   => rec.function_column_02'||unistr('\000a')||
'                                                   )'||unistr('\000a')||
'                                        );'||unistr('\000a')||
'        col_rec.group_by_function := get_sql( rec.function_02, rec.function_column';

s:=s||'_02);'||unistr('\000a')||
'        col_rec.format_mask := rec.function_format_mask_02;'||unistr('\000a')||
'        col_rec.is_visible := TRUE;'||unistr('\000a')||
'        g_col_settings(rec.function_db_column_name_02) := col_rec;'||unistr('\000a')||
'        g_apex_ir_info.group_by_funcs := g_apex_ir_info.group_by_funcs || '', '' '||unistr('\000a')||
'                                      || col_rec.group_by_function'||unistr('\000a')||
'                                      || '' AS '' || rec.function_db_column_name_02;'||unistr('\000a')||
' ';

s:=s||'     END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      IF rec.function_03 IS NOT NULL THEN'||unistr('\000a')||
'        col_rec.report_label := COALESCE( rec.function_label_03'||unistr('\000a')||
'                                        , get_label( p_function => rec.function_03'||unistr('\000a')||
'                                                   , p_column   => rec.function_column_03'||unistr('\000a')||
'                                                   )'||unistr('\000a')||
'                                        );'||unistr('\000a')||
'        col';

s:=s||'_rec.group_by_function := get_sql( rec.function_03, rec.function_column_03);'||unistr('\000a')||
'        col_rec.format_mask := rec.function_format_mask_03;'||unistr('\000a')||
'        col_rec.is_visible := TRUE;'||unistr('\000a')||
'        g_col_settings(rec.function_db_column_name_03) := col_rec;'||unistr('\000a')||
'        g_apex_ir_info.group_by_funcs := g_apex_ir_info.group_by_funcs || '', '''||unistr('\000a')||
'                                      || col_rec.group_by_function'||unistr('\000a')||
'              ';

s:=s||'                        || '' AS '' || rec.function_db_column_name_03;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
''||unistr('\000a')||
'      -- Put the sort into global variable'||unistr('\000a')||
'      IF rec.grp_sort IS NOT NULL THEN'||unistr('\000a')||
'        g_apex_ir_info.group_by_sort := ''ORDER BY '' || rec.grp_sort;'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'      g_apex_ir_info.group_by_cols := rec.group_by_cols;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'  END get_group_by_def;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Retrieve currently defined computations from ';

s:=s||'APEX dictionary'||unistr('\000a')||
'  * and store in global variable.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_computations'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    col_rec  apexir_xlsx_types_pkg.t_apex_ir_col;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    -- computations are run-time data, therefore need base report ID and session'||unistr('\000a')||
'    FOR rec IN (SELECT computation_column_alias,computation_report_label, computation_format_mask'||unistr('\000a')||
'                  FROM apex_application_page_ir_comp comp JOIN apex_applic';

s:=s||'ation_page_ir_rpt rpt'||unistr('\000a')||
'                         ON rpt.application_id = comp.application_id'||unistr('\000a')||
'                        AND rpt.page_id = comp.page_id'||unistr('\000a')||
'                        AND rpt.report_id = comp.report_id'||unistr('\000a')||
'                 WHERE rpt.application_id = g_apex_ir_info.application_id'||unistr('\000a')||
'                   AND rpt.page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'                   AND rpt.base_report_id = g_apex_ir_info.ba';

s:=s||'se_report_id'||unistr('\000a')||
'                   AND rpt.session_id = g_apex_ir_info.session_id)'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      col_rec.report_label := rec.computation_report_label;'||unistr('\000a')||
'      col_rec.is_visible := TRUE;'||unistr('\000a')||
'      col_rec.format_mask := replace_substitutions(rec.computation_format_mask, ''APP_DATE_TIME_FORMAT'');'||unistr('\000a')||
'      g_col_settings(rec.computation_column_alias) := col_rec;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'  END get_computations;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * ';

s:=s||'Flags an aggregation as active and converts column delimited list to array.'||unistr('\000a')||
'  * @param p_column_value   Column value retrieved for aggregation'||unistr('\000a')||
'  * @param p_aggregate_name Defined name of aggregation'||unistr('\000a')||
'  * @return Array with aggregates indexed by column alias'||unistr('\000a')||
'  */'||unistr('\000a')||
'  FUNCTION transform_aggregate (p_column_value IN VARCHAR2, p_aggregate_name IN VARCHAR2)'||unistr('\000a')||
'    RETURN apexir_xlsx_types_pkg.t_apex_ir_aggre';

s:=s||'gate'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_retval apexir_xlsx_types_pkg.t_apex_ir_aggregate;'||unistr('\000a')||
'    l_vc_arr2 apex_application_global.vc_arr2;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    IF p_column_value IS NOT NULL THEN'||unistr('\000a')||
'      g_apex_ir_info.active_aggregates(p_aggregate_name) := TRUE;'||unistr('\000a')||
'      l_vc_arr2 := apex_util.string_to_table(p_column_value);'||unistr('\000a')||
'      FOR i IN 1..l_vc_arr2.COUNT LOOP'||unistr('\000a')||
'        l_retval(l_vc_arr2(i)) := i;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    RETU';

s:=s||'RN l_retval;'||unistr('\000a')||
'  END transform_aggregate;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Retrieves aggregates and control break from APEX dictionary'||unistr('\000a')||
'  * and stores in global variables.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_aggregates'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_avg_cols  apex_application_page_ir_rpt.avg_columns_on_break%TYPE;'||unistr('\000a')||
'    l_break_on  apex_application_page_ir_rpt.break_enabled_on%TYPE;'||unistr('\000a')||
'    l_count_cols  apex_application_page_ir_rpt.count_columns_on_break%TYPE;'||unistr('\000a')||
'';

s:=s||'    l_count_distinct_cols  apex_application_page_ir_rpt.count_distnt_col_on_break%TYPE;'||unistr('\000a')||
'    l_max_cols  apex_application_page_ir_rpt.max_columns_on_break%TYPE;'||unistr('\000a')||
'    l_median_cols  apex_application_page_ir_rpt.median_columns_on_break%TYPE;'||unistr('\000a')||
'    l_min_cols  apex_application_page_ir_rpt.min_columns_on_break%TYPE;'||unistr('\000a')||
'    l_sum_cols  apex_application_page_ir_rpt.sum_columns_on_break%TYPE;'||unistr('\000a')||
'    l_all_aggregat';

s:=s||'es VARCHAR2(32767);'||unistr('\000a')||
''||unistr('\000a')||
'    l_cur_col  VARCHAR2(30);'||unistr('\000a')||
'    l_aggregates apexir_xlsx_types_pkg.t_apex_ir_aggregates;'||unistr('\000a')||
'    l_aggregate_col_offset PLS_INTEGER;'||unistr('\000a')||
'    l_col_aggregates apexir_xlsx_types_pkg.t_apex_ir_col_aggregates;'||unistr('\000a')||
'    l_tmp apex_application_global.vc_arr2;'||unistr('\000a')||
'    l_break_cols apexir_xlsx_types_pkg.t_apex_ir_aggregate;'||unistr('\000a')||
'    l_break_enabled BOOLEAN := FALSE;'||unistr('\000a')||
'    PROCEDURE add_to_offset (l_addition';

s:=s||' IN PLS_INTEGER)'||unistr('\000a')||
'    AS'||unistr('\000a')||
'    BEGIN'||unistr('\000a')||
'      l_aggregate_col_offset := l_aggregate_col_offset + l_addition;'||unistr('\000a')||
'    END add_to_offset;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    -- First get run-time settings for aggregate infos'||unistr('\000a')||
'    SELECT break_enabled_on,'||unistr('\000a')||
'           sum_columns_on_break,'||unistr('\000a')||
'           avg_columns_on_break,'||unistr('\000a')||
'           max_columns_on_break,'||unistr('\000a')||
'           min_columns_on_break,'||unistr('\000a')||
'           median_columns_on_break,'||unistr('\000a')||
'           cou';

s:=s||'nt_columns_on_break,'||unistr('\000a')||
'           count_distnt_col_on_break,'||unistr('\000a')||
'           sum_columns_on_break ||'||unistr('\000a')||
'           avg_columns_on_break ||'||unistr('\000a')||
'           max_columns_on_break ||'||unistr('\000a')||
'           min_columns_on_break ||'||unistr('\000a')||
'           median_columns_on_break ||'||unistr('\000a')||
'           count_columns_on_break ||'||unistr('\000a')||
'           count_distnt_col_on_break AS all_aggregates'||unistr('\000a')||
'      INTO l_break_on,'||unistr('\000a')||
'           l_sum_cols,'||unistr('\000a')||
'           l_avg_cols,'||unistr('\000a')||
'  ';

s:=s||'         l_max_cols,'||unistr('\000a')||
'           l_min_cols,'||unistr('\000a')||
'           l_median_cols,'||unistr('\000a')||
'           l_count_cols,'||unistr('\000a')||
'           l_count_distinct_cols,'||unistr('\000a')||
'           l_all_aggregates'||unistr('\000a')||
'      FROM apex_application_page_ir_rpt'||unistr('\000a')||
'     WHERE application_id = g_apex_ir_info.application_id'||unistr('\000a')||
'       AND page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'       AND base_report_id = g_apex_ir_info.base_report_id'||unistr('\000a')||
'       AND session_id = g_apex_ir_info.sess';

s:=s||'ion_id;'||unistr('\000a')||
'    '||unistr('\000a')||
'    IF l_break_on IS NOT NULL THEN'||unistr('\000a')||
'      l_tmp := apex_util.string_to_table(l_break_on);'||unistr('\000a')||
'      FOR i IN 1..l_tmp.COUNT LOOP'||unistr('\000a')||
'        l_break_cols(l_tmp(i)) := i;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    '||unistr('\000a')||
'    IF l_all_aggregates IS NOT NULL THEN'||unistr('\000a')||
'      l_aggregates.sum_cols := transform_aggregate(l_sum_cols, ''Sum'');'||unistr('\000a')||
'      l_aggregates.avg_cols := transform_aggregate(l_avg_cols, ''Average'');'||unistr('\000a')||
'      ';

s:=s||'l_aggregates.max_cols := transform_aggregate(l_max_cols, ''Maximum'');'||unistr('\000a')||
'      l_aggregates.min_cols := transform_aggregate(l_min_cols, ''Minimum'');'||unistr('\000a')||
'      l_aggregates.median_cols := transform_aggregate(l_median_cols, ''Median'');'||unistr('\000a')||
'      l_aggregates.count_cols := transform_aggregate(l_count_cols, ''Count'');'||unistr('\000a')||
'      l_aggregates.count_distinct_cols := transform_aggregate(l_count_distinct_cols, ''Unique Count''';

s:=s||');'||unistr('\000a')||
'    '||unistr('\000a')||
'      -- Loop through all selected columns and apply settings'||unistr('\000a')||
'      l_cur_col := g_col_settings.FIRST();'||unistr('\000a')||
'      WHILE (l_cur_col IS NOT NULL)'||unistr('\000a')||
'      LOOP'||unistr('\000a')||
'        IF l_break_on IS NOT NULL AND l_break_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'          IF NOT l_break_enabled THEN l_break_enabled := TRUE; END IF;'||unistr('\000a')||
'          g_col_settings(l_cur_col).is_break_col := TRUE;'||unistr('\000a')||
'          IF g_col_settings(l_cur_col';

s:=s||').is_visible THEN'||unistr('\000a')||
'            g_apex_ir_info.aggregate_type_disp_column := g_apex_ir_info.aggregate_type_disp_column + 1;'||unistr('\000a')||
'            g_apex_ir_info.final_sql := g_apex_ir_info.final_sql || ''to_char('' || l_cur_col || '') || '';'||unistr('\000a')||
'          END IF;'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'        l_aggregate_col_offset := g_apex_ir_info.aggregates_offset; -- reset offset to global offset for every new column'||unistr('\000a')||
'        l_col_aggr';

s:=s||'egates.DELETE;'||unistr('\000a')||
'        IF NOT g_col_settings(l_cur_col).is_break_col THEN'||unistr('\000a')||
'          IF INSTR(l_all_aggregates, l_cur_col) > 0 THEN'||unistr('\000a')||
'            IF l_aggregates.sum_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Sum'').col_num := l_aggregate_col_offset + l_aggregates.sum_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.sum_cols.count);'||unistr('\000a')||
''||unistr('\000a')||
'            IF l_aggrega';

s:=s||'tes.avg_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Average'').col_num := l_aggregate_col_offset + l_aggregates.avg_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.avg_cols.count);'||unistr('\000a')||
''||unistr('\000a')||
'            IF l_aggregates.max_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Maximum'').col_num := l_aggregate_col_offset + l_aggregates.max_cols(l_cur_col);'||unistr('\000a')||
'   ';

s:=s||'         END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.max_cols.count);'||unistr('\000a')||
''||unistr('\000a')||
'            IF l_aggregates.min_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Minimum'').col_num := l_aggregate_col_offset + l_aggregates.min_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.min_cols.count);'||unistr('\000a')||
'            '||unistr('\000a')||
'            IF l_aggregates.median_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'  ';

s:=s||'            l_col_aggregates(''Median'').col_num := l_aggregate_col_offset + l_aggregates.median_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.median_cols.count);'||unistr('\000a')||
'            '||unistr('\000a')||
'            IF l_aggregates.count_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Count'').col_num := l_aggregate_col_offset + l_aggregates.count_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'  ';

s:=s||'          add_to_offset(l_aggregates.count_cols.count);'||unistr('\000a')||
'            IF l_aggregates.count_distinct_cols.EXISTS(l_cur_col) THEN'||unistr('\000a')||
'              l_col_aggregates(''Unique Count'').col_num := l_aggregate_col_offset + l_aggregates.count_distinct_cols(l_cur_col);'||unistr('\000a')||
'            END IF;'||unistr('\000a')||
'            add_to_offset(l_aggregates.count_distinct_cols.count);'||unistr('\000a')||
'          END IF;'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'        g_col_settings(l';

s:=s||'_cur_col).aggregates := l_col_aggregates;'||unistr('\000a')||
'        l_cur_col := g_col_settings.next(l_cur_col);'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
'    ELSE'||unistr('\000a')||
'      g_xlsx_options.show_aggregates := FALSE;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    IF l_break_enabled THEN'||unistr('\000a')||
'      g_apex_ir_info.final_sql := '', '' || RTRIM(g_apex_ir_info.final_sql, ''|| '') || '' AS '' || c_break_definition;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'  END get_aggregates;'||unistr('\000a')||
''||unistr('\000a')||
'  FUNCTION display_for_condition ( p_column_';

s:=s||'name IN VARCHAR2'||unistr('\000a')||
'                                 , p_display IN VARCHAR2'||unistr('\000a')||
'                                 , p_operator IN VARCHAR2'||unistr('\000a')||
'                                 , p_exp_1 IN VARCHAR2'||unistr('\000a')||
'                                 , p_exp_2 IN VARCHAR2'||unistr('\000a')||
'                                 )'||unistr('\000a')||
'    RETURN VARCHAR2'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_retval VARCHAR2(4000) := p_display;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_COL_N';

s:=s||'AME#'', g_col_settings(p_column_name).report_label );'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_OP_NAME#'', p_operator );'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_AND#'', ''and'' );'||unistr('\000a')||
'    IF INSTR( l_retval, ''#APXWS_EXPR_DATE#'') > 0 OR INSTR(l_retval, ''#APXWS_EXPR2_DATE#'' ) > 0 THEN'||unistr('\000a')||
'      l_retval := REPLACE( l_retval, ''#APXWS_EXPR_DATE#'', TO_CHAR( TO_DATE( p_exp_1, c_apex_date_fmt ) ) );'||unistr('\000a')||
'      l_retv';

s:=s||'al := REPLACE( l_retval, ''#APXWS_EXPR2_DATE#'', TO_CHAR( TO_DATE( p_exp_2, c_apex_date_fmt ) ) );'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_EXPR#'', p_exp_1);'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_EXPR_NAME#'', p_exp_1);'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_EXPR_NUMBER#'', p_exp_1);'||unistr('\000a')||
'    l_retval := REPLACE( l_retval, ''#APXWS_EXPR2#'', p_exp_2);'||unistr('\000a')||
'    l_retval := REPLACE( l_retval,';

s:=s||' ''#APXWS_EXPR2_NAME#'', p_exp_2);    '||unistr('\000a')||
'    RETURN l_retval;'||unistr('\000a')||
'  END display_for_condition;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Retrieves all row and column highlights'||unistr('\000a')||
'  * and stores in global variables.'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_highlights'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    col_rec apexir_xlsx_types_pkg.t_apex_ir_highlight;'||unistr('\000a')||
'    hl_num NUMBER := 0;'||unistr('\000a')||
'    l_apxws_expr_vals apex_application_global.vc_arr2;'||unistr('\000a')||
'    FUNCTION wrap_exp (p_exp IN VARCHAR2)'||unistr('\000a')||
'      RETURN ';

s:=s||'VARCHAR2'||unistr('\000a')||
'    AS'||unistr('\000a')||
'    BEGIN'||unistr('\000a')||
'      RETURN '''''''' || p_exp || '''''''';'||unistr('\000a')||
'    END wrap_exp;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    FOR rec IN (SELECT condition_name,'||unistr('\000a')||
'                       CASE'||unistr('\000a')||
'                         WHEN cond.highlight_row_color IS NOT NULL OR cond.highlight_row_font_color IS NOT NULL'||unistr('\000a')||
'                           THEN ''ROW'''||unistr('\000a')||
'                         ELSE ''COLUMN'''||unistr('\000a')||
'                       END highlight_type,'||unistr('\000a')||
'             ';

s:=s||'          condition_column_name,'||unistr('\000a')||
'                       condition_operator,'||unistr('\000a')||
'                       condition_expression,'||unistr('\000a')||
'                       condition_expression2,'||unistr('\000a')||
'                       cond.condition_sql,'||unistr('\000a')||
'                       cond.condition_display,'||unistr('\000a')||
'                       REPLACE(COALESCE(cond.highlight_row_color, cond.highlight_cell_color), ''#'') bg_color,'||unistr('\000a')||
'                       REPLACE(COA';

s:=s||'LESCE(cond.highlight_row_font_color, cond.highlight_cell_font_color), ''#'') font_color'||unistr('\000a')||
'                  FROM apex_application_page_ir_cond cond JOIN apex_application_page_ir_rpt r'||unistr('\000a')||
'                         ON r.application_id = cond.application_id'||unistr('\000a')||
'                        AND r.page_id = cond.page_id'||unistr('\000a')||
'                        AND r.report_id = cond.report_id'||unistr('\000a')||
'                 WHERE cond.application_id ';

s:=s||'= g_apex_ir_info.application_id'||unistr('\000a')||
'                   AND cond.page_id = g_apex_ir_info.page_id'||unistr('\000a')||
'                   AND cond.condition_type = ''Highlight'''||unistr('\000a')||
'                   AND cond.condition_enabled = ''Yes'''||unistr('\000a')||
'                   AND r.base_report_id = g_apex_ir_info.base_report_id'||unistr('\000a')||
'                   AND r.session_id = g_apex_ir_info.session_id'||unistr('\000a')||
'                   AND ( cond.highlight_row_color IS NOT NUL';

s:=s||'L'||unistr('\000a')||
'                      OR cond.highlight_row_font_color IS NOT NULL'||unistr('\000a')||
'                      OR cond.highlight_cell_color IS NOT NULL'||unistr('\000a')||
'                      OR cond.highlight_cell_font_color IS NOT NULL'||unistr('\000a')||
'                       )'||unistr('\000a')||
'                ORDER BY cond.condition_column_name, cond.highlight_sequence'||unistr('\000a')||
'               )'||unistr('\000a')||
'    LOOP'||unistr('\000a')||
'      IF g_col_settings.EXISTS(rec.condition_column_name) THEN'||unistr('\000a')||
'        h';

s:=s||'l_num := hl_num + 1;'||unistr('\000a')||
'        col_rec.bg_color := rec.bg_color;'||unistr('\000a')||
'        col_rec.font_color := rec.font_color;'||unistr('\000a')||
'        IF rec.condition_name IS NOT NULL THEN'||unistr('\000a')||
'          col_rec.highlight_name := rec.condition_name;'||unistr('\000a')||
'        ELSE'||unistr('\000a')||
'          col_rec.highlight_name := display_for_condition( p_column_name => rec.condition_column_name'||unistr('\000a')||
'                                                         , p_display => r';

s:=s||'ec.condition_display'||unistr('\000a')||
'                                                         , p_operator => rec.condition_operator'||unistr('\000a')||
'                                                         , p_exp_1 => rec.condition_expression'||unistr('\000a')||
'                                                         , p_exp_2 => rec.condition_expression2'||unistr('\000a')||
'                                                         );'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'        -- Store';

s:=s||' and replace static part'||unistr('\000a')||
'        col_rec.highlight_sql := REPLACE(rec.condition_sql, ''#APXWS_HL_ID#'', 1);'||unistr('\000a')||
'        '||unistr('\000a')||
'        IF LOWER(rec.condition_operator) IN (''in'', ''not in'')'||unistr('\000a')||
'        THEN -- IN and NOT IN need special handling as the amount of values is unclear'||unistr('\000a')||
'          l_apxws_expr_vals := apex_util.string_to_table(rec.condition_expression, '','');'||unistr('\000a')||
'          FOR i IN 1..l_apxws_expr_vals.COUNT LO';

s:=s||'OP'||unistr('\000a')||
'            l_apxws_expr_vals(i) := wrap_exp(TRIM(l_apxws_expr_vals(i)));'||unistr('\000a')||
'            col_rec.highlight_sql := REPLACE(col_rec.highlight_sql, ''#APXWS_EXPR_VAL'' || to_char(i, ''FM9999'') || ''#'', l_apxws_expr_vals(i));'||unistr('\000a')||
'          END LOOP;'||unistr('\000a')||
'        ELSE --Operators which do not require special handling'||unistr('\000a')||
'          col_rec.highlight_sql := REPLACE(col_rec.highlight_sql, ''#APXWS_EXPR#'', wrap_exp(rec.cond';

s:=s||'ition_expression));'||unistr('\000a')||
'          col_rec.highlight_sql := REPLACE(col_rec.highlight_sql, ''#APXWS_EXPR2#'', wrap_exp(rec.condition_expression2));'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'  '||unistr('\000a')||
'        IF rec.highlight_type = ''COLUMN'' THEN'||unistr('\000a')||
'          col_rec.affected_column := rec.condition_column_name;'||unistr('\000a')||
'          g_col_highlights(''HL_'' || to_char(hl_num)) := col_rec;'||unistr('\000a')||
'        ELSE'||unistr('\000a')||
'          g_row_highlights(''HL_'' || to_char(hl_num))';

s:=s||' := col_rec;'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'        g_apex_ir_info.final_sql := g_apex_ir_info.final_sql || '', '' || col_rec.highlight_sql || '' AS HL_'' || to_char(hl_num);'||unistr('\000a')||
'      END IF;'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'  END get_highlights;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Loops through all row highlights for current fetch'||unistr('\000a')||
'  * and sets row style if highlight condition is met.'||unistr('\000a')||
'  * @param p_fetched_row_cnt Amount of rows fetched'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE process_r';

s:=s||'ow_highlights (p_fetched_row_cnt IN PLS_INTEGER)'||unistr('\000a')||
'  AS'||unistr('\000a')||
'    l_cur_highlight VARCHAR2(30);'||unistr('\000a')||
'    l_highlight_values dbms_sql.number_table;'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    l_cur_highlight := g_row_highlights.FIRST();'||unistr('\000a')||
'    WHILE l_cur_highlight IS NOT NULL LOOP'||unistr('\000a')||
'      dbms_sql.COLUMN_VALUE( g_cursor_info.cursor_id, g_row_highlights(l_cur_highlight).col_num, l_highlight_values );'||unistr('\000a')||
'      FOR i IN 0 .. p_fetched_row_cnt - 1 LOOP'||unistr('\000a')||
'';

s:=s||'        IF (l_highlight_values(i + l_highlight_values.FIRST()) IS NOT NULL) THEN'||unistr('\000a')||
'          xlsx_builder_pkg.set_row( p_row => g_current_disp_row + i + g_cursor_info.break_rows(g_current_sql_row + i)'||unistr('\000a')||
'                                  , p_fontId => xlsx_builder_pkg.get_font( p_name => g_xlsx_options.default_font'||unistr('\000a')||
'                                                                         , p_rgb => g_ro';

s:=s||'w_highlights(l_cur_highlight).font_color'||unistr('\000a')||
'                                                                         )'||unistr('\000a')||
'                                  , p_fillId => xlsx_builder_pkg.get_fill( p_patternType => ''solid'''||unistr('\000a')||
'                                                                         , p_fgRGB => g_row_highlights(l_cur_highlight).bg_color'||unistr('\000a')||
'                                                       ';

s:=s||'                  )'||unistr('\000a')||
'                                  );'||unistr('\000a')||
'        END IF;'||unistr('\000a')||
'      END LOOP;'||unistr('\000a')||
'      l_highlight_values.DELETE;'||unistr('\000a')||
'      l_cur_highlight := g_row_highlights.next(l_cur_highlight);'||unistr('\000a')||
'    END LOOP;'||unistr('\000a')||
'  END process_row_highlights;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Wrapper calling all procedures retrieving settings.'||unistr('\000a')||
'  * E.g. report title, computations'||unistr('\000a')||
'  */'||unistr('\000a')||
'  PROCEDURE get_settings'||unistr('\000a')||
'  AS'||unistr('\000a')||
'  BEGIN'||unistr('\000a')||
'    SELECT VALUE'||unistr('\000a')||
'      INTO';

s:=s||' g_nls_numeric_characters'||unistr('\000a')||
'      FROM v$nls_parameters'||unistr('\000a')||
'     where parameter = ''NLS_NUMERIC_CHARACTERS'';'||unistr('\000a')||
''||unistr('\000a')||
'   SELECT VALUE'||unistr('\000a')||
'     INTO g_xlsx_options.default_date_format'||unistr('\000a')||
'     FROM v$nls_parameters'||unistr('\000a')||
'    WHERE parameter = ''NLS_DATE_FORMAT'';'||unistr('\000a')||
''||unistr('\000a')||
''||unistr('\000a')||
'    get_report_title_type;'||unistr('\000a')||
'    get_std_columns;'||unistr('\000a')||
'    get_computations;'||unistr('\000a')||
''||unistr('\000a')||
'    IF g_apex_ir_info.view_mode = c_ir_group_by_view THEN'||unistr('\000a')||
'      get_group_by_def;'||unistr('\000a')||
'      -- Dis';

s:=s||'able everything not applicable for Group By View'||unistr('\000a')||
'      g_xlsx_options.show_aggregates := FALSE;'||unistr('\000a')||
'      g_xlsx_options.process_highlights := FALSE;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
''||unistr('\000a')||
'    IF g_xlsx_options.show_aggregates THEN'||unistr('\000a')||
'      get_aggregates;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'    IF g_xlsx_options.process_highlights THEN'||unistr('\000a')||
'      get_highlights;'||unistr('\000a')||
'    END IF;'||unistr('\000a')||
'  END get_settings;'||unistr('\000a')||
''||unistr('\000a')||
'  /**'||unistr('\000a')||
'  * Loops through all cells in current display row starti';

wwv_flow_api.create_install_script(
  p_id => 12971322408117110 + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_install_id=> 8189707789662029 + wwv_flow_api.g_id_offset,
  p_name => 'Install APEXIR_XLSX Package Body',
  p_sequence=> 75,
  p_script_type=> 'INSTALL',
  p_script_clob=> s);
end;
 
 
end;
/

 
