oxviewconfig.php
Go to the documentation of this file.00001 <?php
00002
00008 class oxViewConfig extends oxSuperCfg
00009 {
00015 protected $_oShop = null;
00016
00022 protected $_aViewData = null;
00023
00029 protected $_aConfigParams = array();
00030
00036 public function getHomeLink()
00037 {
00038 if ( ( $sValue = $this->getViewConfigParam( 'homeLink' ) ) === null ) {
00039 $myConfig = $this->getConfig();
00040 $myUtils = oxUtils::getInstance();
00041 $oLang = oxLang::getInstance();
00042
00043 $sValue = null;
00044
00045
00046 $iLang = $oLang->getBaseLanguage();
00047 if ( $myUtils->seoIsActive() && !$sValue && ( $iLang != $myConfig->getConfigParam( 'sDefaultLang' ) ) ) {
00048 $sValue = oxSeoEncoder::getInstance()->getStaticUrl( $this->getSelfLink() . 'cl=start', $iLang );
00049 }
00050
00051 if ( !$sValue ) {
00052 $sValue = getStr()->preg_replace('#index.php\??$#', '', $this->getSelfLink());
00053 }
00054
00055 $this->setViewConfigParam( 'homeLink', $sValue );
00056 }
00057 return $sValue;
00058 }
00059
00065 public function getActTplName()
00066 {
00067 $sTplName = oxConfig::getParameter( 'tpl' );
00068
00069 if ( !$sTplName ) {
00070 $sTplName = $this->getViewConfigParam('tpl');
00071 }
00072 return $sTplName ? basename( $sTplName ) : null;
00073 }
00074
00080 public function getLogoutLink()
00081 {
00082 $sClass = $this->getActiveClassName();
00083 $sCatnid = $this->getActCatId();
00084 $sTplName = $this->getActTplName();
00085
00086 return $this->getConfig()->getShopHomeURL()."cl={$sClass}&".( $sCatnid ? "cnid={$sCatnid}" : '' )."&fnc=logout".( $sTplName ? "&tpl=".basename( $sTplName ) : '' )."&redirect=1";
00087 }
00088
00094 public function getHelpLink()
00095 {
00096 $sTplName = $this->getActTplName();
00097 $sClass = $this->getActiveClassName();
00098 return $this->getConfig()->getShopCurrentURL()."cl=help&page={$sClass}".( $sTplName ? "&tpl={$sTplName}" : '' );
00099 }
00100
00106 public function getActCatId()
00107 {
00108 return oxConfig::getParameter( 'cnid' );
00109 }
00110
00116 public function getActManufacturerId()
00117 {
00118 return oxConfig::getParameter( 'mnid' );
00119 }
00120
00128 public function getTypeLinkParams()
00129 {
00130 $sLink = '';
00131 if ( ( $sId = $this->getActCatId() ) ) {
00132 $sLink .= "cnid={$sId}";
00133 }
00134 if ( ( $sId = $this->getActManufacturerId() ) ) {
00135 $sLink .= "mnid={$sId}";
00136 }
00137
00138 return $sLink;
00139 }
00140
00148 public function getTypeParams()
00149 {
00150 $sForm = '';
00151 if ( ( $sId = $this->getActCatId() ) ) {
00152 $sForm .= "<input type=\"hidden\" name=\"cnid\" value=\"{$sId}\">\n";
00153 }
00154 if ( ( $sId = $this->getActManufacturerId() ) ) {
00155 $sForm .= "<input type=\"hidden\" name=\"mnid\" value=\"{$sId}\">\n";
00156 }
00157
00158 return $sForm;
00159 }
00160
00172 public function setViewConfigParam( $sName, $sValue )
00173 {
00174 startProfile('oxviewconfig::setViewConfigParam');
00175
00176 $this->_aConfigParams[$sName] = $sValue;
00177
00178 stopProfile('oxviewconfig::setViewConfigParam');
00179 }
00180
00188 public function getViewConfigParam( $sName )
00189 {
00190 startProfile('oxviewconfig::getViewConfigParam');
00191
00192 if ( $this->_oShop && isset( $this->_oShop->$sName ) ) {
00193 $sValue = $this->_oShop->$sName;
00194 } elseif ( $this->_aViewData && isset( $this->_aViewData[ $sName ] ) ) {
00195 $sValue = $this->_aViewData[ $sName ];
00196 } else {
00197 $sValue = ( isset( $this->_aConfigParams[ $sName ] ) ? $this->_aConfigParams[ $sName ] : null );
00198 }
00199
00200 stopProfile('oxviewconfig::getViewConfigParam');
00201
00202 return $sValue;
00203 }
00204
00214 public function setViewShop( $oShop, $aViewData )
00215 {
00216 $this->_oShop = $oShop;
00217 $this->_aViewData = $aViewData;
00218 }
00219
00232 public function __call( $sMethodName, $sParams )
00233 {
00234 startProfile('oxviewconfig::__call');
00235 if ( stripos( $sMethodName, 'get' ) === 0 ) {
00236 return $this->getViewVar( substr( $sMethodName, 3 ) );
00237 }
00238 stopProfile('oxviewconfig::__call');
00239 }
00240
00246 public function getSessionId()
00247 {
00248 if ( ( $sValue = $this->getViewConfigParam( 'sessionid' ) ) === null ) {
00249 $sValue = $this->getSession()->getId();
00250 $this->setViewConfigParam( 'sessionid', $sValue );
00251 }
00252 return $sValue;
00253 }
00254
00260 public function getHiddenSid()
00261 {
00262 if ( ( $sValue = $this->getViewConfigParam( 'hiddensid' ) ) === null ) {
00263 $sValue = $this->getSession()->hiddenSid();
00264
00265
00266 if ( ( $sLang = oxLang::getInstance()->getFormLang() ) ) {
00267 $sValue .= "\n{$sLang}";
00268 }
00269
00270
00271 $this->setViewConfigParam( 'hiddensid', $sValue );
00272 }
00273 return $sValue;
00274 }
00275
00281 public function getSelfLink()
00282 {
00283 if ( ( $sValue = $this->getViewConfigParam( 'selflink' ) ) === null ) {
00284 $sValue = $this->getConfig()->getShopHomeURL();
00285 $this->setViewConfigParam( 'selflink', $sValue );
00286 }
00287 return $sValue;
00288 }
00289
00295 public function getSslSelfLink()
00296 {
00297 if ( ( $sValue = $this->getViewConfigParam( 'sslselflink' ) ) === null ) {
00298 $sValue = $this->getConfig()->getShopSecureHomeURL();
00299 $this->setViewConfigParam( 'sslselflink', $sValue );
00300 }
00301 return $sValue;
00302 }
00303
00309 public function getBaseDir()
00310 {
00311 if ( ( $sValue = $this->getViewConfigParam( 'basedir' ) ) === null ) {
00312 $sValue = $this->getConfig()->getShopURL();
00313 $this->setViewConfigParam( 'basedir', $sValue );
00314 }
00315 return $sValue;
00316 }
00317
00323 public function getCoreUtilsDir()
00324 {
00325 if ( ( $sValue = $this->getViewConfigParam( 'coreutilsdir' ) ) === null ) {
00326 $sValue = $this->getConfig()->getCoreUtilsURL();
00327 $this->setViewConfigParam( 'coreutilsdir', $sValue );
00328 }
00329 return $sValue;
00330 }
00331
00337 public function getSelfActionLink()
00338 {
00339 if ( ( $sValue = $this->getViewConfigParam( 'selfactionlink' ) ) === null ) {
00340 $sValue = $this->getConfig()->getShopCurrentUrl();
00341 $this->setViewConfigParam( 'selfactionlink', $sValue );
00342 }
00343 return $sValue;
00344 }
00345
00351 public function getCurrentHomeDir()
00352 {
00353 if ( ( $sValue = $this->getViewConfigParam( 'currenthomedir' ) ) === null ) {
00354 $sValue = $this->getConfig()->getCurrentShopUrl();
00355 $this->setViewConfigParam( 'currenthomedir', $sValue );
00356 }
00357 return $sValue;
00358 }
00359
00365 public function getBasketLink()
00366 {
00367 if ( ( $sValue = $this->getViewConfigParam( 'basketlink' ) ) === null ) {
00368 $sValue = $this->getConfig()->getShopHomeURL() . 'cl=basket';
00369 $this->setViewConfigParam( 'basketlink', $sValue );
00370 }
00371 return $sValue;
00372 }
00373
00379 public function getOrderLink()
00380 {
00381 if ( ( $sValue = $this->getViewConfigParam( 'orderlink' ) ) === null ) {
00382 $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=user';
00383 $this->setViewConfigParam( 'orderlink', $sValue );
00384 }
00385 return $sValue;
00386 }
00387
00393 public function getPaymentLink()
00394 {
00395 if ( ( $sValue = $this->getViewConfigParam( 'paymentlink' ) ) === null ) {
00396 $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=payment';
00397 $this->setViewConfigParam( 'paymentlink', $sValue );
00398 }
00399 return $sValue;
00400 }
00401
00407 public function getExeOrderLink()
00408 {
00409 if ( ( $sValue = $this->getViewConfigParam( 'exeorderlink' ) ) === null ) {
00410 $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order&fnc=execute';
00411 $this->setViewConfigParam( 'exeorderlink', $sValue );
00412 }
00413 return $sValue;
00414 }
00415
00421 public function getOrderConfirmLink()
00422 {
00423 if ( ( $sValue = $this->getViewConfigParam( 'orderconfirmlink' ) ) === null ) {
00424 $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order';
00425 $this->setViewConfigParam( 'orderconfirmlink', $sValue );
00426 }
00427 return $sValue;
00428 }
00429
00435 public function getResourceUrl()
00436 {
00437 if ( ( $sValue = $this->getViewConfigParam( 'basetpldir' ) ) === null ) {
00438 $sValue = $this->getConfig()->getResourceUrl( null, $this->isAdmin() );
00439 $this->setViewConfigParam( 'basetpldir', $sValue );
00440 }
00441 return $sValue;
00442 }
00443
00449 public function getTemplateDir()
00450 {
00451 if ( ( $sValue = $this->getViewConfigParam( 'templatedir' ) ) === null ) {
00452 $sValue = $this->getConfig()->getTemplateDir( $this->isAdmin() );
00453 $this->setViewConfigParam( 'templatedir', $sValue );
00454 }
00455 return $sValue;
00456 }
00457
00463 public function getUrlTemplateDir()
00464 {
00465 if ( ( $sValue = $this->getViewConfigParam( 'urltemplatedir' ) ) === null ) {
00466 $sValue = $this->getConfig()->getTemplateUrl( $this->isAdmin() );
00467 $this->setViewConfigParam( 'urltemplatedir', $sValue );
00468 }
00469 return $sValue;
00470 }
00471
00477 public function getImageUrl()
00478 {
00479 if ( ( $sValue = $this->getViewConfigParam( 'imagedir' ) ) === null ) {
00480 $sValue = $this->getConfig()->getImageUrl( $this->isAdmin() );
00481 $this->setViewConfigParam( 'imagedir', $sValue );
00482 }
00483 return $sValue;
00484 }
00485
00491 public function getNoSslImageDir()
00492 {
00493 if ( ( $sValue = $this->getViewConfigParam( 'nossl_imagedir' ) ) === null ) {
00494 $sValue = $this->getConfig()->getImageUrl( $this->isAdmin(), false );
00495 $this->setViewConfigParam( 'nossl_imagedir', $sValue );
00496 }
00497 return $sValue;
00498 }
00499
00506 public function getPictureDir()
00507 {
00508 if ( ( $sValue = $this->getViewConfigParam( 'picturedir' ) ) === null ) {
00509 $sValue = $this->getConfig()->getPictureUrl( null, $this->isAdmin() );
00510 $this->setViewConfigParam( 'picturedir', $sValue );
00511 }
00512 return $sValue;
00513 }
00514
00520 public function getAdminDir()
00521 {
00522 if ( ( $sValue = $this->getViewConfigParam( 'sAdminDir' ) ) === null ) {
00523 $sValue = $this->getConfig()->getConfigParam( 'sAdminDir' );
00524 $this->setViewConfigParam( 'sAdminDir', $sValue );
00525 }
00526 return $sValue;
00527 }
00528
00534 public function getActiveShopId()
00535 {
00536 if ( ( $sValue = $this->getViewConfigParam( 'shopid' ) ) === null ) {
00537 $sValue = $this->getConfig()->getShopId();
00538 $this->setViewConfigParam( 'shopid', $sValue );
00539 }
00540 return $sValue;
00541 }
00542
00548 public function isSsl()
00549 {
00550 if ( ( $sValue = $this->getViewConfigParam( 'isssl' ) ) === null ) {
00551 $sValue = $this->getConfig()->isSsl();
00552 $this->setViewConfigParam( 'isssl', $sValue );
00553 }
00554 return $sValue;
00555 }
00556
00557
00563 public function getRemoteAddress()
00564 {
00565 if ( ( $sValue = $this->getViewConfigParam( 'ip' ) ) === null ) {
00566 $sValue = oxUtilsServer::getInstance()->getRemoteAddress();
00567 $this->setViewConfigParam( 'ip', $sValue );
00568 }
00569 return $sValue;
00570 }
00571
00577 public function getPopupIdent()
00578 {
00579 if ( ( $sValue = $this->getViewConfigParam( 'popupident' ) ) === null ) {
00580 $sValue = md5( $this->getConfig()->getShopUrl() );
00581 $this->setViewConfigParam( 'popupident', $sValue );
00582 }
00583 return $sValue;
00584 }
00585
00591 public function getPopupIdentRand()
00592 {
00593 if ( ( $sValue = $this->getViewConfigParam( 'popupidentrand' ) ) === null ) {
00594 $sValue = md5( time() );
00595 $this->setViewConfigParam( 'popupidentrand', $sValue );
00596 }
00597 return $sValue;
00598 }
00599
00605 public function getArtPerPageForm()
00606 {
00607 if ( ( $sValue = $this->getViewConfigParam( 'artperpageform' ) ) === null ) {
00608 $sValue = $this->getConfig()->getShopCurrentUrl();
00609 $this->setViewConfigParam( 'artperpageform', $sValue );
00610 }
00611 return $sValue;
00612 }
00613
00619 public function isBuyableParent()
00620 {
00621 return $this->getConfig()->getConfigParam( 'blVariantParentBuyable' );
00622 }
00623
00629 public function showBirthdayFields()
00630 {
00631 return $this->getConfig()->getConfigParam( 'blShowBirthdayFields' );
00632 }
00633
00639 public function showFinalStep()
00640 {
00641 return $this->getConfig()->getConfigParam( 'blShowFinalStep' );
00642 }
00643
00649 public function getNrOfCatArticles()
00650 {
00651 return $this->getConfig()->getConfigParam( 'aNrofCatArticles' );
00652 }
00653
00659 public function getShowWishlist()
00660 {
00661 return $this->getConfig()->getConfigParam( 'bl_showWishlist' );
00662 }
00663
00669 public function getShowCompareList()
00670 {
00671 return $this->getConfig()->getConfigParam( 'bl_showCompareList' );
00672 }
00673
00679 public function getShowListmania()
00680 {
00681 return $this->getConfig()->getConfigParam( 'bl_showListmania' );
00682 }
00683
00689 public function getShowOpenIdLogin()
00690 {
00691 return $this->getConfig()->getConfigParam( 'bl_showOpenId' );
00692 }
00693
00699 public function getShowVouchers()
00700 {
00701 return $this->getConfig()->getConfigParam( 'bl_showVouchers' );
00702 }
00703
00709 public function getShowGiftWrapping()
00710 {
00711 return $this->getConfig()->getConfigParam( 'bl_showGiftWrapping' );
00712 }
00713
00719 public function isAutoSearchOnCat()
00720 {
00721 return $this->getConfig()->getConfigParam( 'blAutoSearchOnCat' );
00722 }
00723
00729 public function getActLanguageId()
00730 {
00731 if ( ( $sValue = $this->getViewConfigParam( 'lang' ) ) === null ) {
00732 $iLang = oxConfig::getParameter( 'lang' );
00733 $sValue = ( $iLang !== null ) ? $iLang : oxLang::getInstance()->getBaseLanguage();
00734 $this->setViewConfigParam( 'lang', $sValue );
00735 }
00736 return $sValue;
00737 }
00738
00744 public function getActiveClassName()
00745 {
00746 return $this->getConfig()->getActiveView()->getClassName();
00747 }
00748
00754 public function getArtPerPageCount()
00755 {
00756 return $this->getViewConfigParam( 'iartPerPage' );
00757 }
00758
00764 public function getNavUrlParams()
00765 {
00766 if ( ( $sParams = $this->getViewConfigParam( 'navurlparams' ) ) === null ) {
00767 $sParams = '';
00768 $aNavParams = $this->getConfig()->getActiveView()->getNavigationParams();
00769 foreach ( $aNavParams as $sName => $sValue ) {
00770 if ( isset( $sValue ) ) {
00771 if ( $sParams ) {
00772 $sParams .= '&';
00773 }
00774 $sParams .= "{$sName}=".rawurlencode( $sValue );
00775 }
00776 }
00777 if ( $sParams ) {
00778 $sParams = '&'.$sParams;
00779 }
00780 $this->setViewConfigParam( 'navurlparams', $sParams );
00781 }
00782
00783 return $sParams;
00784 }
00785
00791 public function getNavFormParams()
00792 {
00793
00794 if ( ( $sParams = $this->getViewConfigParam( 'navformparams' ) ) === null ) {
00795 $oStr = getStr();
00796 $sParams = '';
00797 $aNavParams = $this->getConfig()->getActiveView()->getNavigationParams();
00798 foreach ( $aNavParams as $sName => $sValue ) {
00799 if ( isset( $sValue ) ) {
00800 $sParams .= "<input type=\"hidden\" name=\"{$sName}\" value=\"".$oStr->htmlentities( $sValue )."\">\n";
00801 }
00802 }
00803 $this->setViewConfigParam( 'navformparams', $sParams );
00804 }
00805 return $sParams;
00806 }
00807
00813 public function getStockOnDefaultMessage()
00814 {
00815 return $this->getConfig()->getConfigParam( 'blStockOnDefaultMessage' );
00816 }
00817
00823 public function getStockOffDefaultMessage()
00824 {
00825 return $this->getConfig()->getConfigParam( 'blStockOffDefaultMessage' );
00826 }
00827
00833 public function getShopVersion()
00834 {
00835 return $this->getViewConfigParam( 'sShopVersion' );
00836 }
00837
00843 public function getAjaxLink()
00844 {
00845 return $this->getViewConfigParam( 'ajaxlink' );
00846 }
00847
00853 public function isMultiShop()
00854 {
00855 $oShop = $this->getConfig()->getActiveShop();
00856 return isset( $oShop->oxshops__oxismultishop ) ? ( (bool) $oShop->oxshops__oxismultishop->value ) : false;
00857 }
00858
00864 public function getServiceUrl()
00865 {
00866 return $this->getViewConfigParam( 'sServiceUrl' );
00867 }
00868
00876 public function __get( $sVarName )
00877 {
00878 return $this->getViewVar( $sVarName );
00879 }
00880
00888 public function getViewVar( $sVarName )
00889 {
00890 startProfile('oxviewconfig::__get');
00891
00892 $myConfig = $this->getConfig();
00893
00894
00895 if ( ( $sVarValue = $this->getViewConfigParam( $sVarName ) ) === null ) {
00896
00897
00898 switch ( strtolower( $sVarName ) ) {
00899 case 'sid' :
00900 $sVarValue = $this->getSessionId();
00901 break;
00902 case 'hiddensid' :
00903 $sVarValue = $this->getHiddenSid();
00904 break;
00905 case 'selflink' :
00906 $sVarValue = $this->getSelfLink();
00907 break;
00908 case 'sslselflink' :
00909 $sVarValue = $this->getSslSelfLink();
00910 break;
00911
00912 case 'basedir' :
00913 $sVarValue = $this->getBaseDir();
00914 break;
00915 case 'coreutilsdir' :
00916 $sVarValue = $this->getCoreUtilsDir();
00917 break;
00918 case 'selfactionlink' :
00919 $sVarValue = $this->getSelfActionLink();
00920 break;
00921
00922 case 'currenthomedir' :
00923 $sVarValue = $this->getCurrentHomeDir();
00924 break;
00925 case 'basketlink' :
00926 $sVarValue = $this->getBasketLink();
00927 break;
00928 case 'orderlink' :
00929 $sVarValue = $this->getOrderLink();
00930 break;
00931 case 'paymentlink' :
00932 $sVarValue = $this->getPaymentLink();
00933 break;
00934 case 'exeorderlink' :
00935 $sVarValue = $this->getExeOrderLink();
00936 break;
00937 case 'orderconfirmlink' :
00938 $sVarValue = $this->getOrderConfirmLink();
00939 break;
00940 case 'basetpldir' :
00941 $sVarValue = $this->getResourceUrl();
00942 break;
00943 case 'templatedir' :
00944 $sVarValue = $this->getTemplateDir();
00945 break;
00946 case 'urltemplatedir' :
00947 $sVarValue = $this->getUrlTemplateDir();
00948 break;
00949 case 'imagedir' :
00950 $sVarValue = $this->getImageUrl();
00951 break;
00952 case 'nossl_imagedir' :
00953 $sVarValue = $this->getNoSslImageDir();
00954 break;
00955 case 'dimagedir' :
00956 $sVarValue = $this->getPictureDir();
00957 break;
00958
00959
00960 case 'admindir' :
00961 $sVarValue = $this->getAdminDir();
00962 break;
00963 case 'id' :
00964 $sVarValue = $this->getActiveShopId();
00965 break;
00966 case 'isssl' :
00967 $sVarValue = $this->isSsl();
00968 break;
00969 case 'ip' :
00970 $sVarValue = $this->getRemoteAddress();
00971 break;
00972 case 'popupident' :
00973 $sVarValue = $this->getPopupIdent();
00974 break;
00975 case 'popupidentrand' :
00976 $sVarValue = $this->getPopupIdentRand();
00977 break;
00978 case 'artperpageform' :
00979 $sVarValue = $this->getArtPerPageForm();
00980 break;
00981 case 'buyableparent' :
00982 $sVarValue = $this->isBuyableParent();
00983 break;
00984 case 'blshowbirthdayfields' :
00985 $sVarValue = $this->showBirthdayFields();
00986 break;
00987 case 'blshowfinalstep' :
00988 $sVarValue = $this->showFinalStep();
00989 break;
00990 case 'anrofcatarticles' :
00991 $sVarValue = $this->getNrOfCatArticles();
00992 break;
00993 case 'blautosearchoncat' :
00994 $sVarValue = $this->isAutoSearchOnCat();
00995 break;
00996 case 'cnid' :
00997 $sVarValue = $this->getActCatId();
00998 break;
00999 case 'cl' :
01000 $sVarValue = $this->getActiveClassName();
01001 break;
01002 case 'tpl' :
01003 $sVarValue = $this->getActTplName();
01004 break;
01005 case 'lang' :
01006 case 'slanguage' :
01007 $sVarValue = $this->getActLanguageId();
01008 break;
01009 case 'helplink' :
01010 $sVarValue = $this->getHelpLink();
01011 break;
01012 case 'logoutlink' :
01013 $sVarValue = $this->getLogoutLink();
01014 break;
01015 case 'iartPerPage':
01016 $sVarValue = $this->getArtPerPageCount();
01017 break;
01018 case 'navurlparams':
01019 $sVarValue = $this->getNavUrlParams();
01020 break;
01021 case 'navformparams':
01022 $sVarValue = $this->getNavFormParams();
01023 break;
01024 case 'blstockondefaultmessage':
01025 $sVarValue = $this->getStockOnDefaultMessage();
01026 break;
01027 case 'blstockoffdefaultmessage':
01028 $sVarValue = $this->getStockOffDefaultMessage();
01029 break;
01030 case 'sShopVersion':
01031 $sVarValue = $this->getShopVersion();
01032 break;
01033 case 'ajaxlink':
01034 $sVarValue = $this->getAjaxLink();
01035 break;
01036 case 'ismultishop':
01037 $sVarValue = $this->isMultiShop();
01038 break;
01039 case 'sServiceUrl':
01040 $sVarValue = $this->getServiceUrl();
01041 break;
01042 }
01043 }
01044
01045 $this->setViewConfigParam( $sVarName, $sVarValue );
01046
01047 stopProfile('oxviewconfig::__get');
01048
01049 return $sVarValue;
01050 }
01051
01058 public function getRemoteAccessToken()
01059 {
01060 $sRaToken = oxSession::getInstance()->getRemoteAccessToken();
01061
01062 return $sRaToken;
01063 }
01064 }