Notice»

Recent Post»

Recent Comment»

Recent Trackback»

Archive»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

 
 

Visual Studio6 설치시 DCOM과 충돌?

버그리포트 | 2009. 4. 16. 00:47 | Posted by 99%
최대리님이 겪은 일이다.

다시 정리할것.
:

오라클 imp도중에..오라클 922에러..

버그리포트 | 2009. 4. 16. 00:46 | Posted by 99%
오라클 imp의 버젼차이 때문이다.
DB프로그램 클라이언트는 항상 깔아놓고 그놈으로 백업,복구하도록 하자.
다른시스템에서 받아오면 버젼 하나차이때문에 못가져다 쓸수도 있다;

문제
imp 도중에 이런 에러가 난다.

IMP-00003: ORACLE error 922 encountered
ORA-00922: missing or invalid option
IMP-00017: following statement failed with ORACLE error 922:
"CREATE TABLE "SW_ADDRS" ("CUST_NO" NUMBER(10, 0) NOT NULL ENABLE, "ADDRS_NO"
"" NUMBER(10, 0) NOT NULL ENABLE, "ADDR_TYPE" VARCHAR2(30), "OFFICER" VARCHA"
"R2(30), "POST_NO" CHAR(6), "POST_SQ" CHAR(2), "ADDR" VARCHAR2(150), "DDD" C"
"HAR(4), "OFF_NO" CHAR(4), "TEL_NO" CHAR(4), "REG_DT" CHAR(14), "UPD_DT" CHA"
"R(14)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 52428"
"800 FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "TS_SALESWORKS_DATA_01" LOGGI"
"NG NOCOMPRESS"


sqlplus를 이용하여 별도로 실행시켜 보니
LOGGING NOCOMPRESS 부분에서 invalid option이라고 한다.

해결방법

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10110&eid=saHBj00kP9xlzygfoSU6EG4ctGHDQ3FQ&qb=v8C288WsIDkyMg==

오라클 버전이 차이날 경우에 발생합니다.

예를 들어, Oracle 9.2 에서 Export 한 파일을 9.0.1 에 Import 할 경우 위와 같은 에러가 발생합니다.

에러 메시지가 좀 엉뚱한 셈이죠... ^^

일반적으로는 Major Version이 차이날때가 아닌, Minor Release Version간에는 서로 호환성에 문제가 없어야 하나, Oracle 9i Release 1에 들어 있는 export/import 유틸리티와 Release 2에 포함된 export/import 유틸리티 간에 위와 같은 문제가 발생합니다.

그럴경우, 해결방법은 하위버전의 export/import 유틸리티를 사용하는 것입니다.

즉, Release 2의 데이터를 Release 1으로 옮길경우, Release 1의 exp를 이용하여 export하고 import하면 문제를 해결할 수 있습니다.

그런데, 님께서 올리신 Create 문장을, 제가 테이블 스페이스명만 바꾸어서 sqlplus에서 실행하였는데 (Oracle 9.2 에서) Invalid Option 에러없이 정상적으로 생성되는 군요.
:

cvcam과 nero 충돌!! 코덱..

버그리포트 | 2009. 4. 16. 00:41 | Posted by 99%
nero에서 코덱을 설치하는게 개발시 코덱처리를하다보면 충돌이 일어난적이 있다.
DivX Encoder 필터를 사용시..

문제
2008년 1월에 올라온 글이다.
http://cafe.naver.com/opencv/4591

해결방법
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=7216&ref=7216

:

1. 원격에서 접속시
MySQL error number 1130 에러!!

Mysql Command Line Client에서

GRANT ALL PRIVILEGES ON *.* TO 'myaccount'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
를 복사해서 붙여넣기 하면 처리된다.

 

2. 처음 설치시..

Mysql Server instance configurarion
설정시  root계정 비밀번호 넣을시 꼭!
그밑에 Enable root access from remote machines를 체크하라!!!
그걸 못했을 경우
Database 깔린곳의 bin폴더로 가서
(C:\Program Files\MySQL\MySQL Server 5.0\bin)
MySQLInstanceConfig.exe 를 실행하면 초기에 설정하던 그화면이 나온다.

