mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-25 13:48:53 +08:00
12 lines
36 KiB
Go
12 lines
36 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package license ;import (_bf "bytes";_c "compress/gzip";_dc "crypto";_fc "crypto/aes";_cfb "crypto/cipher";_bfg "crypto/rand";_ceg "crypto/rsa";_ba "crypto/sha256";_ab "crypto/sha512";_bfb "crypto/x509";_cf "encoding/base64";_ec "encoding/binary";_f "encoding/hex";_fg "encoding/json";_ce "encoding/pem";_ae "errors";_ef "fmt";_abe "github.com/unidoc/unioffice/common";_efg "github.com/unidoc/unioffice/common/logger";_df "io";_e "io/ioutil";_bd "log";_dcg "net";_cb "net/http";_af "os";_bb "path/filepath";_db "regexp";_a "sort";_ag "strings";_b "sync";_aeg "time";);type LegacyLicense struct{Name string ;Signature string `json:",omitempty"`;Expiration _aeg .Time ;LicenseType LegacyLicenseType ;};func (_gfa *meteredClient )getStatus ()(meteredStatusResp ,error ){var _dba meteredStatusResp ;_fce :=_gfa ._dee +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _bgc meteredStatusForm ;_bgce ,_faa :=_fg .Marshal (_bgc );if _faa !=nil {return _dba ,_faa ;};_eba ,_faa :=_da (_bgce );if _faa !=nil {return _dba ,_faa ;};_bef ,_faa :=_cb .NewRequest ("\u0050\u004f\u0053\u0054",_fce ,_eba );if _faa !=nil {return _dba ,_faa ;};_bef .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");_bef .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_bef .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_bef .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_gfa ._add );_gcf ,_faa :=_gfa ._adf .Do (_bef );if _faa !=nil {return _dba ,_faa ;};defer _gcf .Body .Close ();if _gcf .StatusCode !=200{return _dba ,_ef .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_gcf .StatusCode );};_fd ,_faa :=_adfc (_gcf );if _faa !=nil {return _dba ,_faa ;};_faa =_fg .Unmarshal (_fd ,&_dba );if _faa !=nil {return _dba ,_faa ;};return _dba ,nil ;};func _gb (_bdd string )(LicenseKey ,error ){var _gd LicenseKey ;_gac ,_adb :=_bcb (_bfa ,_ad ,_bdd );if _adb !=nil {return _gd ,_adb ;};_dcge ,_adb :=_cda (_dbb ,_gac );if _adb !=nil {return _gd ,_adb ;};_adb =_fg .Unmarshal (_dcge ,&_gd );if _adb !=nil {return _gd ,_adb ;};_gd .CreatedAt =_aeg .Unix (_gd .CreatedAtInt ,0);if _gd .ExpiresAtInt > 0{_efa :=_aeg .Unix (_gd .ExpiresAtInt ,0);_gd .ExpiresAt =_efa ;};return _gd ,nil ;};const (_bfa ="\u002d\u002d\u002d--\u0042\u0045\u0047\u0049\u004e\u0020\u0055\u004e\u0049D\u004fC\u0020L\u0049C\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";_ad ="\u002d\u002d\u002d\u002d\u002d\u0045\u004e\u0044\u0020\u0055\u004e\u0049\u0044\u004f\u0043 \u004cI\u0043\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";);var _cdd =_aeg .Date (2019,6,6,0,0,0,0,_aeg .UTC );type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;};const _bbg ="\u0055\u004e\u0049\u004fFF\u0049\u0043\u0045\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041T\u0048";func _ed (_g string ,_aa []byte )(string ,error ){_dd ,_ :=_ce .Decode ([]byte (_g ));if _dd ==nil {return "",_ef .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");};_bbb ,_ced :=_bfb .ParsePKCS1PrivateKey (_dd .Bytes );if _ced !=nil {return "",_ced ;};_cd :=_ab .New ();_cd .Write (_aa );_eg :=_cd .Sum (nil );_bc ,_ced :=_ceg .SignPKCS1v15 (_bfg .Reader ,_bbb ,_dc .SHA512 ,_eg );if _ced !=nil {return "",_ced ;};_cab :=_cf .StdEncoding .EncodeToString (_aa );_cab +="\u000a\u002b\u000a";_cab +=_cf .StdEncoding .EncodeToString (_bc );return _cab ,nil ;};func _gbfc ()(_dcg .IP ,error ){_cfcg ,_deec :=_dcg .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");if _deec !=nil {return nil ,_deec ;};defer _cfcg .Close ();_gcd :=_cfcg .LocalAddr ().(*_dcg .UDPAddr );return _gcd .IP ,nil ;};func _adfc (_ffbb *_cb .Response )([]byte ,error ){var _aff []byte ;_eaf ,_ggbd :=_cfga (_ffbb );if _ggbd !=nil {return _aff ,_ggbd ;};return _e .ReadAll (_eaf );};var _aad =&_b .Mutex {};func (_bdde defaultStateHolder )updateState (_dfbb ,_bfbf ,_bddc string ,_gg int ,_bcd bool ,_bccc int ,_edd int ,_geb _aeg .Time ,_agb map[string ]int )error {_dfd :=_fgd ();if len (_dfd )==0{return _ae .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_afdc :=_bb .Join (_dfd ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_aef :=_af .MkdirAll (_afdc ,0777);if _aef !=nil {return _aef ;};if len (_dfbb )< 20{return _ae .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_ccd :=[]byte (_dfbb );_gfe :=_ab .Sum512_256 (_ccd [:20]);_dgc :=_f .EncodeToString (_gfe [:]);_dgf :=_bb .Join (_afdc ,_dgc );var _def reportState ;_def .Docs =int64 (_gg );_def .NumErrors =int64 (_edd );_def .LimitDocs =_bcd ;_def .RemainingDocs =int64 (_bccc );_def .LastWritten =_aeg .Now ().UTC ();_def .LastReported =_geb ;_def .Instance =_bfbf ;_def .Next =_bddc ;_def .Usage =_agb ;_eec ,_aef :=_fg .Marshal (_def );if _aef !=nil {return _aef ;};const _cabd ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_eec ,_aef =_deee ([]byte (_cabd ),_eec );if _aef !=nil {return _aef ;};_aef =_e .WriteFile (_dgf ,_eec ,0600);if _aef !=nil {return _aef ;};return nil ;};func TrackUse (useKey string ){if _ccfd ==nil {return ;};if !_ccfd ._eb ||len (_ccfd ._aeb )==0{return ;};if len (useKey )==0{return ;};_aad .Lock ();defer _aad .Unlock ();if _cad ==nil {_cad =map[string ]int {};};_cad [useKey ]++;};func _cda (_cc string ,_dg string )([]byte ,error ){var (_be int ;_cfa string ;);for _ ,_cfa =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _be =_ag .Index (_dg ,_cfa );_be !=-1{break ;};};if _be ==-1{return nil ,_ef .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u002c \u0073i\u0067n\u0061t\u0075\u0072\u0065\u0020\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u006f\u0072");};_aba :=_dg [:_be ];_efge :=_be +len (_cfa );_ge :=_dg [_efge :];if _aba ==""||_ge ==""{return nil ,_ef .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u0069n\u0070\u0075\u0074,\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0069\u0067\u0069n\u0061\u006c \u006f\u0072\u0020\u0073\u0069\u0067n\u0061\u0074u\u0072\u0065");};_fga ,_cg :=_cf .StdEncoding .DecodeString (_aba );if _cg !=nil {return nil ,_ef .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_ac ,_cg :=_cf .StdEncoding .DecodeString (_ge );if _cg !=nil {return nil ,_ef .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_cfc ,_ :=_ce .Decode ([]byte (_cc ));if _cfc ==nil {return nil ,_ef .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_dfc ,_cg :=_bfb .ParsePKIXPublicKey (_cfc .Bytes );if _cg !=nil {return nil ,_cg ;};_fa :=_dfc .(*_ceg .PublicKey );if _fa ==nil {return nil ,_ef .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_bg :=_ab .New ();_bg .Write (_fga );_cfbg :=_bg .Sum (nil );_cg =_ceg .VerifyPKCS1v15 (_fa ,_dc .SHA512 ,_cfbg ,_ac );if _cg !=nil {return nil ,_cg ;};return _fga ,nil ;};func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_efg .Log .Error ("\u004d\u0065\u0074\u0065\u0072e\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049 \u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079");_efg .Log .Error ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020\u006f\u006e\u0065\u0020\u0069\u006e\u0020\u0074h\u0065\u0020\u0046\u0072\u0065\u0065\u0020\u0054\u0069\u0065\u0072\u0020\u0061t\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006fud\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _ef .Errorf ("\u006de\u0074\u0065\u0072e\u0064\u0020\u006ci\u0063en\u0073\u0065\u0020\u0061\u0070\u0069\u0020k\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u003a\u0020\u0063\u0072\u0065\u0061\u0074\u0065 o\u006ee\u0020\u0061\u0074\u0020\u0068\u0074t\u0070\u0073\u003a\u002f\u002fc\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063.\u0069\u006f");};if _ccfd !=nil &&(_ccfd ._eb ||_ccfd .Tier !=LicenseTierUnlicensed ){_efg .Log .Error ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0043\u0061\u006e\u006eo\u0074 \u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0074\u0077\u0069c\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u006a\u0075\u0073\u0074\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065");return _ae .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_dcf :=_dgd ();_dcf ._add =apiKey ;_cbd ,_fb :=_dcf .getStatus ();if _fb !=nil {return _fb ;};if !_cbd .Valid {return _ae .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_gca :=&LicenseKey {_eb :true ,_aeb :apiKey };_ccfd =_gca ;return nil ;};var _ccb *_ceg .PublicKey ;type LegacyLicenseType byte ;func _fgd ()string {_becg :=_af .Getenv ("\u0048\u004f\u004d\u0045");if len (_becg )==0{_becg ,_ =_af .UserHomeDir ();};return _becg ;};func GetMeteredState ()(MeteredStatus ,error ){if _ccfd ==nil {return MeteredStatus {},_ae .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};if !_ccfd ._eb ||len (_ccfd ._aeb )==0{return MeteredStatus {},_ae .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_deed ,_ea :=_adddb .loadState (_ccfd ._aeb );if _ea !=nil {_efg .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ea );return MeteredStatus {},_ea ;};if _deed .Docs > 0{_ff :=_eae ("","",true );if _ff !=nil {return MeteredStatus {},_ff ;};};_aad .Lock ();defer _aad .Unlock ();_dca :=_dgd ();_dca ._add =_ccfd ._aeb ;_ega ,_ea :=_dca .getStatus ();if _ea !=nil {return MeteredStatus {},_ea ;};if !_ega .Valid {return MeteredStatus {},_ae .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_ffa :=MeteredStatus {OK :true ,Credits :_ega .OrgCredits ,Used :_ega .OrgUsed };return _ffa ,nil ;};const _dfca ="\u0055\u004e\u0049OF\u0046\u0049\u0043\u0045\u005f\u0043\u0055\u0053\u0054\u004f\u004d\u0045\u0052\u005f\u004e\u0041\u004d\u0045";func init (){_ecc ,_egbb :=_f .DecodeString (_gf );if _egbb !=nil {_bd .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_egbb );};_dfb ,_egbb :=_bfb .ParsePKIXPublicKey (_ecc );if _egbb !=nil {_bd .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_egbb );};_ccb =_dfb .(*_ceg .PublicKey );};func SetLicenseKey (content string ,customerName string )error {if _dccf {return nil ;};_bcdf ,_ebf :=_gb (content );if _ebf !=nil {_efg .Log .Error ("\u004c\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020\u0065\u0072\u0072\u006f\u0072: \u0025\u0076",_ebf );return _ebf ;};if !_ag .EqualFold (_bcdf .CustomerName ,customerName ){_efg .Log .Error ("L\u0069ce\u006es\u0065 \u0063\u006f\u0064\u0065\u0020i\u0073\u0073\u0075e\u0020\u002d\u0020\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006da\u0074\u0063\u0068, e\u0078\u0070\u0065\u0063\u0074\u0065d\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067o\u0074 \u0027\u0025\u0073\u0027",customerName ,_bcdf .CustomerName );return _ef .Errorf ("\u0063\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061t\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074\u0020\u0027\u0025\u0073'",customerName ,_bcdf .CustomerName );};_ebf =_bcdf .Validate ();if _ebf !=nil {_efg .Log .Error ("\u004c\u0069\u0063\u0065\u006e\u0073e\u0020\u0063\u006f\u0064\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_ebf );return _ebf ;};_ccfd =&_bcdf ;return nil ;};func (_ecg *LicenseKey )IsLicensed ()bool {if _ecg ==nil {return false ;};return _ecg .Tier !=LicenseTierUnlicensed ||_ecg ._eb ;};var _ccfd =MakeUnlicensedKey ();func MakeUnlicensedKey ()*LicenseKey {_bba :=LicenseKey {};_bba .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_bba .Tier =LicenseTierUnlicensed ;_bba .CreatedAt =_aeg .Now ().UTC ();_bba .CreatedAtInt =_bba .CreatedAt .Unix ();return &_bba ;};func _bcb (_gc string ,_fcg string ,_dcd string )(string ,error ){_bcc :=_ag .Index (_dcd ,_gc );if _bcc ==-1{return "",_ef .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_ade :=_ag .Index (_dcd ,_fcg );if _ade ==-1{return "",_ef .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_egb :=_bcc +len (_gc )+1;return _dcd [_egb :_ade -1],nil ;};type meteredUsageCheckinForm struct{Instance string `json:"inst"`;Next string `json:"next"`;UsageNumber int `json:"usage_number"`;NumFailed int64 `json:"num_failed"`;Hostname string `json:"hostname"`;LocalIP string `json:"local_ip"`;MacAddress string `json:"mac_address"`;Package string `json:"package"`;PackageVersion string `json:"package_version"`;Usage map[string ]int `json:"u"`;};const (LicenseTierUnlicensed ="\u0075\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";LicenseTierCommunity ="\u0063o\u006d\u006d\u0075\u006e\u0069\u0074y";LicenseTierIndividual ="\u0069\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";LicenseTierBusiness ="\u0062\u0075\u0073\u0069\u006e\u0065\u0073\u0073";);type reportState struct{Instance string `json:"inst"`;Next string `json:"n"`;Docs int64 `json:"d"`;NumErrors int64 `json:"e"`;LimitDocs bool `json:"ld"`;RemainingDocs int64 `json:"rd"`;LastReported _aeg .Time `json:"lr"`;LastWritten _aeg .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};var _gbe map[string ]struct{};type meteredClient struct{_dee string ;_add string ;_adf *_cb .Client ;};func SetLegacyLicenseKey (s string )error {_bddeb :=_db .MustCompile ("\u005c\u0073");s =_bddeb .ReplaceAllString (s ,"");var _acdg _df .Reader ;_acdg =_ag .NewReader (s );_acdg =_cf .NewDecoder (_cf .RawURLEncoding ,_acdg );_acdg ,_dab :=_c .NewReader (_acdg );if _dab !=nil {return _dab ;};_fded :=_fg .NewDecoder (_acdg );_dbe :=&LegacyLicense {};if _egaf :=_fded .Decode (_dbe );_egaf !=nil {return _egaf ;};if _cbcc :=_dbe .Verify (_ccb );_cbcc !=nil {return _ae .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006e\u0020\u0065\u0072\u0072\u006f\u0072");};if _dbe .Expiration .Before (_abe .ReleasedAt ){return _ae .New ("\u006ci\u0063e\u006e\u0073\u0065\u0020\u0065\u0078\u0070\u0069\u0072\u0065\u0064");};_abec :=_aeg .Now ().UTC ();_beg :=LicenseKey {};_beg .CreatedAt =_abec ;_beg .CustomerId ="\u004c\u0065\u0067\u0061\u0063\u0079";_beg .CustomerName =_dbe .Name ;_beg .Tier =LicenseTierBusiness ;_beg .ExpiresAt =_dbe .Expiration ;_beg .CreatorName ="\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u0073\u0075p\u0070\u006f\u0072\u0074";_beg .CreatorEmail ="\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0040\u0075\u006e\u0069\u0064o\u0063\u002e\u0069\u006f";_beg .UniOffice =true ;_ccfd =&_beg ;return nil ;};func (_afd *meteredClient )checkinUsage (_bdg meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_bdg .Package ="\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e";_bdg .PackageVersion =_abe .Version ;var _gbf meteredUsageCheckinResp ;_egf :=_afd ._dee +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_acd ,_eef :=_fg .Marshal (_bdg );if _eef !=nil {return _gbf ,_eef ;};_ebc ,_eef :=_da (_acd );if _eef !=nil {return _gbf ,_eef ;};_bca ,_eef :=_cb .NewRequest ("\u0050\u004f\u0053\u0054",_egf ,_ebc );if _eef !=nil {return _gbf ,_eef ;};_bca .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");_bca .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_bca .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_bca .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_afd ._add );_addd ,_eef :=_afd ._adf .Do (_bca );if _eef !=nil {return _gbf ,_eef ;};defer _addd .Body .Close ();if _addd .StatusCode !=200{return _gbf ,_ef .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_addd .StatusCode );};_fde ,_eef :=_adfc (_addd );if _eef !=nil {return _gbf ,_eef ;};_eef =_fg .Unmarshal (_fde ,&_gbf );if _eef !=nil {return _gbf ,_eef ;};return _gbf ,nil ;};func _deee (_bbd ,_fgdc []byte )([]byte ,error ){_bgca ,_faee :=_fc .NewCipher (_bbd );if _faee !=nil {return nil ,_faee ;};_cea :=make ([]byte ,_fc .BlockSize +len (_fgdc ));_eaee :=_cea [:_fc .BlockSize ];if _ ,_gfb :=_df .ReadFull (_bfg .Reader ,_eaee );_gfb !=nil {return nil ,_gfb ;};_gee :=_cfb .NewCFBEncrypter (_bgca ,_eaee );_gee .XORKeyStream (_cea [_fc .BlockSize :],_fgdc );_dfg :=make ([]byte ,_cf .URLEncoding .EncodedLen (len (_cea )));_cf .URLEncoding .Encode (_dfg ,_cea );return _dfg ,nil ;};func _aca ()([]string ,[]string ,error ){_gab ,_ebae :=_dcg .Interfaces ();if _ebae !=nil {return nil ,nil ,_ebae ;};var _gfed []string ;var _dcda []string ;for _ ,_bab :=range _gab {if _bab .Flags &_dcg .FlagUp ==0||_bf .Equal (_bab .HardwareAddr ,nil ){continue ;};_faac ,_fec :=_bab .Addrs ();if _fec !=nil {return nil ,nil ,_fec ;};_ggb :=0;for _ ,_egc :=range _faac {var _gbd _dcg .IP ;switch _bac :=_egc .(type ){case *_dcg .IPNet :_gbd =_bac .IP ;case *_dcg .IPAddr :_gbd =_bac .IP ;};if _gbd .IsLoopback (){continue ;};if _gbd .To4 ()==nil {continue ;};_dcda =append (_dcda ,_gbd .String ());_ggb ++;};_adbb :=_bab .HardwareAddr .String ();if _adbb !=""&&_ggb > 0{_gfed =append (_gfed ,_adbb );};};return _gfed ,_dcda ,nil ;};func (_fgc *LicenseKey )TypeToString ()string {if _fgc ._eb {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _fgc .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";};if _fgc .Tier ==LicenseTierCommunity {return "\u0041\u0047PL\u0076\u0033\u0020O\u0070\u0065\u006e\u0020Sou\u0072ce\u0020\u0043\u006f\u006d\u006d\u0075\u006eit\u0079\u0020\u004c\u0069\u0063\u0065\u006es\u0065";};if _fgc .Tier ==LicenseTierIndividual ||_fgc .Tier =="\u0069\u006e\u0064i\u0065"{return "\u0043\u006f\u006dm\u0065\u0072\u0063\u0069a\u006c\u0020\u004c\u0069\u0063\u0065\u006es\u0065\u0020\u002d\u0020\u0049\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";};return "\u0043\u006fm\u006d\u0065\u0072\u0063\u0069\u0061\u006c\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u002d\u0020\u0042\u0075\u0073\u0069ne\u0073\u0073";};var _afe =_aeg .Date (2010,1,1,0,0,0,0,_aeg .UTC );func (_de *LicenseKey )ToString ()string {if _de ._eb {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_gef :=_ef .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_de .LicenseId );_gef +=_ef .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_de .CustomerId );_gef +=_ef .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_de .CustomerName );_gef +=_ef .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_de .Tier );_gef +=_ef .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_abe .UtcTimeFormat (_de .CreatedAt ));if _de .ExpiresAt .IsZero (){_gef +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";}else {_gef +=_ef .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_abe .UtcTimeFormat (_de .ExpiresAt ));};_gef +=_ef .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_de .CreatorName ,_de .CreatorEmail );return _gef ;};const _dbb ="\u000a\u002d\u002d\u002d\u002d\u002d\u0042\u0045\u0047\u0049\u004e \u0050\u0055\u0042\u004c\u0049\u0043\u0020\u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\u000a\u004d\u0049I\u0042\u0049\u006a\u0041NB\u0067\u006b\u0071\u0068\u006b\u0069G\u0039\u0077\u0030\u0042\u0041\u0051\u0045\u0046A\u0041\u004f\u0043\u0041\u0051\u0038\u0041\u004d\u0049\u0049\u0042\u0043\u0067\u004b\u0043\u0041\u0051\u0045A\u006dF\u0055\u0069\u0079\u0064\u0037\u0062\u0035\u0058\u006a\u0070\u006b\u0050\u0035\u0052\u0061\u0070\u0034\u0077\u000a\u0044\u0063\u0031d\u0079\u007a\u0049\u0051\u0034\u004c\u0065\u006b\u0078\u0072\u0076\u0079\u0074\u006e\u0045\u004d\u0070\u004e\u0055\u0062\u006f\u0036i\u0041\u0037\u0034\u0056\u0038\u0072\u0075\u005a\u004f\u0076\u0072\u0053\u0063\u0073\u0066\u0032\u0051\u0065\u004e9\u002f\u0071r\u0055\u0047\u0038\u0071\u0045\u0062\u0055\u0057\u0064\u006f\u0045\u0059\u0071+\u000a\u006f\u0074\u0046\u004e\u0041\u0046N\u0078\u006c\u0047\u0062\u0078\u0062\u0044\u0048\u0063\u0064\u0047\u0056\u0061\u004d\u0030\u004f\u0058\u0064\u0058g\u0044y\u004c5\u0061\u0049\u0045\u0061\u0067\u004c\u0030\u0063\u0035\u0070\u0077\u006a\u0049\u0064\u0050G\u0049\u006e\u0034\u0036\u0066\u0037\u0038\u0065\u004d\u004a\u002b\u004a\u006b\u0064\u0063\u0070\u0044\n\u0044\u004a\u0061\u0071\u0059\u0058d\u0072\u007a5\u004b\u0065\u0073\u0068\u006aS\u0069\u0049\u0061\u0061\u0037\u006d\u0065\u006e\u0042\u0049\u0041\u0058\u0053\u0034\u0055\u0046\u0078N\u0066H\u0068\u004e\u0030\u0048\u0043\u0059\u005a\u0059\u0071\u0051\u0047\u0037\u0062K+\u0073\u0035\u0072R\u0048\u006f\u006e\u0079\u0064\u004eW\u0045\u0047\u000a\u0048\u0038M\u0079\u0076\u00722\u0070\u0079\u0061\u0032K\u0072\u004d\u0075m\u0066\u006d\u0041\u0078\u0055\u0042\u0036\u0066\u0065\u006e\u0043\u002f4\u004f\u0030\u0057\u00728\u0067\u0066\u0050\u004f\u0055\u0038R\u0069\u0074\u006d\u0062\u0044\u0076\u0051\u0050\u0049\u0052\u0058\u004fL\u0034\u0076\u0054B\u0072\u0042\u0064\u0062a\u0041\u000a9\u006e\u0077\u004e\u0050\u002b\u0069\u002f\u002f\u0032\u0030\u004d\u00542\u0062\u0078\u006d\u0065\u0057\u0042\u002b\u0067\u0070\u0063\u0045\u0068G\u0070\u0058\u005a7\u0033\u0033\u0061\u007a\u0051\u0078\u0072\u0043\u0033\u004a\u0034\u0076\u0033C\u005a\u006d\u0045\u004eS\u0074\u0044\u004b\u002f\u004b\u0044\u0053\u0050\u004b\u0055\u0047\u0066\u00756\u000a\u0066\u0077I\u0044\u0041\u0051\u0041\u0042\u000a\u002d\u002d\u002d\u002d\u002dE\u004e\u0044\u0020\u0050\u0055\u0042\u004c\u0049\u0043 \u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\n";type stateLoader interface{loadState (_dda string )(reportState ,error );updateState (_eeb ,_dcfa ,_ged string ,_ceb int ,_egg bool ,_bge int ,_bcf int ,_gdg _aeg .Time ,_dfe map[string ]int )error ;};var _bee =_aeg .Date (2020,1,1,0,0,0,0,_aeg .UTC );var _cad map[string ]int ;func GetLicenseKey ()*LicenseKey {if _ccfd ==nil {return nil ;};_dbce :=*_ccfd ;return &_dbce ;};func (_gff LegacyLicense )Verify (pubKey *_ceg .PublicKey )error {_cabc :=_gff ;_cabc .Signature ="";_dbc :=_bf .Buffer {};_cge :=_fg .NewEncoder (&_dbc );if _ebb :=_cge .Encode (_cabc );_ebb !=nil {return _ebb ;};_cbc ,_ee :=_f .DecodeString (_gff .Signature );if _ee !=nil {return _ee ;};_gce :=_ba .Sum256 (_dbc .Bytes ());_ee =_ceg .VerifyPKCS1v15 (pubKey ,_dc .SHA256 ,_gce [:],_cbc );return _ee ;};var _dccf =false ;var _adddb stateLoader =defaultStateHolder {};func (_ccf *LicenseKey )isExpired ()bool {return _ccf .getExpiryDateToCompare ().After (_ccf .ExpiresAt )};type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _aeg .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt _aeg .Time `json:"-"`;ExpiresAtInt int64 `json:"expires_at"`;CreatedBy string `json:"created_by"`;CreatorName string `json:"creator_name"`;CreatorEmail string `json:"creator_email"`;UniPDF bool `json:"unipdf"`;UniOffice bool `json:"unioffice"`;UniHTML bool `json:"unihtml"`;Trial bool `json:"trial"`;_eb bool ;_aeb string ;};type meteredUsageCheckinResp struct{Instance string `json:"inst"`;Next string `json:"next"`;Success bool `json:"success"`;Message string `json:"message"`;RemainingDocs int `json:"rd"`;LimitDocs bool `json:"ld"`;};func (_abc *LicenseKey )Validate ()error {if _abc ._eb {return nil ;};if len (_abc .LicenseId )< 10{return _ef .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020L\u0069\u0063\u0065n\u0073e\u0020\u0049\u0064");};if len (_abc .CustomerId )< 10{return _ef .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020C\u0075\u0073\u0074\u006f\u006d\u0065\u0072 \u0049\u0064");};if len (_abc .CustomerName )< 1{return _ef .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043u\u0073\u0074\u006f\u006d\u0065\u0072\u0020\u004e\u0061\u006d\u0065");};if _afe .After (_abc .CreatedAt ){return _ef .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064 \u0041\u0074\u0020\u0069\u0073 \u0069\u006ev\u0061\u006c\u0069\u0064");};if _abc .ExpiresAt .IsZero (){_bfgg :=_abc .CreatedAt .AddDate (1,0,0);if _bee .After (_bfgg ){_bfgg =_bee ;};_abc .ExpiresAt =_bfgg ;};if _abc .CreatedAt .After (_abc .ExpiresAt ){return _ef .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064\u0020\u0041\u0074 \u0063a\u006e\u006e\u006f\u0074 \u0062\u0065 \u0047\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0045\u0078\u0070\u0069\u0072\u0065\u0073\u0020\u0041\u0074");};if _abc .isExpired (){return _ef .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020l\u0069\u0063\u0065ns\u0065\u003a\u0020\u0054\u0068\u0065 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064");};if len (_abc .CreatorName )< 1{return _ef .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u0020na\u006d\u0065");};if len (_abc .CreatorEmail )< 1{return _ef .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043r\u0065\u0061\u0074\u006f\u0072\u0020\u0065\u006d\u0061\u0069\u006c");};if _abc .CreatedAt .After (_cdd ){if !_abc .UniOffice {return _ef .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u003a\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u006b\u0065\u0079\u0020i\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0066\u006f\u0072\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");};};return nil ;};func (_ece *LicenseKey )getExpiryDateToCompare ()_aeg .Time {if _ece .Trial {return _aeg .Now ().UTC ();};return _abe .ReleasedAt ;};func Track (docKey string ,useKey string )error {return _eae (docKey ,useKey ,false )};func _cfga (_babb *_cb .Response )(_df .ReadCloser ,error ){var _gga error ;var _ffe _df .ReadCloser ;switch _ag .ToLower (_babb .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_ffe ,_gga =_c .NewReader (_babb .Body );if _gga !=nil {return _ffe ,_gga ;};defer _ffe .Close ();default:_ffe =_babb .Body ;};return _ffe ,nil ;};type defaultStateHolder struct{};func init (){_bace :=_af .Getenv (_bbg );_efae :=_af .Getenv (_dfca );if len (_bace )==0||len (_efae )==0{return ;};_cff ,_gae :=_e .ReadFile (_bace );if _gae !=nil {_efg .Log .Error ("\u0055\u006eab\u006c\u0065\u0020t\u006f\u0020\u0072\u0065ad \u006cic\u0065\u006e\u0073\u0065\u0020\u0063\u006fde\u0020\u0066\u0069\u006c\u0065\u003a\u0020%\u0076",_gae );return ;};_gae =SetLicenseKey (string (_cff ),_efae );if _gae !=nil {_efg .Log .Error ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u006c\u006f\u0061\u0064\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_gae );return ;};};func _dgd ()*meteredClient {_fcd :=meteredClient {_dee :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_adf :&_cb .Client {Timeout :30*_aeg .Second }};if _gcc :=_af .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_ag .HasPrefix (_gcc ,"\u0068\u0074\u0074\u0070"){_fcd ._dee =_gcc ;};return &_fcd ;};func _da (_dae []byte )(_df .Reader ,error ){_gfc :=new (_bf .Buffer );_fed :=_c .NewWriter (_gfc );_fed .Write (_dae );_fdg :=_fed .Close ();if _fdg !=nil {return nil ,_fdg ;};return _gfc ,nil ;};func (_cfg defaultStateHolder )loadState (_fgcb string )(reportState ,error ){_dcc :=_fgd ();if len (_dcc )==0{return reportState {},_ae .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_dgcb :=_bb .Join (_dcc ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_bff :=_af .MkdirAll (_dgcb ,0777);if _bff !=nil {return reportState {},_bff ;};if len (_fgcb )< 20{return reportState {},_ae .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_ffb :=[]byte (_fgcb );_cgc :=_ab .Sum512_256 (_ffb [:20]);_dbf :=_f .EncodeToString (_cgc [:]);_cfba :=_bb .Join (_dgcb ,_dbf );_cgb ,_bff :=_e .ReadFile (_cfba );if _bff !=nil {if _af .IsNotExist (_bff ){return reportState {},nil ;};_efg .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bff );return reportState {},_ae .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _gfad ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_cgb ,_bff =_fbdb ([]byte (_gfad ),_cgb );if _bff !=nil {return reportState {},_bff ;};var _fdc reportState ;_bff =_fg .Unmarshal (_cgb ,&_fdc );if _bff !=nil {_efg .Log .Error ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076",_bff );return reportState {},_ae .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};return _fdc ,nil ;};func _fbdb (_cgg ,_fba []byte )([]byte ,error ){_dddf :=make ([]byte ,_cf .URLEncoding .DecodedLen (len (_fba )));_aaa ,_fdgb :=_cf .URLEncoding .Decode (_dddf ,_fba );if _fdgb !=nil {return nil ,_fdgb ;};_dddf =_dddf [:_aaa ];_daed ,_fdgb :=_fc .NewCipher (_cgg );if _fdgb !=nil {return nil ,_fdgb ;};if len (_dddf )< _fc .BlockSize {return nil ,_ae .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");};_eab :=_dddf [:_fc .BlockSize ];_dddf =_dddf [_fc .BlockSize :];_gffa :=_cfb .NewCFBDecrypter (_daed ,_eab );_gffa .XORKeyStream (_dddf ,_dddf );return _dddf ,nil ;};type meteredStatusForm struct{};func GenRefId (prefix string )(string ,error ){var _eea _bf .Buffer ;_eea .WriteString (prefix );_bdf :=make ([]byte ,8+16);_fge :=_aeg .Now ().UTC ().UnixNano ();_ec .BigEndian .PutUint64 (_bdf ,uint64 (_fge ));_ ,_fecd :=_bfg .Read (_bdf [8:]);if _fecd !=nil {return "",_fecd ;};_eea .WriteString (_f .EncodeToString (_bdf ));return _eea .String (),nil ;};const _gf ="\u0033\u0030\u0035\u0063\u0033\u0030\u0030\u00640\u0036\u0030\u0039\u0032\u0061\u0038\u00364\u0038\u0038\u0036\u0066\u0037\u0030d\u0030\u0031\u0030\u0031\u0030\u00310\u0035\u0030\u0030\u0030\u0033\u0034\u0062\u0030\u0030\u0033\u0030\u00348\u0030\u0032\u0034\u0031\u0030\u0030\u0062\u0038\u0037\u0065\u0061\u0066\u0062\u0036\u0063\u0030\u0037\u0034\u0039\u0039\u0065\u0062\u00397\u0063\u0063\u0039\u0064\u0033\u0035\u0036\u0035\u0065\u0063\u00663\u0031\u0036\u0038\u0031\u0039\u0036\u0033\u0030\u0031\u0039\u0030\u0037c\u0038\u0034\u0031\u0061\u0064\u0064c6\u0036\u0035\u0030\u0038\u0036\u0062\u0062\u0033\u0065\u0064\u0038\u0065\u0062\u0031\u0032\u0064\u0039\u0064\u0061\u0032\u0036\u0063\u0061\u0066\u0061\u0039\u0036\u00345\u0030\u00314\u0036\u0064\u0061\u0038\u0062\u0064\u0030\u0063c\u0066\u0031\u0035\u0035\u0066\u0063a\u0063\u0063\u00368\u0036\u0039\u0035\u0035\u0065\u0066\u0030\u0033\u0030\u0032\u0066\u0061\u0034\u0034\u0061\u0061\u0033\u0065\u0063\u0038\u0039\u0034\u0031\u0037\u0062\u0030\u0032\u0030\u0033\u0030\u0031\u0030\u0030\u0030\u0031";type meteredStatusResp struct{Valid bool `json:"valid"`;OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};func _eae (_dgfa string ,_bfbd string ,_fcb bool )error {if _ccfd ==nil {return _ae .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");};if !_ccfd ._eb ||len (_ccfd ._aeb )==0{return nil ;};if len (_dgfa )==0&&!_fcb {return _ae .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_aad .Lock ();defer _aad .Unlock ();if _gbe ==nil {_gbe =map[string ]struct{}{};};if _cad ==nil {_cad =map[string ]int {};};_dbd :=0;if !_fcb {_ ,_abd :=_gbe [_dgfa ];if !_abd {_gbe [_dgfa ]=struct{}{};_dbd ++;};if _dbd ==0{return nil ;};_cad [_bfbd ]++;};_egd :=_aeg .Now ();_bgg ,_ada :=_adddb .loadState (_ccfd ._aeb );if _ada !=nil {_efg .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ada );return _ada ;};if _bgg .Usage ==nil {_bgg .Usage =map[string ]int {};};for _fgf ,_eee :=range _cad {_bgg .Usage [_fgf ]+=_eee ;};_cad =nil ;const _eccg =24*_aeg .Hour ;const _edf =3*24*_aeg .Hour ;if len (_bgg .Instance )==0||_egd .Sub (_bgg .LastReported )> _eccg ||(_bgg .LimitDocs &&_bgg .RemainingDocs <=_bgg .Docs +int64 (_dbd ))||_fcb {_fae ,_dfeb :=_af .Hostname ();if _dfeb !=nil {return _dfeb ;};_fe :=_bgg .Docs ;_cabg ,_fgfa ,_dfeb :=_aca ();if _dfeb !=nil {return _dfeb ;};_a .Strings (_fgfa );_a .Strings (_cabg );_cdab ,_dfeb :=_gbfc ();if _dfeb !=nil {return _dfeb ;};_ffaa :=false ;for _ ,_bcbd :=range _fgfa {if _bcbd ==_cdab .String (){_ffaa =true ;};};if !_ffaa {_fgfa =append (_fgfa ,_cdab .String ());};_ecca :=_dgd ();_ecca ._add =_ccfd ._aeb ;_fe +=int64 (_dbd );_ddd :=meteredUsageCheckinForm {Instance :_bgg .Instance ,Next :_bgg .Next ,UsageNumber :int (_fe ),NumFailed :_bgg .NumErrors ,Hostname :_fae ,LocalIP :_ag .Join (_fgfa ,"\u002c\u0020"),MacAddress :_ag .Join (_cabg ,"\u002c\u0020"),Package :"\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e",PackageVersion :_abe .Version ,Usage :_bgg .Usage };if len (_cabg )==0{_ddd .MacAddress ="\u006e\u006f\u006e\u0065";};_fdd :=int64 (0);_bec :=_bgg .NumErrors ;_gebe :=_egd ;_dbcf :=0;_cebf :=_bgg .LimitDocs ;_bddeg ,_dfeb :=_ecca .checkinUsage (_ddd );if _dfeb !=nil {if _egd .Sub (_bgg .LastReported )> _edf {return _ae .New ("\u0074\u006f\u006f\u0020\u006c\u006f\u006e\u0067\u0020\u0073\u0069\u006e\u0063\u0065\u0020\u006c\u0061\u0073\u0074\u0020\u0073\u0075\u0063\u0063e\u0073\u0073\u0066\u0075\u006c \u0063\u0068e\u0063\u006b\u0069\u006e");};_fdd =_fe ;_bec ++;_gebe =_bgg .LastReported ;}else {_cebf =_bddeg .LimitDocs ;_dbcf =_bddeg .RemainingDocs ;_bec =0;};if len (_bddeg .Instance )==0{_bddeg .Instance =_ddd .Instance ;};if len (_bddeg .Next )==0{_bddeg .Next =_ddd .Next ;};_dfeb =_adddb .updateState (_ecca ._add ,_bddeg .Instance ,_bddeg .Next ,int (_fdd ),_cebf ,_dbcf ,int (_bec ),_gebe ,nil );if _dfeb !=nil {return _dfeb ;};if !_bddeg .Success {return _ef .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_bddeg .Message );};}else {_ada =_adddb .updateState (_ccfd ._aeb ,_bgg .Instance ,_bgg .Next ,int (_bgg .Docs )+_dbd ,_bgg .LimitDocs ,int (_bgg .RemainingDocs ),int (_bgg .NumErrors ),_bgg .LastReported ,_bgg .Usage );if _ada !=nil {return _ada ;};};return nil ;}; |