diff --git a/.env b/.env index df3bf16..4ee4537 100644 --- a/.env +++ b/.env @@ -9,4 +9,6 @@ transactionCloude=Qhcwilomqcoib:QVO_JNYED2XWA26YXKC2TP:YK1DVH6SJB31N3PE1UXrXlBl visionApi=3vQRyaYYSWpmv69A58ZOkxmeK6M1mgwEDlXrXlBl chatGPTkeySefer=zg-IiR34ooza3Yvhvb9rZk1C9XrxgUE0l8jRRZrHj3Qe5QXPlqVXrXlBl secretKey=zg_cjzc_57I0TCIYNJPlIFQ5ZXkqiZZ28bBULsuMd1Cr5IYztSseaRvf3LdXWT9wwfV94Cv64CM7VAiMi6jWUrrLoAy9lNWVB33Rl8TY9b1XrXlBl -stripe_publishableKe=vg_cjzc_57I0TCIYNJPlIFQ5ZB5j2x4vQpU5FVYF9f9Vou74a60BJAQvH5QunMMJB8D1TOqsuOlHCeeh7vHqpnkijRkx9UL5g33vb0iNWKIXrXlBl \ No newline at end of file +stripe_publishableKe=vg_cjzc_57I0TCIYNJPlIFQ5ZB5j2x4vQpU5FVYF9f9Vou74a60BJAQvH5QunMMJB8D1TOqsuOlHCeeh7vHqpnkijRkx9UL5g33vb0iNWKIXrXlBl +llamaKey=LL-JfdiCXFpcLXNe87cSGQwGE0piZ9Zw179tVjEP1KMxQgVWGxD9Ixz3m8kkKaO5Kdi +serverPHP=https://ride.mobile-app.store \ No newline at end of file diff --git a/lib/constant/api_key.dart b/lib/constant/api_key.dart index 4517e39..f539e49 100644 --- a/lib/constant/api_key.dart +++ b/lib/constant/api_key.dart @@ -3,10 +3,10 @@ import 'char_map.dart'; import 'credential.dart'; class AK { - static final AC a = AC(); // Create an instance of AC + static final AC a = AC(); static final String publishableKey = - a.r(a.r(a.r(Env.stripePublishableKe, cn), cC), cs); + AC().r(AC().r(AC().r(Env.stripePublishableKe, cn), cC), cs); static final String secretKey = a.r(a.r(a.r(Env.secretKey, cn), cC), cs); static final String basicAuthCredentials = a.r(a.r(a.r(Env.basicAuthCredentials, cn), cC), cs); diff --git a/lib/constant/credential.dart b/lib/constant/credential.dart index 23f1ec8..0054b50 100644 --- a/lib/constant/credential.dart +++ b/lib/constant/credential.dart @@ -12,8 +12,8 @@ class AC { if (box.read(BoxName.apiKeyRun).toString() != 'run') { var res = await CRUD().get(link: AppLink.getApiKey, payload: {}); var decod = jsonDecode(res); - // print(decod); - // Map jsonData = {}; + print(decod); + Map jsonData = {}; for (var i = 0; i < decod['message'].length; i++) { String h = decod['message'][i]['hashed_key'].toString(); String retrievedString = r(r(r(h, cn), cC), cs); @@ -23,13 +23,13 @@ class AC { value: retrievedString.toString(), ); // - // String name = decod['message'][i]['name'].toString(); - // String value = decod['message'][i]['hashed_key'].toString(); + String name = decod['message'][i]['name'].toString(); + String value = decod['message'][i]['hashed_key'].toString(); - // jsonData[name] = value; + jsonData[name] = value; } - // String jsonString = json.encode(jsonData); - // print(jsonString); + String jsonString = json.encode(jsonData); + print(jsonString); box.write(BoxName.apiKeyRun, 'run'); } } diff --git a/lib/constant/links.dart b/lib/constant/links.dart index fd609b7..324f121 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -1,6 +1,9 @@ +import 'package:ride/env/env.dart'; + class AppLink { - static const String server = 'https://ride.mobile-app.store'; + static const String server = 'https://ride.mobile-app.store'; //Env.serverPHP; static const String googleMapsLink = 'https://maps.googleapis.com/maps/api/'; + static const String llama = 'https://api.llama-api.com/chat/completions'; static const String test = "$server/test.php"; //===============firebase========================== @@ -90,7 +93,7 @@ class AppLink { "$location/getTotalDriverDurationToday.php"; //==================Blog============= - static const String profile = 'https://ride.mobile-app.store/ride/profile'; + static const String profile = '$server/ride/profile'; static const String getprofile = "$profile/get.php"; static const String addprofile = "$profile/add.php"; static const String deleteprofile = "$profile/delete.php"; diff --git a/lib/controller/functions/crud.dart b/lib/controller/functions/crud.dart index 86988ee..1eaff59 100644 --- a/lib/controller/functions/crud.dart +++ b/lib/controller/functions/crud.dart @@ -1,18 +1,17 @@ import 'dart:convert'; import 'package:get/get.dart'; import 'package:http/http.dart' as http; +import 'package:ride/env/env.dart'; import '../../constant/api_key.dart'; -import '../../constant/box_name.dart'; -import '../../main.dart'; class CRUD { Future get({ required String link, Map? payload, }) async { - String? basicAuthCredentials = - await storage.read(key: BoxName.basicAuthCredentials); + // String? basicAuthCredentials = + // await storage.read(key: BoxName.basicAuthCredentials); var url = Uri.parse( link, ); @@ -22,16 +21,19 @@ class CRUD { headers: { "Content-Type": "application/x-www-form-urlencoded", 'Authorization': - 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}', + // 'Basic ${base64Encode(utf8.encode('hamzaayedphp:malDEV@2101'))}', + 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}', // 'Basic ${base64Encode(utf8.encode(basicAuthCredentials.toString()))}', }, ); - print("--------------" + response.request.toString()); - print("--------------" + payload.toString()); + //print("-----basicAuthCredentials----" + AK.basicAuthCredentials.toString()); + //print("-----request----" + response.request.toString()); + //print("-----headers-----" + response.headers.toString()); + //print("-----payload-----" + payload.toString()); if (response.statusCode == 200) { var jsonData = jsonDecode(response.body); if (jsonData['status'] == 'success') { - // print(jsonData); + // //print(jsonData); return response.body; } @@ -40,11 +42,45 @@ class CRUD { } } + Future getLlama({ + required String link, + required String payload, + }) async { + var url = Uri.parse( + link, + ); + var headers = { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ${Env.llamaKey}' + }; + var data = json.encode({ + "model": "llama-13b-chat", + "messages": [ + { + "role": "user", + "content": + "Extract the desired information from the following passage as json decoded like vin,make,made,color,owner and all you find in this:\n\n$payload" + } + ], + "temperature": 0.9 + }); + var response = await http.post( + url, + body: data, + headers: headers, + ); + + if (response.statusCode == 200) { + return response.body; + } + return response.statusCode; + } + Future postStripe({ required String link, Map? payload, }) async { - String? secretKey = await storage.read(key: BoxName.secretKey); + // String? secretKey = await storage.read(key: BoxName.secretKey); var url = Uri.parse( link, ); @@ -64,8 +100,8 @@ class CRUD { required String link, Map? payload, }) async { - String? basicAuthCredentials = - await storage.read(key: BoxName.basicAuthCredentials); + // String? basicAuthCredentials = + // await storage.read(key: BoxName.basicAuthCredentials); var url = Uri.parse( link, ); @@ -78,8 +114,8 @@ class CRUD { 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}', }, ); - print(response.request); - print(payload); + //print(response.request); + //print(payload); var jsonData = jsonDecode(response.body); if (response.statusCode == 200) { @@ -88,7 +124,7 @@ class CRUD { jsonData['status'], jsonData['message'], ); - print(response.body); + //print(response.body); return response.body; } } @@ -99,8 +135,8 @@ class CRUD { required String link, Map? payload, }) async { - String? basicAuthCredentials = - await storage.read(key: BoxName.basicAuthCredentials); + // String? basicAuthCredentials = + // await storage.read(key: BoxName.basicAuthCredentials); var url = Uri.parse( link, ); @@ -113,9 +149,9 @@ class CRUD { 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}', }, ); - print(response.request); - print('body========================='); - print(response.body); + //print(response.request); + //print('body========================='); + //print(response.body); if (response.body.isNotEmpty) { var jsonData = jsonDecode(response.body); @@ -145,9 +181,9 @@ class CRUD { url, body: payload, ); - print(response.request); + //print(response.request); var jsonData = jsonDecode(response.body); - // print(jsonData); + // //print(jsonData); if (jsonData['status'] == 'OK') { return jsonData; } @@ -159,8 +195,8 @@ class CRUD { required Map data, required String id, }) async { - String? basicAuthCredentials = - await storage.read(key: BoxName.basicAuthCredentials); + // String? basicAuthCredentials = + // await storage.read(key: BoxName.basicAuthCredentials); var url = Uri.parse('$endpoint/$id'); var response = await http.put( url, @@ -177,8 +213,8 @@ class CRUD { required String endpoint, required String id, }) async { - String? basicAuthCredentials = - await storage.read(key: BoxName.basicAuthCredentials); + // String? basicAuthCredentials = + // await storage.read(key: BoxName.basicAuthCredentials); var url = Uri.parse('$endpoint/$id'); var response = await http.delete( url, diff --git a/lib/controller/functions/llama_ai.dart b/lib/controller/functions/llama_ai.dart new file mode 100644 index 0000000..48ea3d2 --- /dev/null +++ b/lib/controller/functions/llama_ai.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:ride/constant/links.dart'; +import 'package:ride/controller/functions/crud.dart'; + +class LlamaAi { + Future getExractionData(String input) async { + print(true); + + String oneLine = input.replaceAll('\n', ' '); + var res = await CRUD().getLlama(link: AppLink.llama, payload: oneLine); + var decod = jsonDecode(res); + // print(decod['choices'][0]['message']['content']); + extractDataFromJsonString(decod['choices'][0]['message']['content']); + print(false); + } + + Map extractDataFromJsonString(String jsonString) { + // Remove any leading or trailing whitespace from the string + jsonString = jsonString.trim(); + + // Extract the JSON substring from the given string + final startIndex = jsonString.indexOf('{'); + final endIndex = jsonString.lastIndexOf('}'); + final jsonSubstring = jsonString.substring(startIndex, endIndex + 1); + + // Parse the JSON substring into a Map + final jsonData = json.decode(jsonSubstring); + + // Return the extracted data + print(jsonData); + return jsonData; + } +} diff --git a/lib/controller/home/captin/map_driver_controller.dart b/lib/controller/home/captin/map_driver_controller.dart index 0378983..898e51d 100644 --- a/lib/controller/home/captin/map_driver_controller.dart +++ b/lib/controller/home/captin/map_driver_controller.dart @@ -5,18 +5,17 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; -import 'package:ride/constant/box_name.dart'; -import 'package:ride/constant/colors.dart'; -import 'package:ride/controller/firebase/firbase_messge.dart'; -import 'package:ride/controller/functions/location_controller.dart'; -import 'package:ride/main.dart'; -import 'package:ride/views/Rate/rate_passenger.dart'; -import 'package:ride/views/home/Captin/home_captin.dart'; import '../../../constant/api_key.dart'; -import '../../../constant/credential.dart'; +import '../../../constant/box_name.dart'; +import '../../../constant/colors.dart'; import '../../../constant/links.dart'; +import '../../../main.dart'; +import '../../../views/Rate/rate_passenger.dart'; +import '../../../views/home/Captin/home_captin.dart'; +import '../../firebase/firbase_messge.dart'; import '../../functions/crud.dart'; +import '../../functions/location_controller.dart'; class MapDriverController extends GetxController { bool isLoading = true; diff --git a/lib/controller/home/map_passenger_controller.dart b/lib/controller/home/map_passenger_controller.dart index 8f24d92..2d3c5c5 100644 --- a/lib/controller/home/map_passenger_controller.dart +++ b/lib/controller/home/map_passenger_controller.dart @@ -6,19 +6,19 @@ import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; import 'package:location/location.dart'; -import 'package:ride/constant/box_name.dart'; -import 'package:ride/constant/credential.dart'; -import 'package:ride/constant/links.dart'; -import 'package:ride/controller/firebase/firbase_messge.dart'; -import 'package:ride/controller/functions/crud.dart'; -import 'package:ride/controller/functions/secure_storage.dart'; -import 'package:ride/controller/payment/payment_controller.dart'; -import 'package:ride/views/Rate/rate_captain.dart'; -import 'package:ride/views/widgets/elevated_btn.dart'; import '../../constant/api_key.dart'; +import '../../constant/box_name.dart'; +import '../../constant/info.dart'; +import '../../constant/links.dart'; import '../../main.dart'; import '../../models/model/locations.dart'; +import '../../views/Rate/rate_captain.dart'; +import '../../views/widgets/elevated_btn.dart'; +import '../firebase/firbase_messge.dart'; +import '../functions/crud.dart'; import '../functions/launch.dart'; +import '../functions/secure_storage.dart'; +import '../payment/payment_controller.dart'; class MapPassengerController extends GetxController { bool isLoading = true; @@ -140,7 +140,7 @@ class MapPassengerController extends GetxController { // Format the message. String message = - 'Hi! This is ${box.read(BoxName.name)}. I am using Sefer to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.'; + 'Hi! This is ${box.read(BoxName.name)}. I am using ${box.read(AppInformation.appName)} to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.'; // Launch the URL to send the SMS. launchCommunication('sms', to, message); @@ -153,7 +153,7 @@ class MapPassengerController extends GetxController { // Format the message. String message = - 'Hi! This is ${box.read(BoxName.name)}. I am using Sefer to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.'; + 'Hi! This is ${box.read(BoxName.name)}. I am using ${box.read(AppInformation.appName)} to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.'; // Launch the URL to send the SMS. launchCommunication('whatsapp', to, message); @@ -599,7 +599,7 @@ class MapPassengerController extends GetxController { Future getPlaces() async { var url = // '${AppLink.googleMapsLink}place/nearbysearch/json?location=${mylocation.longitude}&radius=25000&language=ar&keyword=&key=${placeController.text}${AK.mapAPIKEY}'; - '${AppLink.googleMapsLink}place/nearbysearch/json?keyword=${placeController.text}&location=${myLocation.latitude},${myLocation.longitude}&radius=50000&language=ar&key=${AK.mapAPIKEY.toString()}'; + '${AppLink.googleMapsLink}place/nearbysearch/json?keyword=${placeController.text}&location=${myLocation.latitude},${myLocation.longitude}&radius=50000&language=en&key=${AK.mapAPIKEY.toString()}'; var response = await CRUD().getGoogleApi(link: url, payload: {}); diff --git a/lib/main.dart b/lib/main.dart index c385c88..69cdd11 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -30,7 +30,6 @@ Future backgroundMessageHandler(RemoteMessage message) async { if (message.notification!.title == 'Sefer') {} } -// late List cameras; void main() async { WidgetsFlutterBinding.ensureInitialized(); await GetStorage.init(); diff --git a/lib/views/auth/captin/login_captin.dart b/lib/views/auth/captin/login_captin.dart index 0b993fd..1cb910d 100644 --- a/lib/views/auth/captin/login_captin.dart +++ b/lib/views/auth/captin/login_captin.dart @@ -1,26 +1,27 @@ +import 'dart:convert'; + import 'package:animated_text_kit/animated_text_kit.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:get/get.dart'; -import 'package:html/parser.dart' show parse; -import 'package:ride/constant/api_key.dart'; -import 'package:ride/constant/box_name.dart'; -import 'package:ride/constant/colors.dart'; -import 'package:ride/constant/info.dart'; -import 'package:ride/constant/style.dart'; -import 'package:ride/constant/table_names.dart'; -import 'package:ride/controller/auth/captin/login_captin_controller.dart'; -import 'package:ride/main.dart'; -import 'package:ride/views/auth/captin/register_captin.dart'; -import 'package:ride/views/widgets/elevated_btn.dart'; -import 'package:ride/views/widgets/my_scafold.dart'; +import 'package:ride/controller/functions/llama_ai.dart'; +import 'package:ride/env/env.dart'; +import '../../../constant/api_key.dart'; +import '../../../constant/box_name.dart'; import '../../../constant/char_map.dart'; +import '../../../constant/colors.dart'; import '../../../constant/credential.dart'; +import '../../../constant/info.dart'; +import '../../../constant/style.dart'; +import '../../../controller/auth/captin/login_captin_controller.dart'; import '../../../controller/auth/login_controller.dart'; -import '../../../env/env.dart'; +import '../../../main.dart'; +import '../../widgets/elevated_btn.dart'; +import '../../widgets/my_scafold.dart'; import '../../widgets/mycircular.dart'; +import 'register_captin.dart'; class LoginCaptin extends StatelessWidget { final controller = Get.put(LoginController()); @@ -195,27 +196,32 @@ class LoginCaptin extends StatelessWidget { ), IconButton( onPressed: () async { - // String v = await storage.read( - // key: BoxName.basicAuthCredentials) ?? - // ''; + // String v = + // await storage.read(key: BoxName.serverAPI) ?? ''; // print(v); // sql.deleteAllData(TableName.faceDetectTimes); - AC credentials = AC(); - String apiKey = AK.secretKey; - // // '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'; - credentials.gAK(); - String? apiKeyf = - await storage.read(key: 'basicAuthCredentials'); + // AC credentials = AC(); + // String apiKey = AK.secretKey; + // // // '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'; + // credentials.gAK(); + // String? apiKeyf = + // await storage.read(key: BoxName.chatGPTkey); // print(apiKeyf); // String convertedString = credentials.c(apiKey, s); // String convertedStrings = credentials.c(apiKey, s); // print('Converted String s: $convertedStrings'); // String convertedStringC = // credentials.c(convertedStrings, c); - // print('Converted String C: $convertedStringC'); - // String convertedStringN = credentials.c( - // credentials.c(credentials.c(apiKey, cs), cC), cn); - // print('Converted String N: $convertedStringN'); + // print('v: $v'); + // 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH' + // 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH' + // // String convertedStringN = credentials.c( + // credentials.c( + // credentials.c( + // 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl', cs), + // cC), + // // cn); + // print('Converted v: $convertedStringN'); // // // String retrievedStringN = // credentials.r(convertedStringN, n); @@ -226,15 +232,74 @@ class LoginCaptin extends StatelessWidget { // String retrievedStringS = credentials.r( // credentials.r( - // credentials.r(convertedStringN, cn), cC), + // credentials.r( + // 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl', + // cn), + // cC), // cs); // print('Retrieved String: $retrievedStringS'); // if (retrievedStringS == apiKey) { // print('same'); // } - // print(AK.basicAuthCredentials); // - print(apiKeyf); // + // print(' AK is ' + AK.chatGPTkey); // + + // print(' ENV is ' + Env.chatGPTkey); // + // // print('storage is ' + v); // + // print('storage is ' + apiKeyf!); // + String input = """ +[PAN +I/flutter (28718): wOYARMAN +I/flutter (28718): 2018 CHEV +I/flutter (28718): ASN AORESS +I/flutter (28718): rmv +I/flutter (28718): REGISTRY MOTOR VEHICL ES +I/flutter (28718): NEGIS TRATNWIYPE +I/flutter (28718): RSNTN AORLS( OrreRCNT THAN MALINO) +I/flutter (28718): Passenger Normal Red +I/flutter (28718): 274 +I/flutter (28718): SILVERADO +I/flutter (28718): ESSSENOSTOoN +I/flutter (28718): Neso WNRS) ANO MALING ADOSES +I/flutter (28718): 274 CHATTERTON AVE SOMERSET MA 02726-2939 +I/flutter (28718): CHRISTOPHER D WALL +I/flutter (28718): 74 CHATTERTON AVE +I/flutter (28718): SOMERSET NA +I/flutter (28718): A 02726-2939 +I/flutter (28718): OEL NUMICR +I/flutter (28718): RAIL NUMOER +I/flutter (28718): 4DGY18 +I/flutter (28718): oooY aYE +I/flutter (28718): PU +I/flutter (28718): M.G.L. Chapter 90 Section 24B makes it a crime to alter this Certificate +I/flutter (28718): MASSACHUSETTS DEPARTMENT OF TRANSPORTATION +I/flutter (28718): his vehicle is newty acquired, it must be inspected within 7 days +I/flutter (28718): of registration +I/flutter (28718): CERTIFICATE OF REGISTRATION +I/flutter (28718): rECVE DATE +I/flutter (28718): 21-Sep-2023 +I/flutter (28718): Cancel the registration plates if: +I/flutter (28718): COLoR +I/flutter (28718): BLACK +I/flutter (28718): CHANGE OF ADORESS +I/flutter (28718): TITLE NUMUER +I/flutter (28718): VEHICLE IDENTIFICATION NUMDCR +I/flutter (28718): EXPIRES ON +I/flutter (28718): 1GCVKREC7JZ169002 +I/flutter (28718): TOTAL RE GISTERED WEIGHT FOR A COMMERCIAL VEICLE CR TRALER +I/flutter (28718): US DOT LMBER FOR COMMERCAL, VEHICLE +I/flutter (28718): HSURWCE COMPi +I/flutter (28718): PLYMOUTH ROCK ASSURANCE +I/flutter (28718): CORPORATION +I/flutter (28718): MAMUM SEATVG CAPACIIYFHVEGES FOK HRE +I/flutter (28718): | RESIDENTIAL +I/flutter (28718): Important information for vehicle owners +I/flutter (28718): oun f9nia Rogistrar of Motor Vehicles +I/flutter (28718): 31-Aug-2025 +I/flutter (28718): MAILING +I/flutter (28718): Cert]"""; + + await LlamaAi().getExractionData(input); }, icon: const Icon( Icons.close,