위처럼 해야 root계정을 다른 pc에서도 쓸수있다.

:

07-11-09 ipTime 공유기(G504) 무선랜..

버그리포트 | 2009. 4. 16. 00:32 | Posted by 99%

소장님이 쓰시던 Satellite m50(psm53k-011002) 모델의

무선랜 카드 Atheros AR5005G 무선랜 카드가 무선이 안잡히는 현상발생.

(무선 네트워크는 인식했으나 접속이 안되고 보안모드를 걸어놨는데 키를 입력하라는 창이 뜨지 않았음)

 

802.11b 규격이어서 문제인지 AR5005G랜카드와의 문제인지는 알수 없으나.

랜카드 드라이버를 도시바 싸이트에 있는 3.0대 버젼 말고 4.2.2.27버젼으로 교체했으며

ipTIME G504 모델의 펌웨어를 07-10-11일 버젼  5.22로 변경하자 모든 문제 해결.

 

b모델과 충돌인듯 하다.

펌웨어 업데이트로 해결된듯.

:

cnfgsvr.exe - DLL 찾기 실패 메세지

SQL Server 2000 Pro를 설치하는 중 거의 마지막에서 cnfgsvr.exe - DLL찾기 실패라는 메시지(첨부 파일 참조)가
뜨고 더이상 진생이 되질 않는다.

해결방법

MDAC 문제.
regdit에서 관련 레지스트리 값을 모두 지우고
참고 : http://support.microsoft.com/?kbid=290991
MDAC을 다시 설치한다.

http://msdn.microsoft.com/data/Default.aspx
MDAC 2.6 sp2 설치.
MDAC 설치과정에서 에러가 나면서 완료 될수도 있지만 신경쓰지 말자.

MDAC 재설치 후에, 다시 install.
install 하신후~ 서비스팩 적용.
http://www.microsoft.com/korea/sql/downloads/2000/sp3.asp

:

ASCII 문자 코드

프로그래밍/C, C++ | 2009. 4. 15. 09:29 | Posted by 99%
ASCII 문자 코드 차트 1

ASCII 문자 코드 차트 2

출처

http://msdn.microsoft.com/ko-kr/library/4z4t9ed1(VS.71).aspx

:

STLport 설치 및 사용 For VC6

프로그래밍/C, C++ | 2009. 4. 6. 10:57 | Posted by 99%

STLport Configuration Manual

STLport 인스톨 문서번역 (RedPixel 님의 STLport 설치 문서 )

VC 6++용 STLport의 빠른 설치 가이드 (More Effective C++ 의 역자인 곽용재님의 STLport 설치 문서 )

개요

VC6에 포함된 STL은 딩컴웨어의 라이브러리를 사용하고 있으며 C++표준이 된 해에 발표된 툴이라 그런지 STL관련 문제가 너무 많다. 그래서 VC6을 사용하는 STL사용자들은 VC에 STLPort를 설치해서 사용한다. 다행히 VC최신 버젼은 STL에 많은 지원을 해주고 있으며 STL관련 기능도 많이 추가되어서 기본 STL라이브러리를 사용해도 무방하다.

MS VC6/7 STL 구현의 문제점
Visual Studio 버전 별 STL 지원
VC6 의 STL Platform 을 쓰지 말아야 하는 이유 한가지

※ STLPort 라이브러리는 SGI(실리콘 그래픽스)의 STL을 여러 가지 운영체제 및 개발 도구에서 쓸 수 있도록 포팅한 것
으로(현존하는 거의 모든 플랫폼과 컴파일러를 지원), ANSI 표준안을 충실히 따르고 있으며 이외의 비표준 라이브러리도 충실히 구비해 놓고 있는 공개 라이브러리이다.

STLPort 설치방법


다운로드
http://sourceforge.net/projects/stlport

STLport 는 5.0 부터는 wrapper 모드(컴파일러의 iostream사용)를 더 이상 지원하지 않아서 STLport의 iostream을
사용해야한다.
이전버전을 사용할때 wrapper모드를 사용할꺼면 입출력관련 컴파일과정이 필요없다.

