mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 12:37:32 -04:00 
			
		
		
		
	
						commit
						0105c48b2e
					
				| @ -1 +1 @@ | ||||
| 5.5.45 | ||||
| 5.5.46 | ||||
| @ -89,14 +89,14 @@ class TranslationsExport extends Command | ||||
|      */ | ||||
|     public function handle() | ||||
|     { | ||||
|         Storage::makeDirectory(storage_path('lang')); | ||||
|         Storage::disk('local')->makeDirectory('lang'); | ||||
| 
 | ||||
|         foreach ($this->langs as $lang) { | ||||
|             Storage::makeDirectory(storage_path("lang/{$lang}")); | ||||
|             Storage::disk('local')->makeDirectory("lang/{$lang}"); | ||||
| 
 | ||||
|             $translations = Lang::getLoader()->load($lang, 'texts'); | ||||
| 
 | ||||
|             Storage::put(storage_path("lang/{$lang}/{$lang}.json"), json_encode(Arr::dot($translations), JSON_UNESCAPED_UNICODE)); | ||||
|             Storage::disk('local')->put("lang/{$lang}/{$lang}.json", json_encode(Arr::dot($translations), JSON_UNESCAPED_UNICODE)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -32,6 +32,7 @@ use Illuminate\Support\Arr; | ||||
| use Illuminate\Support\Facades\Schema; | ||||
| use Illuminate\Validation\ValidationException; | ||||
| use PDOException; | ||||
| use Sentry\Laravel\Integration; | ||||
| use Sentry\State\Scope; | ||||
| use Swift_TransportException; | ||||
| use Symfony\Component\Console\Exception\CommandNotFoundException; | ||||
| @ -84,7 +85,7 @@ class Handler extends ExceptionHandler | ||||
|         } | ||||
| 
 | ||||
|         if (Ninja::isHosted() && ! ($exception instanceof ValidationException)) { | ||||
|             app('sentry')->configureScope(function (Scope $scope): void { | ||||
|             Integration::configureScope(function (Scope $scope): void { | ||||
|                 $name = 'hosted@invoiceninja.com'; | ||||
| 
 | ||||
|                 if (auth()->guard('contact') && auth()->guard('contact')->user()) { | ||||
| @ -104,9 +105,9 @@ class Handler extends ExceptionHandler | ||||
|                 ]); | ||||
|             }); | ||||
| 
 | ||||
|             app('sentry')->captureException($exception); | ||||
|             Integration::captureUnhandledException($exception); | ||||
|         } elseif (app()->bound('sentry') && $this->shouldReport($exception)) { | ||||
|             app('sentry')->configureScope(function (Scope $scope): void { | ||||
|             Integration::configureScope(function (Scope $scope): void { | ||||
|                 if (auth()->guard('contact') && auth()->guard('contact')->user() && auth()->guard('contact')->user()->company->account->report_errors) { | ||||
|                     $scope->setUser([ | ||||
|                         'id'    => auth()->guard('contact')->user()->company->account->key, | ||||
| @ -123,7 +124,7 @@ class Handler extends ExceptionHandler | ||||
|             }); | ||||
| 
 | ||||
|             if ($this->validException($exception)) { | ||||
|                 app('sentry')->captureException($exception); | ||||
|                 Integration::captureUnhandledException($exception); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -76,6 +76,7 @@ class ClientExport extends BaseExport | ||||
|         'contact_custom_value3' => 'contact.custom_value3', | ||||
|         'contact_custom_value4' => 'contact.custom_value4', | ||||
|         'email' => 'contact.email', | ||||
|         'status' => 'status' | ||||
|     ]; | ||||
| 
 | ||||
|     private array $decorate_keys = [ | ||||
| @ -173,6 +174,19 @@ class ClientExport extends BaseExport | ||||
|             $entity['industry_id'] = $client->industry ? ctrans("texts.industry_{$client->industry->name}") : ''; | ||||
|         } | ||||
| 
 | ||||
|         $entity['status'] = $this->calculateStatus($client); | ||||
| 
 | ||||
|         return $entity; | ||||
|     } | ||||
| 
 | ||||
|     private function calculateStatus($client) | ||||
|     { | ||||
|         if($client->is_deleted) | ||||
|             return ctrans('texts.deleted'); | ||||
| 
 | ||||
|         if($client->deleted_at) | ||||
|             return ctrans('texts.arcvived'); | ||||
| 
 | ||||
|         return ctrans('texts.active'); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -56,8 +56,6 @@ class InvoiceFilters extends QueryFilters | ||||
|         if (in_array('unpaid', $status_parameters)) { | ||||
|             $this->builder->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]); | ||||
|         } | ||||
|         //->where('due_date', '>', Carbon::now())
 | ||||
|         //->orWhere('partial_due_date', '>', Carbon::now());
 | ||||
| 
 | ||||
|         if (in_array('overdue', $status_parameters)) { | ||||
|             $this->builder->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) | ||||
|  | ||||
| @ -136,11 +136,13 @@ class EmailController extends BaseController | ||||
|         } | ||||
| 
 | ||||
|         $entity_obj->invitations->each(function ($invitation) use ($data, $entity_string, $entity_obj, $template) { | ||||
| 
 | ||||
|             if (! $invitation->contact->trashed() && $invitation->contact->email) { | ||||
|                 $entity_obj->service()->markSent()->save(); | ||||
| 
 | ||||
|                 EmailEntity::dispatch($invitation->fresh(), $invitation->company, $template, $data)->delay(now()->addSeconds(2)); | ||||
|             } | ||||
|              | ||||
|         }); | ||||
| 
 | ||||
|         $entity_obj = $entity_obj->fresh(); | ||||
|  | ||||
| @ -178,10 +178,16 @@ class MatchBankTransactions implements ShouldQueue | ||||
| 
 | ||||
|             $this->bt->expense_id = $expense->id; | ||||
|             $this->bt->status_id = BankTransaction::STATUS_CONVERTED; | ||||
|             $this->bt->vendor_id = $expense->vendor_id; | ||||
|             $this->bt->ninja_category_id = $expense->category_id; | ||||
|             $this->bt->save(); | ||||
| 
 | ||||
|             $this->bts->push($this->bt->id); | ||||
| 
 | ||||
|         } | ||||
|      | ||||
|         return $this; | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     private function linkPayment($input) | ||||
| @ -201,10 +207,13 @@ class MatchBankTransactions implements ShouldQueue | ||||
| 
 | ||||
|             $this->bt->payment_id = $payment->id; | ||||
|             $this->bt->status_id = BankTransaction::STATUS_CONVERTED; | ||||
|             $this->bt->invoice_ids = collect($payment->invoices)->pluck('hashed_id')->implode(','); | ||||
|             $this->bt->save(); | ||||
| 
 | ||||
|             $this->bts->push($this->bt->id); | ||||
|         } | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
| 
 | ||||
|     private function matchInvoicePayment($input) :self | ||||
| @ -222,9 +231,9 @@ class MatchBankTransactions implements ShouldQueue | ||||
| 
 | ||||
|             $this->createPayment($_invoices, $amount); | ||||
| 
 | ||||
|         } | ||||
|             $this->bts->push($this->bt->id); | ||||
| 
 | ||||
|         $this->bts->push($this->bt->id); | ||||
|         } | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
| @ -90,7 +90,6 @@ class EmailEntity implements ShouldQueue | ||||
| 
 | ||||
|         $this->template_data = $template_data; | ||||
| 
 | ||||
|         $this->email_entity_builder = $this->resolveEmailBuilder(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -106,6 +105,8 @@ class EmailEntity implements ShouldQueue | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         $this->email_entity_builder = $this->resolveEmailBuilder(); | ||||
| 
 | ||||
|         /* Set DB */ | ||||
|         MultiDB::setDB($this->company->db); | ||||
| 
 | ||||
|  | ||||
| @ -161,6 +161,11 @@ class SendRecurring implements ShouldQueue | ||||
|      */ | ||||
|     private function createRecurringInvitations($invoice) :Invoice | ||||
|     { | ||||
| 
 | ||||
|         if($this->recurring_invoice->invitations->count() == 0) { | ||||
|             $this->recurring_invoice = $this->recurring_invoice->service()->createInvitations()->save(); | ||||
|         } | ||||
| 
 | ||||
|         $this->recurring_invoice->invitations->each(function ($recurring_invitation) use ($invoice) { | ||||
|             $ii = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id); | ||||
|             $ii->key = $this->createDbHash($invoice->company->db); | ||||
|  | ||||
| @ -190,7 +190,7 @@ class Import implements ShouldQueue | ||||
| 
 | ||||
|     public function middleware() | ||||
|     { | ||||
|         return [new WithoutOverlapping($this->company->company_key)]; | ||||
|         return [new WithoutOverlapping("only_one_migration_at_a_time_ever")]; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -148,8 +148,12 @@ class ReminderJob implements ShouldQueue | ||||
|         (Ninja::isSelfHost() || $invoice->company->account->isPaidHostedClient())) { | ||||
| 
 | ||||
|                  $invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) { | ||||
|                      EmailEntity::dispatch($invitation, $invitation->company, $reminder_template)->delay(now()->addSeconds(3)); | ||||
|                      nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); | ||||
| 
 | ||||
|                     if($invitation->contact && !$invitation->contact->trashed() && $invitation->contact->email) { | ||||
|                          EmailEntity::dispatch($invitation, $invitation->company, $reminder_template)->delay(now()->addSeconds(3)); | ||||
|                          nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); | ||||
|                     } | ||||
| 
 | ||||
|                  }); | ||||
| 
 | ||||
|                  if ($invoice->invitations->count() > 0) { | ||||
|  | ||||
| @ -127,12 +127,7 @@ class InvoiceEmailEngine extends BaseEmailEngine | ||||
|             ->setTextBody($text_body); | ||||
| 
 | ||||
|         if ($this->client->getSetting('pdf_email_attachment') !== false && $this->invoice->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { | ||||
|             // if (Ninja::isHosted()) {
 | ||||
|             //     $this->setAttachments([$this->invoice->pdf_file_path($this->invitation, 'url', true)]);
 | ||||
|             // } else {
 | ||||
|             //     $this->setAttachments([$this->invoice->pdf_file_path($this->invitation)]);
 | ||||
|             // }
 | ||||
|         //        $file = (new CreateRawPdf($invitation, $invitation->company->db))->handle();
 | ||||
|              | ||||
|             $pdf = ((new CreateRawPdf($this->invitation, $this->invitation->company->db))->handle()); | ||||
| 
 | ||||
|             $this->setAttachments([['file' => base64_encode($pdf), 'name' => $this->invoice->numberFormatter().'.pdf']]);    | ||||
|  | ||||
| @ -118,50 +118,9 @@ class TemplateEmail extends Mailable | ||||
|                 'logo' => $this->company->present()->logo($settings), | ||||
|             ]); | ||||
| 
 | ||||
|         /*In the hosted platform we need to slow things down a little for Storage to catch up.*/ | ||||
| 
 | ||||
|         // if(Ninja::isHosted() && $this->invitation){
 | ||||
| 
 | ||||
|         //     $path = false;
 | ||||
| 
 | ||||
|         //     if($this->invitation->invoice)
 | ||||
|         //         $path = $this->client->invoice_filepath($this->invitation).$this->invitation->invoice->numberFormatter().'.pdf';
 | ||||
|         //     elseif($this->invitation->quote)
 | ||||
|         //         $path = $this->client->quote_filepath($this->invitation).$this->invitation->quote->numberFormatter().'.pdf';
 | ||||
|         //     elseif($this->invitation->credit)
 | ||||
|         //         $path = $this->client->credit_filepath($this->invitation).$this->invitation->credit->numberFormatter().'.pdf';
 | ||||
| 
 | ||||
|         //     sleep(1);
 | ||||
| 
 | ||||
|         //     if($path && !Storage::disk(config('filesystems.default'))->exists($path)){
 | ||||
| 
 | ||||
|         //         sleep(2);
 | ||||
| 
 | ||||
|         //         if(!Storage::disk(config('filesystems.default'))->exists($path)) {
 | ||||
|         //             (new CreateEntityPdf($this->invitation))->handle();
 | ||||
|         //             sleep(2);
 | ||||
|         //         }
 | ||||
| 
 | ||||
|         //     }
 | ||||
| 
 | ||||
|         // }
 | ||||
| 
 | ||||
|         //        $file = (new CreateRawPdf($invitation, $invitation->company->db))->handle();
 | ||||
| 
 | ||||
| 
 | ||||
|         //22-10-2022 - Performance - To improve the performance/reliability of sending emails, attaching as Data is much better, stubs in place
 | ||||
|         foreach ($this->build_email->getAttachments() as $file) { | ||||
|             // if (is_string($file)) {
 | ||||
|             //     // nlog($file);
 | ||||
|             //     // $file_data = file_get_contents($file);
 | ||||
|             //     // $this->attachData($file_data, basename($file));
 | ||||
|             //     $this->attach($file);
 | ||||
|             // } elseif (is_array($file)) {
 | ||||
|             //     // nlog($file['path']);
 | ||||
|             //     // $file_data = file_get_contents($file['path']);
 | ||||
|             //     // $this->attachData($file_data, $file['name']);
 | ||||
|             //     $this->attach($file['path'], ['as' => $file['name'], 'mime' => null]);
 | ||||
|             // }
 | ||||
|             if(array_key_exists('file', $file)) | ||||
|                 $this->attachData(base64_decode($file['file']), $file['name']); | ||||
|             else | ||||
|  | ||||
| @ -112,36 +112,12 @@ class VendorTemplateEmail extends Mailable | ||||
|             ]); | ||||
| 
 | ||||
| 
 | ||||
|         // if(Ninja::isHosted() && $this->invitation){
 | ||||
| 
 | ||||
|         //     $path = false;
 | ||||
| 
 | ||||
|         //     if($this->invitation->purchase_order)
 | ||||
|         //         $path = $this->vendor->purchase_order_filepath($this->invitation).$this->invitation->purchase_order->numberFormatter().'.pdf';
 | ||||
| 
 | ||||
|         //     sleep(1);
 | ||||
| 
 | ||||
|         //     if($path && !Storage::disk(config('filesystems.default'))->exists($path)){
 | ||||
| 
 | ||||
|         //         sleep(2);
 | ||||
| 
 | ||||
|         //         if(!Storage::disk(config('filesystems.default'))->exists($path)) {
 | ||||
|         //             (new CreatePurchaseOrderPdf($this->invitation))->handle();
 | ||||
|         //             sleep(2);
 | ||||
|         //         }
 | ||||
| 
 | ||||
|         //     }
 | ||||
| 
 | ||||
|         // }
 | ||||
| 
 | ||||
|         foreach ($this->build_email->getAttachments() as $file) { | ||||
|             // if (is_string($file)) {
 | ||||
|             //     $this->attach($file);
 | ||||
|             // } elseif (is_array($file)) {
 | ||||
|             //     $this->attach($file['path'], ['as' => $file['name'], 'mime' => null]);
 | ||||
|             // }
 | ||||
| 
 | ||||
|             $this->attachData(base64_decode($file['file']), $file['name']); | ||||
|             if(array_key_exists('file', $file)) | ||||
|                 $this->attachData(base64_decode($file['file']), $file['name']); | ||||
|             else | ||||
|                 $this->attach($file['path'], ['as' => $file['name'], 'mime' => null]); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -76,6 +76,9 @@ class Webhook extends BaseModel | ||||
| 
 | ||||
|     const EVENT_DELETE_CREDIT = 29; | ||||
| 
 | ||||
|     const EVENT_PROJECT_DELETE = 30; | ||||
| 
 | ||||
| 
 | ||||
|     public static $valid_events = [ | ||||
|         self::EVENT_CREATE_CLIENT, | ||||
|         self::EVENT_CREATE_INVOICE, | ||||
| @ -106,6 +109,7 @@ class Webhook extends BaseModel | ||||
|         self::EVENT_CREATE_CREDIT, | ||||
|         self::EVENT_UPDATE_CREDIT, | ||||
|         self::EVENT_DELETE_CREDIT, | ||||
|         self::EVENT_PROJECT_DELETE | ||||
|     ]; | ||||
| 
 | ||||
|     protected $fillable = [ | ||||
|  | ||||
| @ -61,7 +61,14 @@ class ProjectObserver | ||||
|      */ | ||||
|     public function deleted(Project $project) | ||||
|     { | ||||
|         //
 | ||||
|         //EVENT_PROJECT_DELETE
 | ||||
|         $subscriptions = Webhook::where('company_id', $project->company_id) | ||||
|                             ->where('event_id', Webhook::EVENT_PROJECT_DELETE) | ||||
|                             ->exists(); | ||||
| 
 | ||||
|         if ($subscriptions) { | ||||
|             WebhookHandler::dispatch(Webhook::EVENT_PROJECT_DELETE, $project, $project->company, 'client')->delay(now()->addSeconds(2)); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -302,7 +302,8 @@ class CheckoutComPaymentDriver extends BaseDriver | ||||
|             } | ||||
|              | ||||
|                 $phone = new Phone(); | ||||
|                 $phone->number = $this->client->present()->phone(); | ||||
|                 // $phone->number = $this->client->present()->phone();
 | ||||
|                 $phone->number = substr(str_pad($this->client->present()->phone(),6, "0", STR_PAD_RIGHT), 0 , 24); | ||||
| 
 | ||||
|                 $request->email = $this->client->present()->email(); | ||||
|                 $request->name = $this->client->present()->name(); | ||||
|  | ||||
| @ -69,7 +69,7 @@ class ACH | ||||
|         $customer = $this->stripe->findOrCreateCustomer(); | ||||
| 
 | ||||
|         try { | ||||
|             $source = Customer::createSource($customer->id, ['source' => $stripe_response->token->id], $this->stripe->stripe_connect_auth); | ||||
|             $source = Customer::createSource($customer->id, ['source' => $stripe_response->token->id], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
|         } catch (InvalidRequestException $e) { | ||||
|             throw new PaymentFailed($e->getMessage(), $e->getCode()); | ||||
|         } | ||||
|  | ||||
| @ -55,7 +55,7 @@ class ACSS | ||||
|         $customer = $this->stripe->findOrCreateCustomer(); | ||||
| 
 | ||||
|         try { | ||||
|             $source = Customer::createSource($customer->id, ['source' => $stripe_response->token->id], $this->stripe->stripe_connect_auth); | ||||
|             $source = Customer::createSource($customer->id, ['source' => $stripe_response->token->id], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
|         } catch (InvalidRequestException $e) { | ||||
|             throw new PaymentFailed($e->getMessage(), $e->getCode()); | ||||
|         } | ||||
|  | ||||
| @ -60,7 +60,7 @@ class BECS | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::BECS, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -57,7 +57,7 @@ class Bancontact | ||||
|                 'gateway_type_id' => GatewayType::BANCONTACT, | ||||
|             ], | ||||
| 
 | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -91,7 +91,12 @@ class Charge | ||||
|                 $data['payment_method_types'] = ['sepa_debit']; | ||||
|             } | ||||
| 
 | ||||
|             $response = $this->stripe->createPaymentIntent($data, $this->stripe->stripe_connect_auth); | ||||
|             /* Should improve token billing with client not present */ | ||||
|             if (!auth()->guard('contact')->check()) { | ||||
|                 $data['off_session'] = true; | ||||
|             } | ||||
| 
 | ||||
|             $response = $this->stripe->createPaymentIntent($data, array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|             SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_STRIPE, $this->stripe->client, $this->stripe->client->company); | ||||
|         } catch (\Exception $e) { | ||||
|  | ||||
| @ -112,7 +112,7 @@ class CreditCard | ||||
|             $state['store_card'] = false; | ||||
|         } | ||||
| 
 | ||||
|         $state['payment_intent'] = PaymentIntent::retrieve($state['server_response']->id, $this->stripe->stripe_connect_auth); | ||||
|         $state['payment_intent'] = PaymentIntent::retrieve($state['server_response']->id, array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
|         $state['customer'] = $state['payment_intent']->customer; | ||||
| 
 | ||||
|         $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $state); | ||||
|  | ||||
| @ -56,7 +56,7 @@ class EPS | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::EPS, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -57,7 +57,7 @@ class FPX | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::FPX, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -56,7 +56,7 @@ class GIROPAY | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::GIROPAY, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -56,7 +56,7 @@ class PRZELEWY24 | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::PRZELEWY24, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -67,7 +67,7 @@ class SEPA | ||||
|             ], | ||||
|         ]; | ||||
| 
 | ||||
|         $intent = \Stripe\PaymentIntent::create($intent_data, $this->stripe->stripe_connect_auth); | ||||
|         $intent = \Stripe\PaymentIntent::create($intent_data, array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -56,7 +56,7 @@ class SOFORT | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::SOFORT, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -56,7 +56,7 @@ class iDeal | ||||
|                 'payment_hash' => $this->stripe->payment_hash->hash, | ||||
|                 'gateway_type_id' => GatewayType::IDEAL, | ||||
|             ], | ||||
|         ], $this->stripe->stripe_connect_auth); | ||||
|         ], array_merge($this->stripe->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         $data['pi_client_secret'] = $intent->client_secret; | ||||
| 
 | ||||
|  | ||||
| @ -122,7 +122,7 @@ class StripePaymentDriver extends BaseDriver | ||||
|             ); | ||||
| 
 | ||||
