contract Cryptoboyz is ERC721LowGas, Ownable {

    string baseURI_ = 'ipfs://QmerYfiTbXZVRwANvPcoM6jCXxhM6R7gRYk9Rn8v7w3JLR/'; 

    constructor() ERC721LowGas("Cryptoboyz", "BOYZ") payable {}

    // Minting
    function mint(address[] calldata addresses, uint[] calldata quantity) external onlyOwner {
        for (uint i=0;i<addresses.length;i++)
        _mint(addresses[i], quantity[i],abi.encodePacked(quantity[i]), true);
    }

    // 1/1 mint only
    function mintUnique(address[] calldata addresses, uint[] calldata ids) external onlyOwner {        
            for (uint i=0;i<addresses.length;i++)
            _mintSpecial(addresses[i],ids[i]+100000);
        
    }

    // baseURI internal getter
    function _baseURI() internal view override returns (string memory) {
        return baseURI_;
    }
}
/**********************************************************************************************\
 |*                                                                                            *|
 |*                                                                                            *|
 |*     ██████ ██████  ██    ██ ██████  ████████  ██████  ██████   ██████  ██    ██ ███████    *|
 |*    ██      ██   ██  ██  ██  ██   ██    ██    ██    ██ ██   ██ ██    ██  ██  ██     ███     *|
 |*    ██      ██████    ████   ██████     ██    ██    ██ ██████  ██    ██   ████     ███      *|
 |*    ██      ██   ██    ██    ██         ██    ██    ██ ██   ██ ██    ██    ██     ███       *|
 |*     ██████ ██   ██    ██    ██         ██     ██████  ██████   ██████     ██    ███████    *|
 |*                                                                                            *| 
 |*                                                                                            *|
 \**********************************************************************************************/
function _baseURI() internal view override returns (string memory) {
    return baseURI_;
}

// baseURI internal getter