STLPort의 입출력라이브러리를 사용할때 VC 프로젝트에서 CRT라이브러리를 DLL로 사용하면 STLPort관련 DLL도 같이 배포 해야된다. 좀 불편한 사항이라 Static라이브러리를 기본으로 사용하게 컴파일하는 방법을 같이 설명한다. (필자는 5.1.5를 사용중인데 그전 4.6.2를 사용할때 Static라이브러리로 컴파일이 잘 안되서 5.1.5로 바꿨다. Static라이브러리에 대한 설명은 5.1.5에서만 설명하겠다.)

※ VC6에 최신 Platform SDK을 사용하면 VC용 입출력라이브러리를 그냥 사용해도 상관없다는 분도 계신데 sstream을 사용하려고 선언하기만 해도 102개의 error와 9개의 warning이 발생하니 필자는 사용안할수가 없었다. ㅡ.ㅡ; (4.6.2 사용시..)

STLPort 5.1.5, 5.2.0 설치

정적라이브러리(Static)로 사용방법은 아래 주석으로 표시한 두줄의 차이 밖에 없으며 configure에서 --rtl-dynamic 의미는 동적(dynamic) C,C++ 라이브러리 사용시 STLport를 정적으로(statically) 링크할 수 있도록 한다는 것이다. 위와 같이 설정하면 실제 컴파일된 결과물은 CRT라이브러리가 Multithread DLL설정으로 사용시 필요한 라이브러리만 생성되므로 아래 4,5번 과정을 --rtl-dynamic빼고 한번, 설정하고 한번으로 해서 컴파일하면 VC에서 CRT를 사용하는 3가지 쓰레드 모델에 모두 적용가능한 라이브러리를 만들수 있다.

STLPort를 다운받아서 압축을 푼다.

1. stlport\stl\config\user_config.h에서 아래값 설정
#define _STLP_NEW_PLATFORM_SDK   // Platform SDK를 사용하는 환경에서 사용
#define _STLP_USE_MFC                     // MFC 사용시

2. stlport\stl\host.h에 아래값 설정
#define _STLP_LEAKS_PEDANTIC 1
#define _STLP_USE_NEWALLOC 1
#define _STLP_USE_MALLOC 1


#define _STLP_USE_STATIC_LIB        // 정적(static) 라이브러리 사용시

3. cmd창을 띄우고 stlport폴더로 이동.

    cd build\lib를 입력

4. configure -c msvc6
    configure -c msvc6  --rtl-dynamic// 정적(static) 라이브러리 사용시는 --rtl-dynamic없이 4,5번 수행하고
                                                          --rtl-dynamic 설정하고 다시 4,5번 컴파일 과정을 반복한다. 

    ※ 5.2.0은 STLPort 루트폴더에 있고 '-c' 옵션은 configure설정에서 사라졌으므로 빼고 설정하면 된다.

-> configure --help로 도움말을 볼수 있다.

5. nmake /fmsvc.mak clean install

-> build\lib\readme 파일을 보면 nmake설정을 볼수 있다.

clean -> build\lib\obj폴더 내용삭제

install -> 컴파일해서 생성된 obj폴더의 내용을 stlport루트 폴더의 lib,bin으로 옮겨주는 작업까지를 말한다.

6. lib,bin폴더에 컴파일된 결과물이 생긴다.

확인후 lib 폴더 안에 파일을 ..\Microsoft Visual Studio\VC98\Lib안에 복사한다.

bin폴더 내용을 C:\Windows\System32에 복사한다.

7. ..\Microsoft Visual Studio\VC98\Include에 stlport 폴더를 복사한다.

8. VC++6에 경로 등록(가장 상위로 이동)

Include files: "..\Microsoft Visual Studio\VC98\stlport\include"


STLPort 4.6.2 설치

STLPort를 다운받아서 압축을 푼다.
1. stlport\
stl_user_config.h에서 아래값 설정
#define _STLP_NEW_PLATFORM_SDK 1 // Platform SDK를 사용하는 환경에서 사용
#define _STLP_USE_MFC                     // MFC 사용시