|             Stripe::setApiKey($this->company_gateway->getConfigField('apiKey')); | ||||
|             // Stripe::setApiVersion('2022-11-15');
 | ||||
|             Stripe::setApiVersion('2022-11-15'); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
| @ -387,7 +387,7 @@ class StripePaymentDriver extends BaseDriver | ||||
| 
 | ||||
|         $meta = $this->stripe_connect_auth; | ||||
| 
 | ||||
|         return PaymentIntent::create($data, $meta); | ||||
|         return PaymentIntent::create($data, array_merge($meta, ['idempotency_key' => uniqid("st",true)])); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -404,7 +404,7 @@ class StripePaymentDriver extends BaseDriver | ||||
|         $params = ['usage' => 'off_session']; | ||||
|         $meta = $this->stripe_connect_auth; | ||||
| 
 | ||||
|         return SetupIntent::create($params, $meta); | ||||
|         return SetupIntent::create($params, array_merge($meta, ['idempotency_key' => uniqid("st",true)])); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -481,7 +481,7 @@ class StripePaymentDriver extends BaseDriver | ||||
|         $data['address']['state'] = $this->client->state; | ||||
|         $data['address']['country'] = $this->client->country ? $this->client->country->iso_3166_2 : ''; | ||||
| 
 | ||||
