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 (_ea "bytes";_g "compress/gzip";_d "crypto";_ae "crypto/aes";_gec "crypto/cipher";_eaf "crypto/rand";_eg "crypto/rsa";_bb "crypto/sha256";_cgf "crypto/sha512";_bdd "crypto/x509";_gc "encoding/base64";_bd "encoding/binary";_cg "encoding/hex";_cc "encoding/json";_fg "encoding/pem";_b "errors";_bg "fmt";_ce "github.com/unidoc/unioffice";_gf "github.com/unidoc/unioffice/common";_a "io";_ab "io/ioutil";_df "log";_gd "net";_de "net/http";_geb "os";_da "path/filepath";_f "regexp";_ge "sort";_c "strings";_fe "sync";_dd "time";);func (_gg *LicenseKey )ToString ()string {if _gg ._fcc {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_eaeb :=_bg .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_gg .LicenseId );_eaeb +=_bg .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_gg .CustomerId );_eaeb +=_bg .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_gg .CustomerName );_eaeb +=_bg .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_gg .Tier );_eaeb +=_bg .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_gf .UtcTimeFormat (_gg .CreatedAt ));if _gg .ExpiresAt .IsZero (){_eaeb +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";}else {_eaeb +=_bg .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_gf .UtcTimeFormat (_gg .ExpiresAt ));};_eaeb +=_bg .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_gg .CreatorName ,_gg .CreatorEmail );return _eaeb ;};type meteredStatusResp struct{Valid bool `json:"valid"`;OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};var _abe *_eg .PublicKey ;type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _dd .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt _dd .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"`;_fcc bool ;_gbb string ;};func MakeUnlicensedKey ()*LicenseKey {_fcb :=LicenseKey {};_fcb .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_fcb .Tier =LicenseTierUnlicensed ;_fcb .CreatedAt =_dd .Now ().UTC ();_fcb .CreatedAtInt =_fcb .CreatedAt .Unix ();return &_fcb ;};func _efc (_db string ,_dbg []byte )(string ,error ){_ad ,_ :=_fg .Decode ([]byte (_db ));if _ad ==nil {return "",_bg .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");};_ff ,_dbe :=_bdd .ParsePKCS1PrivateKey (_ad .Bytes );if _dbe !=nil {return "",_dbe ;};_efe :=_cgf .New ();_efe .Write (_dbg );_bbd :=_efe .Sum (nil );_aba ,_dbe :=_eg .SignPKCS1v15 (_eaf .Reader ,_ff ,_d .SHA512 ,_bbd );if _dbe !=nil {return "",_dbe ;};_bbc :=_gc .StdEncoding .EncodeToString (_dbg );_bbc +="\u000a\u002b\u000a";_bbc +=_gc .StdEncoding .EncodeToString (_aba );return _bbc ,nil ;};func GenRefId (prefix string )(string ,error ){var _ebdb _ea .Buffer ;_ebdb .WriteString (prefix );_gdd :=make ([]byte ,8+16);_dgab :=_dd .Now ().UTC ().UnixNano ();_bd .BigEndian .PutUint64 (_gdd ,uint64 (_dgab ));_ ,_acgb :=_eaf .Read (_gdd [8:]);if _acgb !=nil {return "",_acgb ;};_ebdb .WriteString (_cg .EncodeToString (_gdd ));return _ebdb .String (),nil ;};var _bgg stateLoader =defaultStateHolder {};type meteredClient struct{_bga string ;_ddf string ;_af *_de .Client ;};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"`;};const _gdf ="\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";func _ebcg (_fge ,_dee []byte )([]byte ,error ){_efcb :=make ([]byte ,_gc .URLEncoding .DecodedLen (len (_dee )));_dcc ,_egg :=_gc .URLEncoding .Decode (_efcb ,_dee );if _egg !=nil {return nil ,_egg ;};_efcb =_efcb [:_dcc ];_cbf ,_egg :=_ae .NewCipher (_fge );if _egg !=nil {return nil ,_egg ;};if len (_efcb )< _ae .BlockSize {return nil ,_b .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");};_cefa :=_efcb [:_ae .BlockSize ];_efcb =_efcb [_ae .BlockSize :];_cece :=_gec .NewCFBDecrypter (_cbf ,_cefa );_cece .XORKeyStream (_efcb ,_efcb );return _efcb ,nil ;};func (_cbb *LicenseKey )getExpiryDateToCompare ()_dd .Time {if _cbb .Trial {return _dd .Now ().UTC ();};return _gf .ReleasedAt ;};func (_dgg defaultStateHolder )loadState (_dgd string )(reportState ,error ){_fedc :=_dcg ();if len (_fedc )==0{return reportState {},_b .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_fdc :=_da .Join (_fedc ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_bfe :=_geb .MkdirAll (_fdc ,0777);if _bfe !=nil {return reportState {},_bfe ;};if len (_dgd )< 20{return reportState {},_b .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_eec :=[]byte (_dgd );_dfga :=_cgf .Sum512_256 (_eec [:20]);_dda :=_cg .EncodeToString (_dfga [:]);_aec :=_da .Join (_fdc ,_dda );_gga ,_bfe :=_ab .ReadFile (_aec );if _bfe !=nil {if _geb .IsNotExist (_bfe ){return reportState {},nil ;};_ce .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_bfe );return reportState {},_b .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _fbea ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_gga ,_bfe =_ebcg ([]byte (_fbea ),_gga );if _bfe !=nil {return reportState {},_bfe ;};var _cfb reportState ;_bfe =_cc .Unmarshal (_gga ,&_cfb );if _bfe !=nil {_ce .Log ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076\u000a",_bfe );return reportState {},_b .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};return _cfb ,nil ;};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";);func (_ead *meteredClient )getStatus ()(meteredStatusResp ,error ){var _eea meteredStatusResp ;_gbcg :=_ead ._bga +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _bdb meteredStatusForm ;_gdfa ,_dbga :=_cc .Marshal (_bdb );if _dbga !=nil {return _eea ,_dbga ;};_ebd ,_dbga :=_fda (_gdfa );if _dbga !=nil {return _eea ,_dbga ;};_bef ,_dbga :=_de .NewRequest ("\u0050\u004f\u0053\u0054",_gbcg ,_ebd );if _dbga !=nil {return _eea ,_dbga ;};_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",_ead ._ddf );_fgc ,_dbga :=_ead ._af .Do (_bef );if _dbga !=nil {return _eea ,_dbga ;};defer _fgc .Body .Close ();if _fgc .StatusCode !=200{return _eea ,_bg .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",_fgc .StatusCode );};_egfd ,_dbga :=_ggg (_fgc );if _dbga !=nil {return _eea ,_dbga ;};_dbga =_cc .Unmarshal (_egfd ,&_eea );if _dbga !=nil {return _eea ,_dbga ;};return _eea ,nil ;};func (_dg *meteredClient )checkinUsage (_ec meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_ec .Package ="\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e";_ec .PackageVersion =_gf .Version ;var _gea meteredUsageCheckinResp ;_aae :=_dg ._bga +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_dbde ,_ebb :=_cc .Marshal (_ec );if _ebb !=nil {return _gea ,_ebb ;};_fce ,_ebb :=_fda (_dbde );if _ebb !=nil {return _gea ,_ebb ;};_cegg ,_ebb :=_de .NewRequest ("\u0050\u004f\u0053\u0054",_aae ,_fce );if _ebb !=nil {return _gea ,_ebb ;};_cegg .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");_cegg .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_cegg .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_cegg .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_dg ._ddf );_age ,_ebb :=_dg ._af .Do (_cegg );if _ebb !=nil {return _gea ,_ebb ;};defer _age .Body .Close ();if _age .StatusCode !=200{return _gea ,_bg .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",_age .StatusCode );};_bbf ,_ebb :=_ggg (_age );if _ebb !=nil {return _gea ,_ebb ;};_ebb =_cc .Unmarshal (_bbf ,&_gea );if _ebb !=nil {return _gea ,_ebb ;};return _gea ,nil ;};var _gac =MakeUnlicensedKey ();func (_ca *LicenseKey )IsLicensed ()bool {if _ca ==nil {return false ;};return _ca .Tier !=LicenseTierUnlicensed ||_ca ._fcc ;};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"`;};func init (){_fed ,_dfg :=_cg .DecodeString (_gdf );if _dfg !=nil {_df .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_dfg );};_caf ,_dfg :=_bdd .ParsePKIXPublicKey (_fed );if _dfg !=nil {_df .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_dfg );};_abe =_caf .(*_eg .PublicKey );};func _fda (_ggac []byte )(_a .Reader ,error ){_dbgaf :=new (_ea .Buffer );_fgb :=_g .NewWriter (_dbgaf );_fgb .Write (_ggac );_baea :=_fgb .Close ();if _baea !=nil {return nil ,_baea ;};return _dbgaf ,nil ;};type defaultStateHolder struct{};func TrackUse (useKey string ){if _gac ==nil {return ;};if !_gac ._fcc ||len (_gac ._gbb )==0{return ;};if len (useKey )==0{return ;};_aag .Lock ();defer _aag .Unlock ();if _daa ==nil {_daa =map[string ]int {};};_daa [useKey ]++;};type meteredStatusForm struct{};func _bca ()(_gd .IP ,error ){_gege ,_aecd :=_gd .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");if _aecd !=nil {return nil ,_aecd ;};defer _gege .Close ();_ecee :=_gege .LocalAddr ().(*_gd .UDPAddr );return _ecee .IP ,nil ;};func Track (docKey string ,useKey string )error {return _gebc (docKey ,useKey ,false )};type LegacyLicense struct{Name string ;Signature string `json:",omitempty"`;Expiration _dd .Time ;LicenseType LegacyLicenseType ;};func SetLegacyLicenseKey (s string )error {_eba :=_f .MustCompile ("\u005c\u0073");s =_eba .ReplaceAllString (s ,"");var _eff _a .Reader ;_eff =_c .NewReader (s );_eff =_gc .NewDecoder (_gc .RawURLEncoding ,_eff );_eff ,_dgf :=_g .NewReader (_eff );if _dgf !=nil {return _dgf ;};_afb :=_cc .NewDecoder (_eff );_gbdb :=&LegacyLicense {};if _acg :=_afb .Decode (_gbdb );_acg !=nil {return _acg ;};if _dfgc :=_gbdb .Verify (_abe );_dfgc !=nil {return _b .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006e\u0020\u0065\u0072\u0072\u006f\u0072");};if _gbdb .Expiration .Before (_gf .ReleasedAt ){return _b .New ("\u006ci\u0063e\u006e\u0073\u0065\u0020\u0065\u0078\u0070\u0069\u0072\u0065\u0064");};_eead :=_dd .Now ().UTC ();_bce :=LicenseKey {};_bce .CreatedAt =_eead ;_bce .CustomerId ="\u004c\u0065\u0067\u0061\u0063\u0079";_bce .CustomerName =_gbdb .Name ;_bce .Tier =LicenseTierBusiness ;_bce .ExpiresAt =_gbdb .Expiration ;_bce .CreatorName ="\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u0073\u0075p\u0070\u006f\u0072\u0074";_bce .CreatorEmail ="\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0040\u0075\u006e\u0069\u0064o\u0063\u002e\u0069\u006f";_bce .UniOffice =true ;_gac =&_bce ;return nil ;};var _aag =&_fe .Mutex {};func SetLicenseKey (content string ,customerName string )error {if _bcaa {return nil ;};_ged ,_dad :=_fb (content );if _dad !=nil {_ce .Log ("\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006fd\u0065\u0020\u0064\u0065\u0063\u006f\u0064e\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076\u000a",_dad );return _dad ;};if !_c .EqualFold (_ged .CustomerName ,customerName ){_ce .Log ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0069\u0073s\u0075\u0065\u0020\u002d \u0043\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061\u0074\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027,\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074 \u0027\u0025\u0073\u0027\u000a",customerName ,_ged .CustomerName );return _bg .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 ,_ged .CustomerName );};_dad =_ged .Validate ();if _dad !=nil {_ce .Log ("\u004c\u0069\u0063en\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0076a\u006ci\u0064a\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076\u000a",_dad );return _dad ;};_gac =&_ged ;return nil ;};type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;};func _gebc (_cad string ,_cgc string ,_dfa bool )error {if _gac ==nil {return _b .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");};if !_gac ._fcc ||len (_gac ._gbb )==0{return nil ;};if len (_cad )==0&&!_dfa {return _b .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_aag .Lock ();defer _aag .Unlock ();if _ffe ==nil {_ffe =map[string ]struct{}{};};if _daa ==nil {_daa =map[string ]int {};};_cgcg :=0;if !_dfa {_ ,_gag :=_ffe [_cad ];if !_gag {_ffe [_cad ]=struct{}{};_cgcg ++;};if _cgcg ==0{return nil ;};_daa [_cgc ]++;};_cecb :=_dd .Now ();_ece ,_fdcc :=_bgg .loadState (_gac ._gbb );if _fdcc !=nil {_ce .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_fdcc );return _fdcc ;};if _ece .Usage ==nil {_ece .Usage =map[string ]int {};};for _egc ,_gbe :=range _daa {_ece .Usage [_egc ]+=_gbe ;};_daa =nil ;const _aaf =24*_dd .Hour ;const _geg =3*24*_dd .Hour ;if len (_ece .Instance )==0||_cecb .Sub (_ece .LastReported )> _aaf ||(_ece .LimitDocs &&_ece .RemainingDocs <=_ece .Docs +int64 (_cgcg ))||_dfa {_acca ,_aadf :=_geb .Hostname ();if _aadf !=nil {return _aadf ;};_feb :=_ece .Docs ;_dbgaa ,_bee ,_aadf :=_ccd ();if _aadf !=nil {return _aadf ;};_ge .Strings (_bee );_ge .Strings (_dbgaa );_aaea ,_aadf :=_bca ();if _aadf !=nil {return _aadf ;};_gba :=false ;for _ ,_ddb :=range _bee {if _ddb ==_aaea .String (){_gba =true ;};};if !_gba {_bee =append (_bee ,_aaea .String ());};_fga :=_aff ();_fga ._ddf =_gac ._gbb ;_feb +=int64 (_cgcg );_edb :=meteredUsageCheckinForm {Instance :_ece .Instance ,Next :_ece .Next ,UsageNumber :int (_feb ),NumFailed :_ece .NumErrors ,Hostname :_acca ,LocalIP :_c .Join (_bee ,"\u002c\u0020"),MacAddress :_c .Join (_dbgaa ,"\u002c\u0020"),Package :"\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e",PackageVersion :_gf .Version ,Usage :_ece .Usage };if len (_dbgaa )==0{_edb .MacAddress ="\u006e\u006f\u006e\u0065";};_bddg :=int64 (0);_ebda :=_ece .NumErrors ;_ecb :=_cecb ;_agc :=0;_ebc :=_ece .LimitDocs ;_fde ,_aadf :=_fga .checkinUsage (_edb );if _aadf !=nil {if _cecb .Sub (_ece .LastReported )> _geg {return _b .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");};_bddg =_feb ;_ebda ++;_ecb =_ece .LastReported ;}else {_ebc =_fde .LimitDocs ;_agc =_fde .RemainingDocs ;_ebda =0;};if len (_fde .Instance )==0{_fde .Instance =_edb .Instance ;};if len (_fde .Next )==0{_fde .Next =_edb .Next ;};_aadf =_bgg .updateState (_fga ._ddf ,_fde .Instance ,_fde .Next ,int (_bddg ),_ebc ,_agc ,int (_ebda ),_ecb ,nil );if _aadf !=nil {return _aadf ;};if !_fde .Success {return _bg .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_fde .Message );};}else {_fdcc =_bgg .updateState (_gac ._gbb ,_ece .Instance ,_ece .Next ,int (_ece .Docs )+_cgcg ,_ece .LimitDocs ,int (_ece .RemainingDocs ),int (_ece .NumErrors ),_ece .LastReported ,_ece .Usage );if _fdcc !=nil {return _fdcc ;};};return nil ;};var _daa map[string ]int ;type stateLoader interface{loadState (_feg string )(reportState ,error );updateState (_ada ,_fdf ,_dea string ,_ddd int ,_bdbe bool ,_aac int ,_aca int ,_ba _dd .Time ,_ed map[string ]int )error ;};var _eaff =_dd .Date (2019,6,6,0,0,0,0,_dd .UTC );func (_dfc *LicenseKey )Validate ()error {if _dfc ._fcc {return nil ;};if len (_dfc .LicenseId )< 10{return _bg .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 (_dfc .CustomerId )< 10{return _bg .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 (_dfc .CustomerName )< 1{return _bg .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 _cef .After (_dfc .CreatedAt ){return _bg .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 _dfc .ExpiresAt .IsZero (){_ccb :=_dfc .CreatedAt .AddDate (1,0,0);if _bbe .After (_ccb ){_ccb =_bbe ;};_dfc .ExpiresAt =_ccb ;};if _dfc .CreatedAt .After (_dfc .ExpiresAt ){return _bg .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 _dfc .isExpired (){return _bg .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 (_dfc .CreatorName )< 1{return _bg .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 (_dfc .CreatorEmail )< 1{return _bg .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 _dfc .CreatedAt .After (_eaff ){if !_dfc .UniOffice {return _bg .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 _ggg (_gace *_de .Response )([]byte ,error ){var _cegca []byte ;_ede ,_bac :=_cbbc (_gace );if _bac !=nil {return _cegca ,_bac ;};return _ab .ReadAll (_ede );};func GetLicenseKey ()*LicenseKey {if _gac ==nil {return nil ;};_dga :=*_gac ;return &_dga ;};func _cgd (_geaa ,_fa []byte )([]byte ,error ){_gca ,_dbbg :=_ae .NewCipher (_geaa );if _dbbg !=nil {return nil ,_dbbg ;};_bcda :=make ([]byte ,_ae .BlockSize +len (_fa ));_dbgd :=_bcda [:_ae .BlockSize ];if _ ,_gbcfc :=_a .ReadFull (_eaf .Reader ,_dbgd );_gbcfc !=nil {return nil ,_gbcfc ;};_deg :=_gec .NewCFBEncrypter (_gca ,_dbgd );_deg .XORKeyStream (_bcda [_ae .BlockSize :],_fa );_badb :=make ([]byte ,_gc .URLEncoding .EncodedLen (len (_bcda )));_gc .URLEncoding .Encode (_badb ,_bcda );return _badb ,nil ;};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 _dd .Time `json:"lr"`;LastWritten _dd .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};func _cbbc (_aede *_de .Response )(_a .ReadCloser ,error ){var _bfg error ;var _gbd _a .ReadCloser ;switch _c .ToLower (_aede .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_gbd ,_bfg =_g .NewReader (_aede .Body );if _bfg !=nil {return _gbd ,_bfg ;};defer _gbd .Close ();default:_gbd =_aede .Body ;};return _gbd ,nil ;};func (_fee *LicenseKey )TypeToString ()string {if _fee ._fcc {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _fee .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";};if _fee .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 _fee .Tier ==LicenseTierIndividual ||_fee .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";};func (_fbf LegacyLicense )Verify (pubKey *_eg .PublicKey )error {_agb :=_fbf ;_agb .Signature ="";_fd :=_ea .Buffer {};_dbd :=_cc .NewEncoder (&_fd );if _fca :=_dbd .Encode (_agb );_fca !=nil {return _fca ;};_cce ,_gbc :=_cg .DecodeString (_fbf .Signature );if _gbc !=nil {return _gbc ;};_fdd :=_bb .Sum256 (_fd .Bytes ());_gbc =_eg .VerifyPKCS1v15 (pubKey ,_d .SHA256 ,_fdd [:],_cce );return _gbc ;};func _fb (_aed string )(LicenseKey ,error ){var _bda LicenseKey ;_eeb ,_cdb :=_ced (_bddf ,_ef ,_aed );if _cdb !=nil {return _bda ,_cdb ;};_acd ,_cdb :=_cca (_bgc ,_eeb );if _cdb !=nil {return _bda ,_cdb ;};_cdb =_cc .Unmarshal (_acd ,&_bda );if _cdb !=nil {return _bda ,_cdb ;};_bda .CreatedAt =_dd .Unix (_bda .CreatedAtInt ,0);if _bda .ExpiresAtInt > 0{_bf :=_dd .Unix (_bda .ExpiresAtInt ,0);_bda .ExpiresAt =_bf ;};return _bda ,nil ;};var _bcaa =false ;type LegacyLicenseType byte ;func _ced (_fc string ,_bcd string ,_gb string )(string ,error ){_ga :=_c .Index (_gb ,_fc );if _ga ==-1{return "",_bg .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_dac :=_c .Index (_gb ,_bcd );if _dac ==-1{return "",_bg .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_adg :=_ga +len (_fc )+1;return _gb [_adg :_dac -1],nil ;};const _fddf ="\u0055\u004e\u0049\u004fFF\u0049\u0043\u0045\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041T\u0048";func _dcg ()string {_bbce :=_geb .Getenv ("\u0048\u004f\u004d\u0045");if len (_bbce )==0{_bbce ,_ =_geb .UserHomeDir ();};return _bbce ;};const (_bddf ="\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";_ef ="\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 _bbe =_dd .Date (2020,1,1,0,0,0,0,_dd .UTC );func _aff ()*meteredClient {_abg :=meteredClient {_bga :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_af :&_de .Client {Timeout :30*_dd .Second }};if _gee :=_geb .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_c .HasPrefix (_gee ,"\u0068\u0074\u0074\u0070"){_abg ._bga =_gee ;};return &_abg ;};var _cef =_dd .Date (2010,1,1,0,0,0,0,_dd .UTC );func init (){_gaa :=_geb .Getenv (_fddf );_fgg :=_geb .Getenv (_cag );if len (_gaa )==0||len (_fgg )==0{return ;};_baef ,_afc :=_ab .ReadFile (_gaa );if _afc !=nil {_ce .Log ("\u0055\u006ea\u0062\u006c\u0065\u0020t\u006f\u0020r\u0065\u0061\u0064\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0066\u0069\u006c\u0065:\u0020\u0025\u0076\u000a",_afc );return ;};_afc =SetLicenseKey (string (_baef ),_fgg );if _afc !=nil {_ce .Log ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u006c\u006f\u0061\u0064\u0020l\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u000a",_afc );return ;};};var _ffe map[string ]struct{};func _ccd ()([]string ,[]string ,error ){_dacf ,_cfa :=_gd .Interfaces ();if _cfa !=nil {return nil ,nil ,_cfa ;};var _bba []string ;var _cegc []string ;for _ ,_gegg :=range _dacf {if _gegg .Flags &_gd .FlagUp ==0||_ea .Equal (_gegg .HardwareAddr ,nil ){continue ;};_dbgg ,_ege :=_gegg .Addrs ();if _ege !=nil {return nil ,nil ,_ege ;};_baf :=0;for _ ,_cff :=range _dbgg {var _dgec _gd .IP ;switch _dgef :=_cff .(type ){case *_gd .IPNet :_dgec =_dgef .IP ;case *_gd .IPAddr :_dgec =_dgef .IP ;};if _dgec .IsLoopback (){continue ;};if _dgec .To4 ()==nil {continue ;};_cegc =append (_cegc ,_dgec .String ());_baf ++;};_dfb :=_gegg .HardwareAddr .String ();if _dfb !=""&&_baf > 0{_bba =append (_bba ,_dfb );};};return _bba ,_cegc ,nil ;};func (_ccc defaultStateHolder )updateState (_cga ,_bad ,_dgb string ,_fdg int ,_cf bool ,_geeb int ,_aad int ,_cbbf _dd .Time ,_cfg map[string ]int )error {_gfa :=_dcg ();if len (_gfa )==0{return _b .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_ffc :=_da .Join (_gfa ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_edc :=_geb .MkdirAll (_ffc ,0777);if _edc !=nil {return _edc ;};if len (_cga )< 20{return _b .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_bbg :=[]byte (_cga );_gad :=_cgf .Sum512_256 (_bbg [:20]);_dge :=_cg .EncodeToString (_gad [:]);_fbe :=_da .Join (_ffc ,_dge );var _bea reportState ;_bea .Docs =int64 (_fdg );_bea .NumErrors =int64 (_aad );_bea .LimitDocs =_cf ;_bea .RemainingDocs =int64 (_geeb );_bea .LastWritten =_dd .Now ().UTC ();_bea .LastReported =_cbbf ;_bea .Instance =_bad ;_bea .Next =_dgb ;_bea .Usage =_cfg ;_dag ,_edc :=_cc .Marshal (_bea );if _edc !=nil {return _edc ;};const _bae ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_dag ,_edc =_cgd ([]byte (_bae ),_dag );if _edc !=nil {return _edc ;};_edc =_ab .WriteFile (_fbe ,_dag ,0600);if _edc !=nil {return _edc ;};return nil ;};const _cag ="\u0055\u004e\u0049OF\u0046\u0049\u0043\u0045\u005f\u0043\u0055\u0053\u0054\u004f\u004d\u0045\u0052\u005f\u004e\u0041\u004d\u0045";func (_abc *LicenseKey )isExpired ()bool {return _abc .getExpiryDateToCompare ().After (_abc .ExpiresAt )};const _bgc ="\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";func _cca (_cd string ,_bc string )([]byte ,error ){var (_cb int ;_ceg string ;);for _ ,_ceg =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _cb =_c .Index (_bc ,_ceg );_cb !=-1{break ;};};if _cb ==-1{return nil ,_bg .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");};_ac :=_bc [:_cb ];_def :=_cb +len (_ceg );_abaf :=_bc [_def :];if _ac ==""||_abaf ==""{return nil ,_bg .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");};_ee ,_eac :=_gc .StdEncoding .DecodeString (_ac );if _eac !=nil {return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_aa ,_eac :=_gc .StdEncoding .DecodeString (_abaf );if _eac !=nil {return nil ,_bg .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_cda ,_ :=_fg .Decode ([]byte (_cd ));if _cda ==nil {return nil ,_bg .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_eae ,_eac :=_bdd .ParsePKIXPublicKey (_cda .Bytes );if _eac !=nil {return nil ,_eac ;};_eb :=_eae .(*_eg .PublicKey );if _eb ==nil {return nil ,_bg .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_be :=_cgf .New ();_be .Write (_ee );_cgb :=_be .Sum (nil );_eac =_eg .VerifyPKCS1v15 (_eb ,_d .SHA512 ,_cgb ,_aa );if _eac !=nil {return nil ,_eac ;};return _ee ,nil ;};func GetMeteredState ()(MeteredStatus ,error ){if _gac ==nil {return MeteredStatus {},_b .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};if !_gac ._fcc ||len (_gac ._gbb )==0{return MeteredStatus {},_b .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_gdfac ,_eafg :=_bgg .loadState (_gac ._gbb );if _eafg !=nil {_ce .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_eafg );return MeteredStatus {},_eafg ;};if _gdfac .Docs > 0{_gab :=_gebc ("","",true );if _gab !=nil {return MeteredStatus {},_gab ;};};_aag .Lock ();defer _aag .Unlock ();_bcg :=_aff ();_bcg ._ddf =_gac ._gbb ;_gbcf ,_eafg :=_bcg .getStatus ();if _eafg !=nil {return MeteredStatus {},_eafg ;};if !_gbcf .Valid {return MeteredStatus {},_b .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_dcb :=MeteredStatus {OK :true ,Credits :_gbcf .OrgCredits ,Used :_gbcf .OrgUsed };return _dcb ,nil ;};func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_ce .Log ("\u004d\u0065\u0074e\u0072\u0065\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049\u0020\u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020b\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u000a");_ce .Log ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020o\u006e\u0065\u0020i\u006e\u0020\u0074h\u0065\u0020F\u0072\u0065\u0065\u0020\u0054\u0069e\u0072 a\u0074\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f\u000a");return _bg .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 _gac !=nil &&(_gac ._fcc ||_gac .Tier !=LicenseTierUnlicensed ){_ce .Log ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074\u0020\u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u006b\u0065\u0079 \u0074\u0077\u0069\u0063\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064 \u006a\u0075s\u0074\u0020\u0069\u006ei\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065\u000a");return _b .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_ebg :=_aff ();_ebg ._ddf =apiKey ;_dbb ,_eaa :=_ebg .getStatus ();if _eaa !=nil {return _eaa ;};if !_dbb .Valid {return _b .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_gfd :=&LicenseKey {_fcc :true ,_gbb :apiKey };_gac =_gfd ;return nil ;}; |