2-1. wrapper 모드로 사용하는 경우(컴파일러의 iostream 사용)
STLport에서 제공하는 iostream을 사용하지 않는 경우 컴파일할 필요가 없다.
- stl_user_config.h 파일의 # define _STLP_NO_OWN_IOSTREAMS 1 부분 주석 해제
- stlport 디렉터리를 ..\Microsoft Visual Studio\VC98\include에 복사
- VC++에서 Tool -> Option -> Directories -> include files 에 stlport 디렉터리 등록
- 위의 디렉터리를 상위로 설정하고 사용해야 STLport의 헤더 파일을 사용합니다.(설치 끝)

2.2. STLport의 iostream을 사용하는 경우
STLport 라이브러리를 컴파일해야 한다.
- 시작 버튼 메뉴의 Platform SDK 에 보면 Open Build Environment Window 라는 도스창 띄워주는 단축 아이콘이 있다. 이중에서 자신의 운영체제 맞는 것을 선택하여 도스창을 띄운다.
- STLport 압축을 푼 디렉터리에서 src 디렉터리로 이동
- nmake -f vc6.mak install (VC++ 6인 경우, 다른 컴파일의 경우 다른 make 파일 선택)
- 컴파일이 끝나면 헤더파일, lib(VC의 lib 디렉터리), dll(system32 디렉터리) 파일들이 설치된다.
- VC++에서 Tool -> Option -> Directories -> include files 에 stlport 디렉터리 상위로 설정 등록


문제 해결

위에서 _STLP_NEW_PLATFORM_SDK, _STLP_USE_MFC는 기본으로 설정해야 된다.

1. 설치시 error C2733 ... InterlockedIncrement... 에러가 발생한다.
(
c:\program files\microsoft visual studio\vc98\include\stlport\stl\_threads.h(122) :
    error C2733: second C linkage of overloaded function 'InterlockedIncrement' not allowed)

PlatformSDK 설치 후에 Visual Studio 6를 설치하거나 DirectX등을 설치할경우 IncludeSetting 에서Platform SDK Include Path 의 우선순위가 낮게 설정 되는데 Platform SDKInclude Path의우선순위를 제일 위로 올려주고
STLport-xxx\stlport\stl\config\stl_user_config.h 파일의 #define _STLP_NEW_PLATFORM_SDK 1
부분을 주석을 제거 해주시면 정상 처리 됩니다.

2. Visual C++ 에서 메모리 릭이 날 때?
stlport/stl/config/hosts.h에서
#define _STLP_LEAKS_PEDANTIC 1
#define _STLP_USE_NEWALLOC 1
#define _STLP_USE_MALLOC 1
를 설정해준다.

STLport에서 구현된 allocator로 인해 몇몇 릭을 검출하는 툴에서 메모리 릭이
발생하는데 진짜 메모리 누수로 생기는 릭이 아니라 릭을 검출하는 시점에 의해 생기는
잘못된 보고이다. 이러한 가짜 릭이 걱정된다면 이 전처리를 사용한다.
반드시 _STLP_USE_NEWALLOC 또는 _STLP_USE_MALLOC과 같이 사용해야 한다.



2009.10.11
이전엔 없던 에러가 발생한다. 예전에 받아논 STLPort파일(5.1.5)은 컴파일이 잘되는데 새로받은건 안된다;; 아직 해결못함.

NMAKE : fatal error U1077: 'cl' : return code '0x2'
-> 5.1.5에서 나는 에러다.

NMAKE : fatal error U1077: 'copy' : return code '0x1'

-> 5.2.0에서 나는 에러다.

참고
Visual C++ 2005에서 STLport 5.1.0 빌드 -> 컴파일 설정에 대한 자세한 설명
STLport 4.6.2,STLport 5.0.1,boost 1.33.1설치
STLPort 설치(윈도우즈 + Visual Studio C++ 7.0) v4.5.3

STLport 4.6.2 설치 방법 (참고사이트 볼것)
STLport 4.6.2 설치하기 & boost 1.31 설치 (Ver.0.2) (이택근님)

MSVC 플젝에서 STLPort사용(헤더파일 정의)

* 설치후 stlport 디렉토리를 컴파일러 설정에 추가한다.
(대개 C:/Program Files/Microsoft Visual Studio/VC98/include/stlport)
 추가하고 나서 이것을 첫 줄로 올립니다.