|         $customer = Customer::create($data, $this->stripe_connect_auth); | ||||
|         $customer = Customer::create($data, array_merge($this->stripe_connect_auth, ['idempotency_key' => uniqid("st",true)])); | ||||
| 
 | ||||
|         if (! $customer) { | ||||
|             throw new Exception('Unable to create gateway customer'); | ||||
|  | ||||
| @ -33,7 +33,16 @@ class BankMatchingService implements ShouldQueue | ||||
| { | ||||
|     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; | ||||
| 
 | ||||
|     public function __construct(protected int $company_id, private string $db){} | ||||
|     protected $company_id; | ||||
| 
 | ||||
|     protected $db; | ||||
| 
 | ||||
|     public function __construct($company_id, $db) | ||||
|     { | ||||
|         $this->company_id = $company_id; | ||||
|         $this->db = $db; | ||||
|         $this->middleware_key = "bank_match_rate:{$this->company_id}"; | ||||
|     } | ||||
| 
 | ||||
|     public function handle() :void | ||||
|     { | ||||
| @ -53,6 +62,6 @@ class BankMatchingService implements ShouldQueue | ||||
| 
 | ||||
|     public function middleware() | ||||
|     { | ||||
|         return [new WithoutOverlapping("bank_match_rate:{$this->company_id}")]; | ||||
|         return [new WithoutOverlapping($this->middleware_key)]; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -106,9 +106,10 @@ class Helpers | ||||
|      * | ||||
|      * @param string $value | ||||
|      * @param Client|Company $entity | ||||
|      * @param null|Carbon $currentDateTime | ||||
|      * @return null|string | ||||
|      */ | ||||
|     public static function processReservedKeywords(?string $value, $entity): ?string | ||||
|     public static function processReservedKeywords(?string $value, $entity, $currentDateTime = null): ?string | ||||
|     { | ||||
|         if (! $value) { | ||||
|             return ''; | ||||
| @ -132,71 +133,75 @@ class Helpers | ||||
| 
 | ||||
|         Carbon::setLocale($entity->locale()); | ||||
| 
 | ||||
|         if (!$currentDateTime) { | ||||
|             $currentDateTime = Carbon::now(); | ||||
|         } | ||||
| 
 | ||||
|         $replacements = [ | ||||
|             'literal' => [ | ||||
|                 ':MONTH_BEFORE' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->subMonth(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->subMonth(1)->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                 ), | ||||
|                 ':YEAR_BEFORE' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->subYear(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->subYear(1)->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                 ), | ||||
|                 ':MONTH_AFTER' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->addMonth(1)->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->addMonth(1)->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                 ), | ||||
|                 ':YEAR_AFTER' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->addYear(1)->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->addYear(1)->subDay(1)->translatedFormat($entity->date_format()), | ||||
|                 ), | ||||
|                 ':MONTHYEAR' => \sprintf( | ||||
|                     '%s %s', | ||||
|                     Carbon::createFromDate(now()->month)->translatedFormat('F'), | ||||
|                     now()->year, | ||||
|                     Carbon::createFromDate($currentDateTime->month)->translatedFormat('F'), | ||||
|                     $currentDateTime->year, | ||||
|                 ), | ||||
|                 ':MONTH' => Carbon::createFromDate(now()->year, now()->month)->translatedFormat('F'), | ||||
|                 ':YEAR' => now()->year, | ||||
|                 ':QUARTER' => 'Q'.now()->quarter, | ||||
|                 ':MONTH' => Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->translatedFormat('F'), | ||||
|                 ':YEAR' => $currentDateTime->year, | ||||
|                 ':QUARTER' => 'Q'.$currentDateTime->quarter, | ||||
|                 ':WEEK_BEFORE' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->subDays(7)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->subDays(7)->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->subDays(1)->translatedFormat($entity->date_format()) | ||||
|                     $currentDateTime->copy()->subDays(1)->translatedFormat($entity->date_format()) | ||||
|                 ), | ||||
|                 ':WEEK_AHEAD' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->addDays(7)->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->copy()->addDays(7)->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->addDays(13)->translatedFormat($entity->date_format()) | ||||
|                     $currentDateTime->copy()->addDays(13)->translatedFormat($entity->date_format()) | ||||
|                 ), | ||||
|                 ':WEEK' => \sprintf( | ||||
|                     '%s %s %s', | ||||
|                     Carbon::now()->translatedFormat($entity->date_format()), | ||||
|                     $currentDateTime->translatedFormat($entity->date_format()), | ||||
|                     ctrans('texts.to'), | ||||
|                     Carbon::now()->addDays(6)->translatedFormat($entity->date_format()) | ||||
|                     $currentDateTime->copy()->addDays(6)->translatedFormat($entity->date_format()) | ||||
|                 ), | ||||
|             ], | ||||
|             'raw' => [ | ||||
|                 ':MONTHYEAR' => now()->month, | ||||
|                 ':MONTH' => now()->month, | ||||
|                 ':YEAR' => now()->year, | ||||
|                 ':QUARTER' => now()->quarter, | ||||
|                 ':MONTHYEAR' => $currentDateTime->month, | ||||
|                 ':MONTH' => $currentDateTime->month, | ||||
|                 ':YEAR' => $currentDateTime->year, | ||||
|                 ':QUARTER' => $currentDateTime->quarter, | ||||
|             ], | ||||
|             'ranges' => [ | ||||
|                 'MONTHYEAR' => Carbon::createFromDate(now()->year, now()->month), | ||||
|                 'MONTHYEAR' => Carbon::createFromDate($currentDateTime->year, $currentDateTime->month), | ||||
|             ], | ||||
|             'ranges_raw' => [ | ||||
|                 'MONTH' => now()->month, | ||||
|                 'YEAR' => now()->year, | ||||
|                 'MONTH' => $currentDateTime->month, | ||||
|                 'YEAR' => $currentDateTime->year, | ||||
|             ], | ||||
|         ]; | ||||
| 
 | ||||
| @ -221,12 +226,12 @@ class Helpers | ||||
|                     continue; | ||||
|                 } | ||||
| 
 | ||||
|                 $_left = Carbon::createFromDate(now()->year, now()->month)->translatedFormat('F Y'); | ||||
|                 $_left = Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->translatedFormat('F Y'); | ||||
|                 $_right = ''; | ||||
| 
 | ||||
|                 // If right side doesn't have any calculations, replace with raw ranges keyword.
 | ||||
|                 if (! Str::contains($right, ['-', '+', '/', '*'])) { | ||||
|                     $_right = Carbon::createFromDate(now()->year, now()->month)->translatedFormat('F Y'); | ||||
|                     $_right = Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->translatedFormat('F Y'); | ||||
|                 } | ||||
| 
 | ||||
|                 // If right side contains one of math operations, calculate.
 | ||||
| @ -237,7 +242,7 @@ class Helpers | ||||
| 
 | ||||
|                     $_value = explode($_operation, $right); // [MONTHYEAR, 4]
 | ||||
| 
 | ||||
|                     $_right = Carbon::createFromDate(now()->year, now()->month)->addMonths($_value[1])->translatedFormat('F Y'); | ||||
|                     $_right = Carbon::createFromDate($currentDateTime->year, $currentDateTime->month)->addMonths($_value[1])->translatedFormat('F Y'); | ||||
|                 } | ||||
| 
 | ||||
