[mirotalk] - welcome LambdaTest
This commit is contained in:
+14
-14
@@ -35,23 +35,23 @@ socioeconomic status, or other similar personal characteristics.
|
|||||||
Examples of behavior that contributes to creating a positive environment
|
Examples of behavior that contributes to creating a positive environment
|
||||||
include:
|
include:
|
||||||
|
|
||||||
- Using welcoming and inclusive language
|
- Using welcoming and inclusive language
|
||||||
- Being respectful of differing viewpoints and experiences
|
- Being respectful of differing viewpoints and experiences
|
||||||
- Gracefully accepting constructive criticism
|
- Gracefully accepting constructive criticism
|
||||||
- Focusing on what is best for the community
|
- Focusing on what is best for the community
|
||||||
- Showing empathy toward other community members
|
- Showing empathy toward other community members
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
- The use of sexualized language or imagery and unwelcome sexual attention or
|
- The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
advances
|
advances
|
||||||
- Personal attacks, insulting/derogatory comments, or trolling
|
- Personal attacks, insulting/derogatory comments, or trolling
|
||||||
- Public or private harassment
|
- Public or private harassment
|
||||||
- Publishing, or threatening to publish, others' private information—such as
|
- Publishing, or threatening to publish, others' private information—such as
|
||||||
a physical or electronic address—without explicit permission
|
a physical or electronic address—without explicit permission
|
||||||
- Other conduct which could reasonably be considered inappropriate in a
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
professional setting
|
professional setting
|
||||||
- Advocating for or encouraging any of the above behaviors
|
- Advocating for or encouraging any of the above behaviors
|
||||||
|
|
||||||
## Our Responsibilities
|
## Our Responsibilities
|
||||||
|
|
||||||
|
|||||||
@@ -37,41 +37,41 @@
|
|||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
- Is `100% Free` - `Open Source under (AGPLv3)` - `Self Hosted` and [PWA](https://en.wikipedia.org/wiki/Progressive_web_application)!
|
- Is `100% Free` - `Open Source under (AGPLv3)` - `Self Hosted` and [PWA](https://en.wikipedia.org/wiki/Progressive_web_application)!
|
||||||
- No downloads, plugins, or logins required – completely browser-based.
|
- No downloads, plugins, or logins required – completely browser-based.
|
||||||
- Unlimited conference rooms with no time limitations.
|
- Unlimited conference rooms with no time limitations.
|
||||||
- Translated into 133 languages.
|
- Translated into 133 languages.
|
||||||
- Support for the OpenID Connect (OIDC) authentication layer.
|
- Support for the OpenID Connect (OIDC) authentication layer.
|
||||||
- Host protection to prevent unauthorized access.
|
- Host protection to prevent unauthorized access.
|
||||||
- User auth to prevent unauthorized access.
|
- User auth to prevent unauthorized access.
|
||||||
- Room password protection.
|
- Room password protection.
|
||||||
- JWT.io securely manages credentials for host configurations and user authentication, enhancing security and streamlining processes.
|
- JWT.io securely manages credentials for host configurations and user authentication, enhancing security and streamlining processes.
|
||||||
- Compatible with desktop and mobile devices.
|
- Compatible with desktop and mobile devices.
|
||||||
- Optimized mobile room URL sharing.
|
- Optimized mobile room URL sharing.
|
||||||
- Webcam streaming with front and rear camera support for mobile devices.
|
- Webcam streaming with front and rear camera support for mobile devices.
|
||||||
- Crystal-clear audio streaming with speaking detection and volume indicators.
|
- Crystal-clear audio streaming with speaking detection and volume indicators.
|
||||||
- Screen sharing for presentations.
|
- Screen sharing for presentations.
|
||||||
- File sharing with drag-and-drop support.
|
- File sharing with drag-and-drop support.
|
||||||
- Choose your audio input, output, and video source.
|
- Choose your audio input, output, and video source.
|
||||||
- Supports video quality up to 8K and 60 FPS.
|
- Supports video quality up to 8K and 60 FPS.
|
||||||
- Supports advance Picture-in-Picture (PiP) offering a more streamlined and flexible viewing experience.
|
- Supports advance Picture-in-Picture (PiP) offering a more streamlined and flexible viewing experience.
|
||||||
- Record your screen, audio, and video.
|
- Record your screen, audio, and video.
|
||||||
- Snapshot video frames and save them as PNG images.
|
- Snapshot video frames and save them as PNG images.
|
||||||
- Chat with an Emoji Picker for expressing feelings, private messages, Markdown support, and conversation saving.
|
- Chat with an Emoji Picker for expressing feelings, private messages, Markdown support, and conversation saving.
|
||||||
- ChatGPT (powered by OpenAI) for answering questions, providing information, and connecting users to relevant resources.
|
- ChatGPT (powered by OpenAI) for answering questions, providing information, and connecting users to relevant resources.
|
||||||
- Speech recognition for sending spoken messages.
|
- Speech recognition for sending spoken messages.
|
||||||
- Push-to-talk functionality, similar to a walkie-talkie.
|
- Push-to-talk functionality, similar to a walkie-talkie.
|
||||||
- Advanced collaborative whiteboard for teachers.
|
- Advanced collaborative whiteboard for teachers.
|
||||||
- Real-time sharing of YouTube embed videos, video files (MP4, WebM, OGG), and audio files (MP3).
|
- Real-time sharing of YouTube embed videos, video files (MP4, WebM, OGG), and audio files (MP3).
|
||||||
- Full-screen mode with one-click video element zooming and pin/unpin.
|
- Full-screen mode with one-click video element zooming and pin/unpin.
|
||||||
- Customizable UI themes.
|
- Customizable UI themes.
|
||||||
- Right-click options on video elements for additional controls.
|
- Right-click options on video elements for additional controls.
|
||||||
- Direct peer-to-peer connections for low-latency communication through WebRTC.
|
- Direct peer-to-peer connections for low-latency communication through WebRTC.
|
||||||
- Supports [REST API](app/api/README.md) (Application Programming Interface).
|
- Supports [REST API](app/api/README.md) (Application Programming Interface).
|
||||||
- Integration with [Mattermost](https://mattermost.com/) for enhanced communication.
|
- Integration with [Mattermost](https://mattermost.com/) for enhanced communication.
|
||||||
- Integration with [Slack](https://api.slack.com/apps/) for enhanced communication.
|
- Integration with [Slack](https://api.slack.com/apps/) for enhanced communication.
|
||||||
- Utilizes [Sentry](https://sentry.io/) for error reporting.
|
- Utilizes [Sentry](https://sentry.io/) for error reporting.
|
||||||
- And much more...
|
- And much more...
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -80,8 +80,8 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
- [Presentation](https://www.canva.com/design/DAE693uLOIU/view)
|
- [Presentation](https://www.canva.com/design/DAE693uLOIU/view)
|
||||||
- [Video Overview](https://www.youtube.com/watch?v=_IVn2aINYww)
|
- [Video Overview](https://www.youtube.com/watch?v=_IVn2aINYww)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -102,9 +102,9 @@
|
|||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
- You can `directly join a room` by using links like:
|
- You can `directly join a room` by using links like:
|
||||||
- https://p2p.mirotalk.com/join?room=test&name=mirotalk&audio=0&video=0&screen=0&hide=0¬ify=0
|
- https://p2p.mirotalk.com/join?room=test&name=mirotalk&audio=0&video=0&screen=0&hide=0¬ify=0
|
||||||
- https://mirotalk.up.railway.app/join?room=test&name=mirotalk&audio=0&video=0&screen=0&hide=0¬ify=0
|
- https://mirotalk.up.railway.app/join?room=test&name=mirotalk&audio=0&video=0&screen=0&hide=0¬ify=0
|
||||||
|
|
||||||
| Params | Type | Description |
|
| Params | Type | Description |
|
||||||
| ------ | ------- | --------------- |
|
| ------ | ------- | --------------- |
|
||||||
@@ -162,7 +162,7 @@ To embed a meeting within `your service or app` using an iframe, you can use the
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
- Before running MiroTalk P2P, ensure you have `Node.js` installed. This project has been tested with Node versions [12.X](https://nodejs.org/en/blog/release/v12.22.1/), [14.X](https://nodejs.org/en/blog/release/v14.17.5/), [16.X](https://nodejs.org/en/blog/release/v16.15.1/) and [18.x](https://nodejs.org/en/download).
|
- Before running MiroTalk P2P, ensure you have `Node.js` installed. This project has been tested with Node versions [12.X](https://nodejs.org/en/blog/release/v12.22.1/), [14.X](https://nodejs.org/en/blog/release/v14.17.5/), [16.X](https://nodejs.org/en/blog/release/v16.15.1/) and [18.x](https://nodejs.org/en/download).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# clone this repo
|
# clone this repo
|
||||||
@@ -177,7 +177,7 @@ $ npm install
|
|||||||
$ npm start
|
$ npm start
|
||||||
```
|
```
|
||||||
|
|
||||||
- Open [http://localhost:3000](http://localhost:3000) in your browser.
|
- Open [http://localhost:3000](http://localhost:3000) in your browser.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -188,8 +188,8 @@ $ npm start
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
- Repository [docker hub](https://hub.docker.com/r/mirotalk/p2p)
|
- Repository [docker hub](https://hub.docker.com/r/mirotalk/p2p)
|
||||||
- Install [docker engine](https://docs.docker.com/engine/install/) and [docker compose](https://docs.docker.com/compose/install/)
|
- Install [docker engine](https://docs.docker.com/engine/install/) and [docker compose](https://docs.docker.com/compose/install/)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# clone this repo
|
# clone this repo
|
||||||
@@ -208,7 +208,7 @@ $ docker-compose up # -d
|
|||||||
$ docker-compose down
|
$ docker-compose down
|
||||||
```
|
```
|
||||||
|
|
||||||
- Open [http://localhost:3000](http://localhost:3000) in your browser.
|
- Open [http://localhost:3000](http://localhost:3000) in your browser.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -217,13 +217,13 @@ $ docker-compose down
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
- `Ngrok/HTTPS:` You can start a video conference directly from your local PC and make it accessible from any device outside your network by following [these instructions](docs/ngrok.md), or expose it directly on [HTTPS](app/ssl/README.md).
|
- `Ngrok/HTTPS:` You can start a video conference directly from your local PC and make it accessible from any device outside your network by following [these instructions](docs/ngrok.md), or expose it directly on [HTTPS](app/ssl/README.md).
|
||||||
|
|
||||||
- `Stun/Turn:` Install your own [Stun & Turn](https://docs.mirotalk.com/coturn/stun-turn/) by following [this instructions](./docs/coturn.md).
|
- `Stun/Turn:` Install your own [Stun & Turn](https://docs.mirotalk.com/coturn/stun-turn/) by following [this instructions](./docs/coturn.md).
|
||||||
|
|
||||||
- `Self-hosting:` For `self-hosting MiroTalk P2P` on your own dedicated server, please refer to [this comprehensive guide](docs/self-hosting.md). It will provide you with all the necessary instructions to get your MiroTalk P2P instance up and running smoothly.
|
- `Self-hosting:` For `self-hosting MiroTalk P2P` on your own dedicated server, please refer to [this comprehensive guide](docs/self-hosting.md). It will provide you with all the necessary instructions to get your MiroTalk P2P instance up and running smoothly.
|
||||||
|
|
||||||
- `Rest API:` The [API documentation](https://docs.mirotalk.com/mirotalk-p2p/api/) uses [swagger](https://swagger.io/) at http://localhost:3000/api/v1/docs. Or check it out on [live](https://p2p.mirotalk.com/api/v1/docs).
|
- `Rest API:` The [API documentation](https://docs.mirotalk.com/mirotalk-p2p/api/) uses [swagger](https://swagger.io/) at http://localhost:3000/api/v1/docs. Or check it out on [live](https://p2p.mirotalk.com/api/v1/docs).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# The response will give you the active meetings (default disabled).
|
# The response will give you the active meetings (default disabled).
|
||||||
@@ -310,9 +310,9 @@ For `Security` concerning, please follow [this documentation](./SECURITY.md).
|
|||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
- ianramzy (html [template](https://cruip.com/demos/neon/))
|
- ianramzy (html [template](https://cruip.com/demos/neon/))
|
||||||
- vasanthv (webrtc-logic)
|
- vasanthv (webrtc-logic)
|
||||||
- fabric.js (whiteboard)
|
- fabric.js (whiteboard)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -321,8 +321,8 @@ For `Security` concerning, please follow [this documentation](./SECURITY.md).
|
|||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
- Contributions are welcome and greatly appreciated!
|
- Contributions are welcome and greatly appreciated!
|
||||||
- Just run before `npm run lint`
|
- Just run before `npm run lint`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -346,12 +346,14 @@ To obtain a [MiroTalk P2P license](https://docs.mirotalk.com/license/licensing-o
|
|||||||
|
|
||||||
Do you find MiroTalk P2P indispensable for your needs? Join us in supporting this transformative project by [becoming a backer or sponsor](https://github.com/sponsors/miroslavpejic85). By doing so, not only will your logo prominently feature here, but you'll also drive the growth and sustainability of MiroTalk P2P. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact – back MiroTalk P2P today and be part of this exciting journey!
|
Do you find MiroTalk P2P indispensable for your needs? Join us in supporting this transformative project by [becoming a backer or sponsor](https://github.com/sponsors/miroslavpejic85). By doing so, not only will your logo prominently feature here, but you'll also drive the growth and sustainability of MiroTalk P2P. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact – back MiroTalk P2P today and be part of this exciting journey!
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||||
| [](https://broadcastx.de/) | [](https://hetzner.cloud/?ref=XdRifCzCK3bn) |
|
| [](https://broadcastx.de/) | [](https://hetzner.cloud/?ref=XdRifCzCK3bn) |
|
||||||
| [](https://luvlounge.ca) | [](https://www.questionpro.com) |
|
| [](https://luvlounge.ca) | [](https://www.questionpro.com) |
|
||||||
| [](https://www.browserstack.com) | [](https://crystalsound.ai) |
|
| [](https://www.browserstack.com) | [](https://crystalsound.ai) |
|
||||||
| [](https://cloudron.io) | [](https://kiquix.com) |
|
| [](https://cloudron.io) | [](https://kiquix.com) |
|
||||||
|
| [](https://lambdatest.com/pricing?coupon=QURFODlQUk9NT1RFUg==&refid=1149848) |
|
||||||
|
| |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -9,10 +9,10 @@ We prefer a Coordinated Vulnerability Disclosure (CVD) to properly understand an
|
|||||||
|
|
||||||
Your report should include:
|
Your report should include:
|
||||||
|
|
||||||
- Product version ([GitHub](https://github.com/miroslavpejic85/mirotalk/commits/master) commit hash or [DockerHub](https://hub.docker.com/r/mirotalk/p2p) sha256 digest hash)
|
- Product version ([GitHub](https://github.com/miroslavpejic85/mirotalk/commits/master) commit hash or [DockerHub](https://hub.docker.com/r/mirotalk/p2p) sha256 digest hash)
|
||||||
- The affected component if possible (client.js, server.js, etc.)
|
- The affected component if possible (client.js, server.js, etc.)
|
||||||
- A vulnerability description
|
- A vulnerability description
|
||||||
- Reproduction steps
|
- Reproduction steps
|
||||||
|
|
||||||
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
|
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
|
||||||
The fix will be applied to the master branch, tested, and packaged in the next security release.
|
The fix will be applied to the master branch, tested, and packaged in the next security release.
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ dependencies: {
|
|||||||
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
||||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
||||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||||
* @version 1.3.94
|
* @version 1.3.95
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mirotalk",
|
"name": "mirotalk",
|
||||||
"version": "1.3.94",
|
"version": "1.3.95",
|
||||||
"description": "A free WebRTC browser-based video call",
|
"description": "A free WebRTC browser-based video call",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -41,21 +41,21 @@
|
|||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"homepage": "https://github.com/miroslavpejic85/mirotalk",
|
"homepage": "https://github.com/miroslavpejic85/mirotalk",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mattermost/client": "^10.1.0",
|
"@mattermost/client": "^10.2.0",
|
||||||
"@sentry/node": "^8.40.0",
|
"@sentry/node": "^8.42.0",
|
||||||
"axios": "^1.7.7",
|
"axios": "^1.7.9",
|
||||||
"colors": "^1.4.0",
|
"colors": "^1.4.0",
|
||||||
"compression": "^1.7.5",
|
"compression": "^1.7.5",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.7",
|
||||||
"express": "^4.21.1",
|
"express": "^4.21.1",
|
||||||
"express-openid-connect": "^2.17.1",
|
"express-openid-connect": "^2.17.1",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"ngrok": "^5.0.0-beta.2",
|
"ngrok": "^5.0.0-beta.2",
|
||||||
"nodemailer": "^6.9.16",
|
"nodemailer": "^6.9.16",
|
||||||
"openai": "^4.73.0",
|
"openai": "^4.75.0",
|
||||||
"qs": "^6.13.1",
|
"qs": "^6.13.1",
|
||||||
"socket.io": "^4.8.1",
|
"socket.io": "^4.8.1",
|
||||||
"swagger-ui-express": "^5.0.1",
|
"swagger-ui-express": "^5.0.1",
|
||||||
@@ -65,6 +65,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"node-fetch": "^3.3.2",
|
"node-fetch": "^3.3.2",
|
||||||
"nodemon": "^3.1.7",
|
"nodemon": "^3.1.7",
|
||||||
"prettier": "3.3.3"
|
"prettier": "3.4.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@
|
|||||||
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
|
||||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
|
||||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||||
* @version 1.3.94
|
* @version 1.3.95
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -10598,7 +10598,7 @@ function showAbout() {
|
|||||||
Swal.fire({
|
Swal.fire({
|
||||||
background: swBg,
|
background: swBg,
|
||||||
position: 'center',
|
position: 'center',
|
||||||
title: '<strong>WebRTC P2P v1.3.94</strong>',
|
title: '<strong>WebRTC P2P v1.3.95</strong>',
|
||||||
imageAlt: 'mirotalk-about',
|
imageAlt: 'mirotalk-about',
|
||||||
imageUrl: images.about,
|
imageUrl: images.about,
|
||||||
customClass: { image: 'img-about' },
|
customClass: { image: 'img-about' },
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// https://codepen.io/tutsplus/pen/BaVqjvg
|
// https://codepen.io/tutsplus/pen/BaVqjvg
|
||||||
|
|
||||||
const snowEnabled = false;
|
const snowEnabled = true;
|
||||||
|
|
||||||
const snowContainer = document.getElementById('snow-container');
|
const snowContainer = document.getElementById('snow-container');
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
@@ -564,13 +564,25 @@
|
|||||||
/></a>
|
/></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="reveal-from-top" data-reveal-delay="1050">
|
<li class="reveal-from-top" data-reveal-delay="1200">
|
||||||
<div class="clients-logo">
|
<div class="clients-logo">
|
||||||
<a href="https://kiquix.com" target="_blank"
|
<a href="https://kiquix.com" target="_blank"
|
||||||
><img class="clients-size-logo" src="../sponsors/Kiquix.png" alt="Kiquix"
|
><img class="clients-size-logo" src="../sponsors/Kiquix.png" alt="Kiquix"
|
||||||
/></a>
|
/></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="reveal-from-top" data-reveal-delay="1350">
|
||||||
|
<div class="clients-logo">
|
||||||
|
<a
|
||||||
|
href="https://lambdatest.com/pricing?coupon=QURFODlQUk9NT1RFUg==&refid=1149848"
|
||||||
|
target="_blank"
|
||||||
|
><img
|
||||||
|
class="clients-size-logo"
|
||||||
|
src="../sponsors/LambdaTest.png"
|
||||||
|
alt="LambdaTest"
|
||||||
|
/></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user