* 헤더파일 선언전에 아래껄 먼저 선언해라! VC6에서 4786 waring이 정신건강을 괴롭힌다 ㅡ.ㅡ;;
#pragma waring(disable : 4786)

1. stdafx.h에 선언하기
stdafx.h에 stl관련 헤더파일을 사용하겠다고 선언하면 2번과 같은 상황은 없다.

2. 일반 cpp파일에서 선언하기
#include <vector>를 #include "stdafx.h" 바로 밑줄에다 해보세요.
정확히 하자면

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

이거보다 전에 #include <vector>같이 stl헤더를 선언하면 된다.

:

ThinApp(Thinstall) 정리

Portable Life | 2009. 4. 4. 16:54 | Posted by 99%
http://www.thinstall.com/
틴스톨은 위 사이트에서 아이디 등록정도하고 받은 비인증프로그램을
압축풀어버리고선 과자만 먹이면 된다;;

VMWare ThinApp v4.0.2.3089_EN(인스톨+로고제거)
VMware ThinApp v4.0.0-2200

Thinstall 무작정 따라하며 처음으로 사용해보기
Thinstall 로 본격적으로 무설치 프로그램 만들기
Thinstall 을 파일패커처럼 사용해보자~
Thinstall 문서 저장이 안돼요???
Thinstall 이용한 나만의 가상 시스템 만들기
[왕일걸]Sandbox와 Thinstall 제작 프로그램 관리

[푸시켓] Thinstall 언패킹 해보자
[USBUS]Thinstall 언패킹 해보자 SPI v1.0 // Save unPack Info(SPI) v1.0 for Thinstall v3.xxx
[푸시켓] Thinstall을 파일 패커처럼 사용하자 GUI 버전 // Thinstall Direct Packer v0.1
sbmerge 를 이용해보자~ // sbmerge GUI (For Thinstall sandbax merge)
[때꿍] 생성 파일의 Thinstall 정보를 가지고 놀자 // Thinstall등록정보제거Patch
ThinstallHelper v2.2.1.0 // Package.ini관리

VMWare ThinApp v4.0.2.3089(로고제거방법)
ThinApp 4.0.1.2866 의 로고 변경하기
ThinApp(Thinstall)로 만든 프로그램 실행시에 팝업창 뜨지 않게 하기

Thinapp로 휴대용 프로그램 만들기
재미없는 영화 - 감독 싸나이, 주연 Thinstall (한글자막) - 틴스톨 동강
포터블 만들어보자 -[틴스톨 제작강좌]



작업순서
1. Invantory Name설정, USB타입체크, Fast선택
2. 캡쳐후 정상적으로 되는것 확인하고 파일정리작업(용량 줄이기)
3. ThinstallHelper로 Package.ini설정 확인 및 폴더 확인
4. SPI로 언팩킹 준비

5. 제작자 표시 등 확인 작업
-> Save unPack Info(SPI) v1.0
6. 틴스톨 제작 속성 제거
-> ThinstallHelper

Package.ini 편집
-> ThinstallHelper를 사용하면 편하다.

[Compression]
CompressionType=Fast
[Isolation]
DirectoryIsolationMode=Merged
[BuildOptions]
SanboxName=Thinstall 
-> 설정값을 저장하고 써야하는 프로그램은 샌드박스를 가지고 있는게 더편하다.
똑같은 이름보다는 초기 프로그램이름 그대로 두는게 더편한것 같다.
Sandboxpath=.
RemoveSandboxOnExit=1 -> 설정값 자동 삭제를 원하면..
SandboxRemovableDisk=1

Icon=%SystemSystem%\cmd.ico //아이콘 지정하기(실행파일을 지정할수도 있음 도움말 볼것)

SPI(Save unPack Info)로 소스 꼭 풀수 있도록..
-> ReadOnlyData=bin\Package.ro.tvr 이렇게 설정된 메인을 젤 위쪽으로 올려놔야 인식을 잘한다.
   그리고 SIP로 정보를 저장해도 %drive_c%가 없으면 작업루트 폴더(
Package.ini가 있는 폴더)에 생기므로 만들어서 복사해준다.
-> 한글, 오피스같은 큰파일은 제대로 안풀리는거 같다.. 확인 꼭 할것.