|                 $replacement = sprintf('%s to %s', $_left, $_right); | ||||
| @ -304,7 +309,7 @@ class Helpers | ||||
|                 } | ||||
| 
 | ||||
|                 if ($matches->keys()->first() == ':MONTHYEAR') { | ||||
|                     $final_date = now()->addMonths($output - now()->month); | ||||
|                     $final_date = $currentDateTime->copy()->addMonths($output - $currentDateTime->month); | ||||
| 
 | ||||
|                     $output = \sprintf( | ||||
|                             '%s %s', | ||||
|  | ||||
| @ -226,6 +226,12 @@ class HtmlEngine | ||||
|             $data['$view_url'] = ['value' => $this->invitation->getLink(), 'label' => ctrans('texts.view_credit')]; | ||||
|             // $data['$view_link']          = ['value' => $this->invitation->getLink(), 'label' => ctrans('texts.view_credit')];
 | ||||
|             $data['$date'] = ['value' => $this->translateDate($this->entity->date, $this->client->date_format(), $this->client->locale()) ?: ' ', 'label' => ctrans('texts.credit_date')]; | ||||
| 
 | ||||
|             $data['$credit.custom1'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit1', $this->entity->custom_value1, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice1')]; | ||||
|             $data['$credit.custom2'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit2', $this->entity->custom_value2, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice2')]; | ||||
|             $data['$credit.custom3'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit3', $this->entity->custom_value3, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice3')]; | ||||
|             $data['$credit.custom4'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit4', $this->entity->custom_value4, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice4')]; | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         $data['$portal_url'] = ['value' => $this->invitation->getPortalLink(), 'label' =>'']; | ||||
|  | ||||
| @ -295,8 +295,13 @@ trait MakesInvoiceValues | ||||
|             $data[$key][$table_type.'.item'] = is_null(optional($item)->item) ? $item->product_key : $item->item; | ||||
|             $data[$key][$table_type.'.service'] = is_null(optional($item)->service) ? $item->product_key : $item->service; | ||||
| 
 | ||||
|             $data[$key][$table_type.'.notes'] = Helpers::processReservedKeywords($item->notes, $entity); | ||||
|             $data[$key][$table_type.'.description'] = Helpers::processReservedKeywords($item->notes, $entity); | ||||
|             $currentDateTime = null; | ||||
|             if (isset($this->entity->next_send_date)) { | ||||
|                 $currentDateTime = Carbon::parse($this->entity->next_send_date); | ||||
|             } | ||||
| 
 | ||||
|             $data[$key][$table_type.'.notes'] = Helpers::processReservedKeywords($item->notes, $entity, $currentDateTime); | ||||
|             $data[$key][$table_type.'.description'] = Helpers::processReservedKeywords($item->notes, $entity, $currentDateTime); | ||||
| 
 | ||||
|             $data[$key][$table_type.".{$_table_type}1"] = strlen($item->custom_value1) >= 1 ? $helpers->formatCustomFieldValue($this->company->custom_fields, "{$_table_type}1", $item->custom_value1, $entity) : ''; | ||||
|             $data[$key][$table_type.".{$_table_type}2"] = strlen($item->custom_value2) >= 1 ? $helpers->formatCustomFieldValue($this->company->custom_fields, "{$_table_type}2", $item->custom_value2, $entity) : ''; | ||||
|  | ||||
| @ -76,7 +76,7 @@ | ||||
|         "pragmarx/google2fa": "^8.0", | ||||
|         "turbo124/predis": "^1.1", | ||||
|         "razorpay/razorpay": "2.*", | ||||
|         "sentry/sentry-laravel": "^2", | ||||
|         "sentry/sentry-laravel": "^3", | ||||
|         "setasign/fpdf": "^1.8", | ||||
|         "setasign/fpdi": "^2.3", | ||||
|         "socialiteproviders/apple": "^5.2", | ||||
|  | ||||
							
								
								
									
										892
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										892
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -81,7 +81,7 @@ return [ | ||||
|     | | ||||
|     */ | ||||
| 
 | ||||
|     'locale' => 'en', | ||||
|     'locale' => env('DEFAULT_LOCALE', 'en'), | ||||
| 
 | ||||
|     /* | ||||
|     |-------------------------------------------------------------------------- | ||||
|  | ||||
| @ -14,8 +14,8 @@ return [ | ||||
|     'require_https' => env('REQUIRE_HTTPS', true), | ||||
|     'app_url' => rtrim(env('APP_URL', ''), '/'), | ||||
|     'app_domain' => env('APP_DOMAIN', 'invoicing.co'), | ||||
|     'app_version' => '5.5.45', | ||||
|     'app_tag' => '5.5.45', | ||||
|     'app_version' => '5.5.46', | ||||
|     'app_tag' => '5.5.46', | ||||
|     'minimum_client_version' => '5.0.16', | ||||
|     'terms_version' => '1.0.1', | ||||
|     'api_secret' => env('API_SECRET', ''), | ||||
|  | ||||
| @ -4,8 +4,8 @@ return [ | ||||
| 
 | ||||
|     //'dsn' => env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),
 | ||||
|     'dsn' => config('ninja.sentry_dsn'), | ||||
|     // capture release as git sha
 | ||||
|     // 'release' => trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')),
 | ||||
|      | ||||
|     'release' => config('ninja.app_version'), | ||||
| 
 | ||||
|     'breadcrumbs' => [ | ||||
|         // Capture Laravel logs in breadcrumbs
 | ||||
| @ -26,5 +26,4 @@ return [ | ||||
| 
 | ||||
|     // @see: https://docs.sentry.io/error-reporting/configuration/?platform=php#send-default-pii
 | ||||
|     'send_default_pii' => false, | ||||
|     'release' => config('ninja.app_version'), | ||||
| ]; | ||||
|  | ||||
| @ -4566,9 +4566,9 @@ $LANG = array( | ||||
|     'invalid_time' => 'Invalid Time', | ||||
|     'signed_in_as' => 'Signed in as', | ||||
|     'total_results' => 'Total results', | ||||
|     'restore_company_gateway' => 'Restore payment gateway', | ||||
|     'archive_company_gateway' => 'Archive payment gateway', | ||||
|     'delete_company_gateway' => 'Delete payment gateway', | ||||
|     'restore_company_gateway' => 'Restore gateway', | ||||
|     'archive_company_gateway' => 'Archive gateway', | ||||
|     'delete_company_gateway' => 'Delete gateway', | ||||
|     'exchange_currency' => 'Exchange currency', | ||||
|     'tax_amount1' => 'Tax Amount 1', | ||||
|     'tax_amount2' => 'Tax Amount 2', | ||||
| @ -4845,6 +4845,8 @@ $LANG = array( | ||||
|     'refresh_accounts' => 'Refresh Accounts', | ||||
|     'upgrade_to_connect_bank_account' => 'Upgrade to Enterprise to connect your bank account', | ||||
|     'click_here_to_connect_bank_account' => 'Click here to connect your bank account', | ||||
|     'include_tax' => 'Include tax', | ||||
|     'email_template_change' => 'E-mail template body can be changed on', | ||||
|     'task_update_authorization_error' => 'Insufficient permissions, or task may be locked', | ||||
|     'cash_vs_accrual' => 'Accrual accounting', | ||||
|     'cash_vs_accrual_help' => 'Turn on for accrual reporting, turn off for cash basis reporting.', | ||||
|  | ||||
							
								
								
									
										590
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										590
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							| @ -3,305 +3,305 @@ const MANIFEST = 'flutter-app-manifest'; | ||||
| const TEMP = 'flutter-temp-cache'; | ||||
| const CACHE_NAME = 'flutter-app-cache'; | ||||
| const RESOURCES = { | ||||
|   "assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "b62641afc9ab487008e996a5c5865e56", | ||||
| "assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac", | ||||
| "assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1", | ||||
| "assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591", | ||||
| "assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc", | ||||
| "assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04", | ||||
| "assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25", | ||||
| "assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7", | ||||
| "assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d", | ||||
| "assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13", | ||||
| "assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a", | ||||
| "assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1", | ||||
| "assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b", | ||||
| "assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab", | ||||
| "assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6", | ||||
| "assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37", | ||||
| "assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4", | ||||
| "assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37", | ||||
| "assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810", | ||||
| "assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661", | ||||
| "assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176", | ||||
| "assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1", | ||||
| "assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036", | ||||
| "assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405", | ||||
| "assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36", | ||||
| "assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4", | ||||
| "assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2", | ||||
| "assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4", | ||||
| "assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0", | ||||
| "assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959", | ||||
| "assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0", | ||||
| "assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33", | ||||
| "assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f", | ||||
| "assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491", | ||||
| "assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e", | ||||
| "assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4", | ||||
| "assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a", | ||||
| "assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50", | ||||
| "assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff", | ||||
| "assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97", | ||||
| "assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d", | ||||
| "assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3", | ||||
| "assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16", | ||||
| "assets/packages/intl_phone_field/assets/flags/tk.png": "60428ff1cdbae680e5a0b8cde4677dd5", | ||||
| "assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d", | ||||
| "assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77", | ||||
| "assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40", | ||||
| "assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae", | ||||
| "assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb", | ||||
| "assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e", | ||||
| "assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77", | ||||
| "assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea", | ||||
| "assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5", | ||||
| "assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e", | ||||
| "assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3", | ||||
| "assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9", | ||||
| "assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3", | ||||
| "assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc", | ||||
| "assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05", | ||||
| "assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a", | ||||
| "assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5", | ||||
| "assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45", | ||||
| "assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d", | ||||
| "assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab", | ||||
| "assets/packages/intl_phone_field/assets/flags/gt.png": "706a0c3b5e0b589c843e2539e813839e", | ||||
| "assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d", | ||||
| "assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c", | ||||
| "assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632", | ||||
| "assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66", | ||||
| "assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93", | ||||
| "assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55", | ||||
| "assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4", | ||||
| "assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811", | ||||
| "assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd", | ||||
| "assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16", | ||||
| "assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7", | ||||
| "assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc", | ||||
| "assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d", | ||||
| "assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948", | ||||
| "assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8", | ||||
| "assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799", | ||||
| "assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056", | ||||
| "assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2", | ||||
| "assets/packages/intl_phone_field/assets/flags/mm.png": "32e5293d6029d8294c7dfc3c3835c222", | ||||
| "assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe", | ||||
| "assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e", | ||||
| "assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718", | ||||
| "assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532", | ||||
| "assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b", | ||||
| "assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7", | ||||
| "assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d", | ||||
| "assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5", | ||||
| "assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b", | ||||
| "assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04", | ||||
| "assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64", | ||||
| "assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf", | ||||
| "assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121", | ||||
| "assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933", | ||||
| "assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df", | ||||
| "assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24", | ||||
| "assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80", | ||||
| "assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52", | ||||
| "assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3", | ||||
| "assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a", | ||||
| "assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd", | ||||
| "assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb", | ||||
| "assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31", | ||||
| "assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59", | ||||
| "assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f", | ||||
| "assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b", | ||||
| "assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7", | ||||
| "assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636", | ||||
| "assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a", | ||||
| "assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a", | ||||
| "assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714", | ||||
| "assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92", | ||||
| "assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3", | ||||
| "assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498", | ||||
| "assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23", | ||||
| "assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211", | ||||
| "assets/packages/intl_phone_field/assets/flags/ax.png": "ec2062c36f09ed8fb90ac8992d010024", | ||||
| "assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6", | ||||
| "assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf", | ||||
| "assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566", | ||||
| "assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0", | ||||
| "assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831", | ||||
| "assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b", | ||||
| "assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82", | ||||
| "assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29", | ||||
| "assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39", | ||||
| "assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f", | ||||
| "assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0", | ||||
| "assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4", | ||||
| "assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233", | ||||
| "assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf", | ||||
| "assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589", | ||||
| "assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a", | ||||
| "assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94", | ||||
| "assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db", | ||||
| "assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209", | ||||
| "assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9", | ||||
| "assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665", | ||||
| "assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3", | ||||
| "assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b", | ||||
| "assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9", | ||||
| "assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544", | ||||
| "assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16", | ||||
| "assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a", | ||||
| "assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8", | ||||
| "assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285", | ||||
| "assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8", | ||||
| "assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d", | ||||
| "assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7", | ||||
| "assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49", | ||||
| "assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4", | ||||
| "assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275", | ||||
| "assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c", | ||||
| "assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90", | ||||
| "assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011", | ||||
| "assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1", | ||||
| "assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64", | ||||
| "assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045", | ||||
| "assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb", | ||||
| "assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d", | ||||
| "assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd", | ||||
| "assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9", | ||||
| "assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2", | ||||
| "assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025", | ||||
| "assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06", | ||||
| "assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f", | ||||
| "assets/packages/intl_phone_field/assets/flags/sd.png": "65ce270762dfc87475ea99bd18f79025", | ||||
| "assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27", | ||||
| "assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71", | ||||
| "assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0", | ||||
| "assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64", | ||||
| "assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d", | ||||
| "assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c", | ||||
| "assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1", | ||||
| "assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2", | ||||
| "assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7", | ||||
| "assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea", | ||||
| "assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd", | ||||
| "assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9", | ||||
| "assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275", | ||||
| "assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f", | ||||
| "assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071", | ||||
| "assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc", | ||||
| "assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7", | ||||
| "assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65", | ||||
| "assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34", | ||||
| "assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722", | ||||
| "assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895", | ||||
| "assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c", | ||||
| "assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283", | ||||
| "assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1", | ||||
| "assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8", | ||||
| "assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25", | ||||
| "assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821", | ||||
| "assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4", | ||||
| "assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6", | ||||
| "assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871", | ||||
| "assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e", | ||||
| "assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86", | ||||
| "assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46", | ||||
| "assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877", | ||||
| "assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f", | ||||
| "assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797", | ||||
| "assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52", | ||||
| "assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d", | ||||
| "assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2", | ||||
| "assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423", | ||||
| "assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589", | ||||
| "assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc", | ||||
| "assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf", | ||||
| "assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc", | ||||
| "assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce", | ||||
| "assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755", | ||||
| "assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3", | ||||
| "assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2", | ||||
| "assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c", | ||||
| "assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c", | ||||
| "assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480", | ||||
| "assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5", | ||||
| "assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7", | ||||
| "assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092", | ||||
| "assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f", | ||||
| "assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555", | ||||
| "assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7", | ||||
| "assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab", | ||||
| "assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5", | ||||
| "assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b", | ||||
| "assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f", | ||||
| "assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63", | ||||
| "assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448", | ||||
| "assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e", | ||||
| "assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304", | ||||
| "assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2", | ||||
| "assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30", | ||||
| "assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62", | ||||
| "assets/packages/window_manager/images/ic_chrome_maximize.png": "af7499d7657c8b69d23b85156b60298c", | ||||
| "assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf", | ||||
| "assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2", | ||||
| "assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4", | ||||
| "assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc", | ||||
| "assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08", | ||||
| "assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c", | ||||
| "assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71", | ||||
| "assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf", | ||||
| "assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868", | ||||
| "assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6", | ||||
| "assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629", | ||||
| "assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2", | ||||
| "assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1", | ||||
| "assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629", | ||||
| "assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3", | ||||
| "assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5", | ||||
| "assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978", | ||||
| "assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024", | ||||
| "assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3", | ||||
| "assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a", | ||||
| "assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541", | ||||
| "assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219", | ||||
| "assets/NOTICES": "1a34e70168d56fad075adfb4bdbb20eb", | ||||
| "assets/fonts/MaterialIcons-Regular.otf": "95db9098c58fd6db106f1116bae85a0b", | ||||
| "assets/FontManifest.json": "087fb858dc3cbfbf6baf6a30004922f1", | ||||
| "assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa", | ||||
| "assets/shaders/ink_sparkle.frag": "face5c2f106eecf1dda786745c50b01f", | ||||
| "flutter.js": "f85e6fb278b0fd20c349186fb46ae36d", | ||||
| "favicon.ico": "51636d3a390451561744c42188ccd628", | ||||
| "favicon.png": "dca91c54388f52eded692718d5a98b8b", | ||||
|   "manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40", | ||||
| "version.json": "04dda2a311adc1947afc5c1055f19e16", | ||||
| "icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35", | ||||
| "icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed", | ||||
| "canvaskit/profiling/canvaskit.js": "38164e5a72bdad0faa4ce740c9b8e564", | ||||
| "canvaskit/profiling/canvaskit.wasm": "95a45378b69e77af5ed2bc72b2209b94", | ||||
| "canvaskit/canvaskit.js": "2bc454a691c631b07a9307ac4ca47797", | ||||
| "canvaskit/canvaskit.wasm": "bf50631470eb967688cca13ee181af62", | ||||
| "/": "83aac01abae3eb27a43bdb1f55895304", | ||||
| "version.json": "04dda2a311adc1947afc5c1055f19e16", | ||||
| "manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40", | ||||
| "icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35", | ||||
| "icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed", | ||||
| "main.dart.js": "91d67096ddd71f22b9cae01c774205f2" | ||||
| "favicon.png": "dca91c54388f52eded692718d5a98b8b", | ||||
| "flutter.js": "f85e6fb278b0fd20c349186fb46ae36d", | ||||
| "/": "e8fe42dfc27768e2bfecaf2d28b81697", | ||||
| "main.dart.js": "a978830815af17dceb19ce64377f2fd4", | ||||
| "favicon.ico": "51636d3a390451561744c42188ccd628", | ||||
| "assets/NOTICES": "1a34e70168d56fad075adfb4bdbb20eb", | ||||
| "assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "b62641afc9ab487008e996a5c5865e56", | ||||
| "assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5", | ||||
| "assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63", | ||||
| "assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c", | ||||
| "assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e", | ||||
| "assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a", | ||||
| "assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1", | ||||
| "assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd", | ||||
| "assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0", | ||||
| "assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4", | ||||
| "assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25", | ||||
| "assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0", | ||||
| "assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9", | ||||
| "assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1", | ||||
| "assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871", | ||||
| "assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7", | ||||
| "assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4", | ||||
| "assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121", | ||||
| "assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f", | ||||
| "assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/mm.png": "32e5293d6029d8294c7dfc3c3835c222", | ||||
| "assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a", | ||||
| "assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd", | ||||
| "assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a", | ||||
| "assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797", | ||||
| "assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31", | ||||
| "assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718", | ||||
| "assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3", | ||||
| "assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb", | ||||
| "assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d", | ||||
| "assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661", | ||||
| "assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d", | ||||
| "assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283", | ||||
| "assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39", | ||||
| "assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9", | ||||
| "assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f", | ||||
| "assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2", | ||||
| "assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16", | ||||
| "assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895", | ||||
| "assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9", | ||||
| "assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7", | ||||
| "assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d", | ||||
| "assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52", | ||||
| "assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a", | ||||
| "assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0", | ||||
| "assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4", | ||||
| "assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304", | ||||
| "assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948", | ||||
| "assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06", | ||||
| "assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2", | ||||
| "assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04", | ||||
| "assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c", | ||||
| "assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92", | ||||
| "assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285", | ||||
| "assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82", | ||||
| "assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d", | ||||
| "assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5", | ||||
| "assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233", | ||||
| "assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf", | ||||
| "assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71", | ||||
| "assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491", | ||||
| "assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6", | ||||
| "assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f", | ||||
| "assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97", | ||||
| "assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16", | ||||
| "assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36", | ||||
| "assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2", | ||||
| "assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b", | ||||
| "assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f", | ||||
| "assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77", | ||||
| "assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b", | ||||
| "assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9", | ||||
| "assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0", | ||||
| "assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755", | ||||
| "assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1", | ||||
| "assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1", | ||||
| "assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf", | ||||
| "assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05", | ||||
| "assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480", | ||||
| "assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056", | ||||
| "assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2", | ||||
| "assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e", | ||||
| "assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405", | ||||
| "assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7", | ||||
| "assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd", | ||||
| "assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b", | ||||
| "assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc", | ||||
| "assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036", | ||||
| "assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34", | ||||
| "assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2", | ||||
| "assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc", | ||||
| "assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab", | ||||
| "assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0", | ||||
| "assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4", | ||||
| "assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea", | ||||
| "assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7", | ||||
| "assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf", | ||||
| "assets/packages/intl_phone_field/assets/flags/sd.png": "65ce270762dfc87475ea99bd18f79025", | ||||
| "assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc", | ||||
| "assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49", | ||||
| "assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722", | ||||
| "assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40", | ||||
| "assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b", | ||||
| "assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f", | ||||
| "assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589", | ||||
| "assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045", | ||||
| "assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce", | ||||
| "assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1", | ||||
| "assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d", | ||||
| "assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5", | ||||
| "assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3", | ||||
| "assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52", | ||||
| "assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04", | ||||
| "assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810", | ||||
| "assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636", | ||||
| "assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b", | ||||
| "assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4", | ||||
| "assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59", | ||||
| "assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3", | ||||
| "assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5", | ||||
| "assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a", | ||||
| "assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071", | ||||
| "assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc", | ||||
| "assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94", | ||||
| "assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7", | ||||
| "assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2", | ||||
| "assets/packages/intl_phone_field/assets/flags/tk.png": "60428ff1cdbae680e5a0b8cde4677dd5", | ||||
| "assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e", | ||||
| "assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13", | ||||
| "assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665", | ||||
| "assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3", | ||||
| "assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2", | ||||
| "assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8", | ||||
| "assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5", | ||||
| "assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf", | ||||
| "assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37", | ||||
| "assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3", | ||||
| "assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3", | ||||
| "assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55", | ||||
| "assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4", | ||||
| "assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93", | ||||
| "assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37", | ||||
| "assets/packages/intl_phone_field/assets/flags/gt.png": "706a0c3b5e0b589c843e2539e813839e", | ||||
| "assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23", | ||||
| "assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6", | ||||
| "assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb", | ||||
| "assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86", | ||||
| "assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a", | ||||
| "assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566", | ||||
| "assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab", | ||||
| "assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011", | ||||
| "assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632", | ||||
| "assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b", | ||||
| "assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176", | ||||
| "assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d", | ||||
| "assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7", | ||||
| "assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8", | ||||
| "assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6", | ||||
| "assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db", | ||||
| "assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65", | ||||
| "assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f", | ||||
| "assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64", | ||||
| "assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811", | ||||
| "assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b", | ||||
| "assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209", | ||||
| "assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933", | ||||
| "assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959", | ||||
| "assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66", | ||||
| "assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821", | ||||
| "assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f", | ||||
| "assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7", | ||||
| "assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc", | ||||
| "assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac", | ||||
| "assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b", | ||||
| "assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80", | ||||
| "assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092", | ||||
| "assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29", | ||||
| "assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64", | ||||
| "assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275", | ||||
| "assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77", | ||||
| "assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe", | ||||
| "assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448", | ||||
| "assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877", | ||||
| "assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27", | ||||
| "assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799", | ||||
| "assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8", | ||||
| "assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64", | ||||
| "assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30", | ||||
| "assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025", | ||||
| "assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab", | ||||
| "assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb", | ||||
| "assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831", | ||||
| "assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d", | ||||
| "assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c", | ||||
| "assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f", | ||||
| "assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90", | ||||
| "assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532", | ||||
| "assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e", | ||||
| "assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd", | ||||
| "assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589", | ||||
| "assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea", | ||||
| "assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b", | ||||
| "assets/packages/intl_phone_field/assets/flags/ax.png": "ec2062c36f09ed8fb90ac8992d010024", | ||||
| "assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33", | ||||
| "assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25", | ||||
| "assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c", | ||||
| "assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24", | ||||
| "assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e", | ||||
| "assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16", | ||||
| "assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d", | ||||
| "assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591", | ||||
| "assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45", | ||||
| "assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff", | ||||
| "assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46", | ||||
| "assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a", | ||||
| "assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f", | ||||
| "assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544", | ||||
| "assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d", | ||||
| "assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4", | ||||
| "assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4", | ||||
| "assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555", | ||||
| "assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3", | ||||
| "assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc", | ||||
| "assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9", | ||||
| "assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c", | ||||
| "assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6", | ||||
| "assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50", | ||||
| "assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b", | ||||
| "assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae", | ||||
| "assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6", | ||||
| "assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8", | ||||
| "assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211", | ||||
| "assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a", | ||||
| "assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7", | ||||
| "assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7", | ||||
| "assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e", | ||||
| "assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1", | ||||
| "assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df", | ||||
| "assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d", | ||||
| "assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498", | ||||
| "assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423", | ||||
| "assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710", | ||||
| "assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3", | ||||
| "assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2", | ||||
| "assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf", | ||||
| "assets/packages/window_manager/images/ic_chrome_maximize.png": "af7499d7657c8b69d23b85156b60298c", | ||||
| "assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62", | ||||
| "assets/shaders/ink_sparkle.frag": "face5c2f106eecf1dda786745c50b01f", | ||||
| "assets/FontManifest.json": "087fb858dc3cbfbf6baf6a30004922f1", | ||||
| "assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa", | ||||
| "assets/fonts/MaterialIcons-Regular.otf": "95db9098c58fd6db106f1116bae85a0b", | ||||
| "assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219", | ||||
| "assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3", | ||||
| "assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541", | ||||
| "assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3", | ||||
| "assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6", | ||||
| "assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868", | ||||
| "assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc", | ||||
| "assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71", | ||||
| "assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024", | ||||
| "assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf", | ||||
| "assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629", | ||||
| "assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2", | ||||
| "assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08", | ||||
| "assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629", | ||||
| "assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5", | ||||
| "assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c", | ||||
| "assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978", | ||||
| "assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1", | ||||
| "assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a", | ||||
| "assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4" | ||||
| }; | ||||
| 
 | ||||
| // The application shell files that are downloaded before a service worker can
 | ||||
|  | ||||
							
								
								
									
										264076
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										264076
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										253748
									
								
								public/main.foss.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										253748
									
								
								public/main.foss.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										19357
									
								
								public/main.profile.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19357
									
								
								public/main.profile.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -14,6 +14,8 @@ namespace Tests\Feature\Bank; | ||||
| 
 | ||||
| use App\Factory\BankIntegrationFactory; | ||||
| use App\Factory\BankTransactionFactory; | ||||
| use App\Factory\InvoiceFactory; | ||||
| use App\Factory\InvoiceItemFactory; | ||||
| use App\Models\BankTransaction; | ||||
| use App\Models\Invoice; | ||||
| use Illuminate\Foundation\Testing\DatabaseTransactions; | ||||
| @ -57,6 +59,9 @@ class BankTransactionTest extends TestCase | ||||
|         $bt->base_type = 'DEBIT'; | ||||
|         $bt->save(); | ||||
| 
 | ||||
|         $this->expense->vendor_id = $this->vendor->id; | ||||
|         $this->expense->save(); | ||||
| 
 | ||||
|         $data = []; | ||||
| 
 | ||||
|         $data['transactions'][] = [ | ||||
| @ -73,10 +78,72 @@ class BankTransactionTest extends TestCase | ||||
| 
 | ||||
|         $this->assertEquals($this->expense->refresh()->transaction_id, $bt->id); | ||||
|         $this->assertEquals($bt->refresh()->expense_id, $this->expense->id); | ||||
|         $this->assertEquals($this->vendor->id, $bt->vendor_id); | ||||
|         $this->assertEquals(BankTransaction::STATUS_CONVERTED, $bt->status_id); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     public function testLinkingManuallyPaidInvoices() | ||||
|     { | ||||
| 
 | ||||
|         $invoice = InvoiceFactory::create($this->company->id, $this->user->id); | ||||
|         $invoice->client_id = $this->client->id; | ||||
|         $invoice->status_id = Invoice::STATUS_SENT; | ||||
|         $invoice->number = "InvoiceMatchingNumber123"; | ||||
|         $line_items = []; | ||||
| 
 | ||||
|         $item = InvoiceItemFactory::create(); | ||||
|         $item->quantity = 1; | ||||
|         $item->cost = 325; | ||||
|         $item->type_id = 1; | ||||
| 
 | ||||
|         $line_items[] = $item; | ||||
| 
 | ||||
|         $invoice->line_items = $line_items; | ||||
| 
 | ||||
|         $invoice = $invoice->calc()->getInvoice(); | ||||
| 
 | ||||
|         $invoice->service()->markPaid(); | ||||
| 
 | ||||
|         $p = $invoice->payments->first(); | ||||
| 
 | ||||
| 
 | ||||
|         $bi = BankIntegrationFactory::create($this->company->id, $this->user->id, $this->account->id); | ||||
|         $bi->save(); | ||||
| 
 | ||||
|         $bt = BankTransactionFactory::create($this->company->id, $this->user->id); | ||||
|         $bt->bank_integration_id = $bi->id; | ||||
|         $bt->status_id = BankTransaction::STATUS_UNMATCHED; | ||||
|         $bt->description = 'InvoiceMatchingNumber123'; | ||||
|         $bt->amount = 325; | ||||
|         $bt->currency_code = $this->client->currency()->code; | ||||
|         $bt->date = now()->format('Y-m-d'); | ||||
|         $bt->transaction_id = 1234567890; | ||||
|         $bt->category_id = 10000003; | ||||
|         $bt->base_type = 'CREDIT'; | ||||
|         $bt->save(); | ||||
| 
 | ||||
|         $data = []; | ||||
| 
 | ||||
|         $data['transactions'][] = [ | ||||
|             'id' => $bt->hashed_id, | ||||
|             'payment_id' => $p->hashed_id | ||||
|         ]; | ||||
| 
 | ||||
|         $response = $this->withHeaders([ | ||||
|             'X-API-SECRET' => config('ninja.api_secret'), | ||||
|             'X-API-TOKEN' => $this->token, | ||||
|         ])->postJson('/api/v1/bank_transactions/match', $data); | ||||
| 
 | ||||
|         $response->assertStatus(200); | ||||
| 
 | ||||
|         $this->assertEquals($p->refresh()->transaction_id, $bt->id); | ||||
|         $this->assertEquals($bt->refresh()->payment_id, $p->id); | ||||
|         $this->assertEquals(BankTransaction::STATUS_CONVERTED, $bt->status_id); | ||||
|         $this->assertEquals($invoice->hashed_id, $bt->invoice_ids); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     public function testLinkPaymentToTransaction() | ||||
|     { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user