속성에 제작자표시(Package.ini)
[Universal Extractor.exe]
Source=%PorgramFilesDir%Universal Extractor\UniExtract.exe
ReadOnlyData=bin\Package.ro.tvr
Version.#포터블 제작자 =99%
Version.#포터블 제작일 =2009년4월4일
속성에서 기호,숫자 등의 순이 제일 위에 나타납니다.그래서 앞에 #의 기호를 붙였기 때문에 제일 상단에 위치..
                                                  Version.원하는 문구 입력(좌측제목)=원하는 문구입력(우측목록)


실행시 샌드박스 찾는 순서
-> 샌드박스 Path를 .이나 USB타입으로 했을 경우는 3번은 생략, 순서대로 찾아도 없으면 자동 생성됨
1. 같은 폴더에 샌드박스명
2. 같은 폴더에 Thinstall폴더안에 샌드박스명
3. C:\Documents and Settings\사용자계정이름\Application Data\Thinstall 폴더에서 샌드박스명
(Application Data폴더는 는 숨김폴더)

:
기본 사용법

CString
CString str;
str.Format("%s%03d", szSomeVar, nSomeVar);

타입 안정성을 중요시하는 C++ 에서는 안타깝게도 CString의 Format 계열 함수가 제공 되지 않는다.
그래서 버퍼를 잡아 C의 런타임함수인 sprintf 함수를 사용하는수 밖에 없다.
그러나 C++에서는 stream 객체가 있으므로 sprintf 보다 우아(?) 하게 사용 할수 있다.

#include <sstream>로 사용할수 있으며 input/output/ input&output 버전이 따로 존재한다.

stringstream  in & out
ostringstream out
istringstream in

유니 코드 버전은 위의 클래스 네임에 w만 앞쪽에 붙여 주면되고
stringstream 내의 함수 중에 str() 멤버 함수로 string 클래스의 객체와 같이 연동해서 쓸 수 있다.

STL
#include <string>
#include <sstream>
#include <iomanip>
 
using namespace std;
ostringstream strStream;
strStream << szSomeVar << setw(3) << setfill('0') << nSomeVar;
string str = strStream.str();

BOOST
#include <boost/format.hpp>
#include <string>
 
std::string someString;
someString = boost::str(boost::format("%s%03d") % szSomeVar % nSomeVar);

CString의 Format에 해당하는 STL 코드와 BOOST 코드


직접 구현하기

1. 코드프로젝트
STL Format

CString의 Format같은 기능을 함수로 구현해 놓은게 있다.
근데 VC6에선 제대로 컴파일이 안된다. 우선 string의 clear는 stlport에는 없다.

2. 권진호님
sprintf 와 string 과의 만남

3. codein.co.kr

#define _MAX_CHARS 8000

int Format(std::string& txt, const TCHAR* szFormat,...)

{ 

    std::vector<TCHAR> _buffer(_MAX_CHARS);

    va_list argList;

    va_start(argList,szFormat);

#ifdef _UNICODE

    int ret = _vsnwprintf(&_buffer[0],_MAX_CHARS,szFormat,argList);

#else

    int ret = _vsnprintf(&_buffer[0],_MAX_CHARS,szFormat,argList);

#endif

    va_end(argList);

    txt.assign(&_buffer[0],ret);

    return ret;

}


4. 본인은 CString의 FromatV함수로 간단히 구현했음.  차라리 CString을 사용하는게 낫지 않냐고 하시면..
내부 구현은 나중에 제대로 테스트후 적용해도 된다. ㅋ

UINT StrPrintf( string& rstr, const char *pFmt, ...  )

    va_list args;
    va_start(args, pFmt);
   
    CString csMsg;
    csMsg.FormatV(pFmt, args);
    rstr = csMsg;
   
    va_end(args);
    return rstr.length();
}


'프로그래밍 > C, C++' 카테고리의 다른 글

boost  (0) 2009.09.25
stringstream 을 사용한 파일 읽기 사용 예제  (0) 2009.05.12
ASCII 문자 코드  (0) 2009.04.15
STLport 설치 및 사용 For VC6  (0) 2009.04.06
: